[CMake] Qt 4.5 missing parts of QtGui.framework on OS X

Michael Jackson mike.jackson at bluequartz.net
Mon Mar 30 11:04:23 EDT 2009


Just off the top of my head a "copy_framework" function with some  
optional parameters to prune the Headers directory  or other  
directories might be nice. For bonus points, prune older versions of  
the library that are in the framework, ie those NOT pointed to by  
"Versions->Current".

  Wish I had time to help but I now swamped. I hacked some patches  
into my code to get me through until a better solution is found.

_________________________________________________________
Mike Jackson                  mike.jackson at bluequartz.net
BlueQuartz Software                    www.bluequartz.net
Principal Software Engineer                  Dayton, Ohio



On Mar 30, 2009, at 10:57 AM, David Cole wrote:

> Looking at BundleUtilities.cmake, I would say the best thing to do  
> here would be to add some logic to the  
> copy_resolved_item_into_bundle function that deals with copying an  
> entire framework as a directory copy rather than just copying the  
> library file itself.
>
> I will think about what's the best way to handle that. The simplest  
> thing would just be a global flag that copies all frameworks as  
> directories (or just as files)... A better method would be to allow  
> that setting on a per-framework basis so that the bundle size can be  
> kept to a minimum while allowing the copying of resources for those  
> frameworks that need it.
>
> Any concrete code change suggestions from anyone? (A patch, for  
> example... :-)
>
>
> David
>
>
> On Sat, Mar 28, 2009 at 12:07 AM, Mike Jackson <mike.jackson at bluequartz.net 
> > wrote:
> I got a new Xeon Mac Pro so I thought I might start compiling some of
> my own Qt based applications against a 64 bit build of Qt 4.5.
> Generally things work Except when I use the BundleUtilities.cmake to
> bundle the application.
>  Seems somewhere during the copy of the framework (I have my guesses)
> that _only_ the library within the framework and NOT the entire
> framework is being copied. This makes sense on one hand as usually a
> deployed Application doesn't need things like headers and such. Except
> now with Qt 4.5 being cocoa based (for 64 bit builds) there is not a
> .nib file that needs to be loaded. The .nib package is located in the
> QtGui.framework/Resources directory but as I stated is NOT being
> copied.
>   According the error message that I got the .nib can be located in
> the QtGui.framework/versions/current/Resources OR inside the Resources
> directory of your own application (Next to your icon file.. ). So
> there are a few ways to solve this problem but the easiest would be to
> just adjust the BundleUtilities to copy the entire .framework package
> instead of just parts of it. This would probably result in extra stuff
> being put into the app bundle that isn't need but it is better to have
> extra than not enough.
>    The other way I can work around this would be to work out the path
> to the .nib file within the QtGui.framework package and copy it over
> to the OS X application bundle myself. I would rather not have to do
> this but if there are major objections to above then I'll have to go
> down this route.
>
>  Comments from anyone?
>
> Mike Jackson
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.cmake.org/mailman/listinfo/cmake
>



More information about the CMake mailing list