[CMake] CMake 2.8.1 + Qt/Cocoa + OS X Problem -- qt_menu.nib not getting copied

Clinton Stimpson clinton at elemtech.com
Sat Apr 17 01:02:36 EDT 2010


On Apr 16, 2010, at 9: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.

I'm looking at the simple example of a framework given here (Listing 1):
<http://devworld.apple.com/mac/library/documentation/MacOSX/Conceptual/BPFrameworks/Concepts/FrameworkAnatomy.html>
What if we just add the Resources directory if it exist for the version of the framework being used?  In other words, if Resources exists, assume its needed to make the framework functional.  I've attached a patch that does this.

This would fix the Qt/Cocoa problem.

Then what if it was a further extension to optionally include more parts of the framework or the entire framework, like you are suggesting?

Clint

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20100416/3a712bf4/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: BundleUtilities-Resources.patch
Type: application/octet-stream
Size: 1533 bytes
Desc: not available
URL: <http://www.cmake.org/pipermail/cmake/attachments/20100416/3a712bf4/attachment.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20100416/3a712bf4/attachment-0001.htm>


More information about the CMake mailing list