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

David Cole david.cole at kitware.com
Sat Apr 17 06:59:18 EDT 2010


On Sat, Apr 17, 2010 at 1:02 AM, Clinton Stimpson <clinton at elemtech.com>wrote:

>
> 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
>
>
>
Excellent idea. I will work with this patch next week some time and see if I
can't get it applied.

Thx,
David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20100417/745131d7/attachment-0001.htm>


More information about the CMake mailing list