[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