[CMake] CMake 2.8.1 + Qt/Cocoa + OS X Problem -- qt_menu.nib not getting copied
Michael Jackson
mike.jackson at bluequartz.net
Fri Apr 16 11:22:05 EDT 2010
While I agree with everything said I think a Qt Specific function for
"deploying Apps", whether those are on Windows, OS X or linux, should
be created. The script would be at a higher level than BundleUtilites
as I would envision DeployQt4App.cmake calling BundleUtilities,
checking the type of Qt being used (Relevant on OS X), copying the
plugins (if wanted by the user) and stuff like that. Thoughts?
--
Mike J.
On Apr 16, 2010, at 11:13 AM, David Cole wrote:
> On Fri, Apr 16, 2010 at 11:03 AM, Michael Wild <themiwi at gmail.com>
> wrote:
>
> The way BundleUtilities (that is, GetPrerequisites is actually doing
> the work here) is designed so far is to check for run-time
> dependencies using otool and similar utilities. However, CMake can't
> possibly detect that qt_menu.nib is required since this file is
> loaded dynamically at run-time, so someone has to put that
> information into GetPrerequisites. Since qt_menu.nib is a rather
> recent addition to Qt, and most people use their own scripts to
> accomplish this, it hasn't happened so far. Also, there's the issue
> of whether one actually wants to hard-code such specific information
> into a general tool like GetPrerequisites... The danger of creating
> a huge number of unmaintainable special cases is quite big there...
>
> Perhaps one could devise a way for FindXXX/XXConfig modules to
> communicate such requirements to GetPrerequisites using properties.
> This approach would be much more modular and wouldn't require
> GetPrerequisites to be updated every time a module changes.
>
>
> As the primary author of GetPrerequisites and BundleUtilities, I'm
> gonna chime in here, even though I don't have time in the near term
> future to do much useful work on the topic...
>
> I think that the missing *.nib files should be accounted for by
> adding the capability to BundleUtilities to copy *all* of the files
> in a copied framework. Right now, it copies *only* the actual binary
> dylib files to minimize the size of the resulting bundle. Clearly
> that does not work for libraries that depend on embedded resources
> that are in other parts of the framework. I would like, moving
> forward, to add the ability to say "copy everything" or "copy this
> list of extra stuff" for any given framework that gets pulled in
> because it is a prereq.
>
> Hopefully, my expression of this intent will guide anybody else
> interested in contributing a patch before I do have the time to get
> to it myself. :-)
>
> If there is anybody out there who can spend the time on this right
> now, I'd be happy to act as a reviewer or collaborator. Just ping me.
>
>
> Thx,
> David Cole
More information about the CMake
mailing list