[cmake-developers] Qt Bundle Utilities/Packaging

Clinton Stimpson clinton at elemtech.com
Thu Apr 7 13:17:42 EDT 2011


On Thursday, April 07, 2011 10:29:41 am Mike McQuaid wrote:
> On 7 April 2011 17:17, Clinton Stimpson <clinton at elemtech.com> wrote:
> > That could be a good way to go first.  If the need arises, we could
> > introduce more public functions for customization.
> 
> I guess we could do what fixup_bundle and get_prerequisites do in that
> we have a very general function that just "does stuff correctly" and
> then more specific ones people can call for a more customisable
> process.
> 
> Here's my (untested) work in progress:
> https://gist.github.com/908134
> 
> I'll probably port it to use your macros tomorrow but you probably get
> the gist (no pun intended) of my approach from that.
> 
> It shouldn't require anything except the app arguments and the plugins
> (currently only direct paths but could also be the named versions like
> on yours) but optionally can include more libraries (should be handled
> but fixup_bundle, not sure if this is necessary) and the search
> directories (e.g. if Qt is outside the path you might pass
> QT_LIBRARY_DIR here).
> 
> Let me know your thoughts!

I have some thoughts...

I think you should *always* write out a qt.conf file.
The Qt libraries have hardcoded paths (used if there is no qt.conf file) and if 
the target machine has a Qt installation at the same location as the build 
machine, it could get the target machines plugins instead.  These plugins are 
tied to a specific version and configuration of Qt, so they cannot be mixed.  On 
Mac, the problem of a missing qt.conf is immediate on the build machine.

I think we should add QT_LIBRARY_DIR to fixup_bundle()'s dirs all the time.

Have you thought about letting the user supply a list of their own plugins and 
having the function add the default Qt plugins to that list (or a set of 
plugins based on the QT_USE_* variables)?

Also, one frequent complaint with using these functions is the user having to 
do 
install(CODE ".... ") and worry about escaping quotes and dollar signs.
Do you think this would be a good time to address that?

-- 
Clinton Stimpson
Elemental Technologies, Inc
Computational Simulation Software, LLC
www.csimsoft.com



More information about the cmake-developers mailing list