[CMake] macosx fix bundle problems

Petr Vanek petr at scribus.info
Wed Sep 9 11:10:31 EDT 2009


yup. The reaso was really in splitted CMakeListst.txt files. It looks  
like app is "fixed" now - from otool -L point of view.

Of course it required more tweaking - add and empty qt.conf to prevent  
duplication of libs/frameworks etc. But it's much more clearer now.

BTW is there any script/template for cmake to find and bundle all  
required (or specified) qt plugins? Something like macdeployqt. Or  
should I use this binary instead of scripting?

thanks and cheers!
Petr

On Sep 8, 2009, at 11:22 PM, David Cole wrote:

> These lines of output near the beginning:
>
> -- warning: *NOT* handled - .app directory case...
> -- error: fixup_bundle: not a valid bundle
>
> ...indicate that fixup_bundle is not getting a .app bundle as its  
> input...
>
> The assumption made by fixup_bundle is that there is an executable  
> in the .app/Contents/MacOS folder to begin analyzing. Then, based on  
> what its prerequisites are, various libraries get copied into the  
> bundle as well. This output looks like that initial executable is  
> not there yet.
>
> Looks like your "INSTALL(SCRIPT" snippet occurs before the install  
> rule for the bundle executable. Make sure they both occur in the  
> same CMakeLists.txt file and that the script snippet comes after the  
> install rule for the executable. Then it should work like you  
> expect...
>
>
> HTH,
> David
>
>
> On Sat, Sep 5, 2009 at 4:15 PM, Petr Vanek <petr at scribus.info> wrote:
> hi all,
>
> I have a Qt4 application with bundle build support taken from cmake  
> wiki example.
>
> When I run "deploy" phase with make install, the correct structure  
> is created in CMAKE_INSTALL_PREFIX.
>
> But it looks like cmake's fixup_bundle function from BundleUtilities  
> does its job only partially.
>
> All Qt frameworks are fixed correctly to use @executable_path, but  
> the main binary still contains links to my development environment.
>
> What could be the issue?
>
> thanks,
> Petr Vanek
>
>
> code:
> http://tora.svn.sourceforge.net/viewvc/tora/trunk/tora/
>
> 1st make install run:
>
> rimmer:build-bundle pvanek$ make install
> [  1%] Built target tora_loki_lib
> [100%] Built target tora
> Install the project...
> -- Install configuration: "RELEASE"
> Removing Previous TOra.app bundle at /Users/pvanek/oss/tora/bundle/
> Copying TOra.app from the build tree to /Users/pvanek/oss/tora/bundle/
> -- fixup_bundle
> --   app='/Users/pvanek/oss/tora/bundle/TOra.app'
> --   libs=''
> --   dirs='Plugins'
> -- warning: *NOT* handled - .app directory case...
> -- error: fixup_bundle: not a valid bundle
> -- fixup_bundle: done
> CMake Warning (dev) at cmake_install.cmake:31 (INCLUDE):
> Policy CMP0011 is not set: Included scripts do automatic  
> cmake_policy PUSH
> and POP.  Run "cmake --help-policy CMP0011" for policy details.  Use  
> the
> cmake_policy command to set the policy and suppress this warning.
>
> The included script
>
>  /Users/pvanek/oss/tora/trunk/tora/build-bundle/ 
> TOra_OSX_MakeStandAloneBundle.cmake
>
> affects policy settings.  CMake is implying the NO_POLICY_SCOPE  
> option for
> compatibility, so the effects are applied to the including context.
> This warning is for project developers.  Use -Wno-dev to suppress it.
>
> -- Installing: /Users/pvanek/oss/tora/bundle/tora.app
> -- Installing: /Users/pvanek/oss/tora/bundle/tora.app/Contents
> -- Installing: /Users/pvanek/oss/tora/bundle/tora.app/Contents/ 
> Info.plist
> -- Installing: /Users/pvanek/oss/tora/bundle/tora.app/Contents/MacOS
> -- Installing: /Users/pvanek/oss/tora/bundle/tora.app/Contents/MacOS/ 
> tora
> -- Installing: /Users/pvanek/oss/tora/bundle/tora.app/Contents/ 
> Resources
> -- Installing: /Users/pvanek/oss/tora/bundle/tora.app/Contents/ 
> Resources/tora.icns
>
> 2nd make install
> rimmer:build-bundle pvanek$ make install
> [  1%] Built target tora_loki_lib
> [100%] Built target tora
> Install the project...
> -- Install configuration: "RELEASE"
> Removing Previous TOra.app bundle at /Users/pvanek/oss/tora/bundle/
> Copying TOra.app from the build tree to /Users/pvanek/oss/tora/bundle/
> -- fixup_bundle
> --   app='/Users/pvanek/oss/tora/bundle/TOra.app'
> --   libs=''
> --   dirs='Plugins'
> -- fixup_bundle: preparing...
> -- fixup_bundle: copying...
> -- 1/28: *NOT* copying '/Users/pvanek/oss/tora/bundle/TOra.app/ 
> Contents/MacOS/tora'
> -- 2/28: copying '/opt/local/lib/libcrypto.0.9.8.dylib'
> -- 3/28: copying '/opt/local/lib/libpng12.0.dylib'
> -- 4/28: copying '/opt/local/lib/libssl.0.9.8.dylib'
> -- 5/28: copying '/opt/local/lib/libz.1.dylib'
> -- 6/28: copying '/opt/local/lib/oracle/libclntsh.dylib.10.1'
> -- 7/28: copying '/opt/local/lib/oracle/libocci.dylib.10.1'
> -- 8/28: copying '/opt/local/lib/postgresql83/libpq.5.dylib'
> -- 9/28: copying '/opt/local/libexec/qt4-mac/lib/QtCore.framework/ 
> Versions/4/QtCore'
> -- 10/28: copying '/opt/local/libexec/qt4-mac/lib/QtGui.framework/ 
> Versions/4/QtGui'
> -- 11/28: copying '/opt/local/libexec/qt4-mac/lib/ 
> QtNetwork.framework/Versions/4/QtNetwork'
> -- 12/28: copying '/opt/local/libexec/qt4-mac/lib/QtSql.framework/ 
> Versions/4/QtSql'
> -- 13/28: copying '/opt/local/libexec/qt4-mac/lib/QtXml.framework/ 
> Versions/4/QtXml'
> -- 14/28: copying '/opt/local/libexec/qt4-mac/lib/ 
> libqscintilla2.5.dylib'
> -- fixup_bundle: fixing...
> -- 15/28: fixing up '/Users/pvanek/oss/tora/bundle/TOra.app/Contents/ 
> MacOS/tora'
> -- 16/28: fixing up '/Users/pvanek/oss/tora/bundle/TOra.app/Contents/ 
> Libraries/libcrypto.0.9.8.dylib'
> -- 17/28: fixing up '/Users/pvanek/oss/tora/bundle/TOra.app/Contents/ 
> Libraries/libpng12.0.dylib'
> -- 18/28: fixing up '/Users/pvanek/oss/tora/bundle/TOra.app/Contents/ 
> Libraries/libssl.0.9.8.dylib'
> -- 19/28: fixing up '/Users/pvanek/oss/tora/bundle/TOra.app/Contents/ 
> Libraries/libz.1.dylib'
> -- 20/28: fixing up '/Users/pvanek/oss/tora/bundle/TOra.app/Contents/ 
> MacOS/libclntsh.dylib.10.1'
> -- 21/28: fixing up '/Users/pvanek/oss/tora/bundle/TOra.app/Contents/ 
> MacOS/libocci.dylib.10.1'
> -- 22/28: fixing up '/Users/pvanek/oss/tora/bundle/TOra.app/Contents/ 
> Libraries/libpq.5.dylib'
> -- 23/28: fixing up '/Users/pvanek/oss/tora/bundle/TOra.app/Contents/ 
> Frameworks/QtCore.framework/Versions/4/QtCore'
> -- 24/28: fixing up '/Users/pvanek/oss/tora/bundle/TOra.app/Contents/ 
> Frameworks/QtGui.framework/Versions/4/QtGui'
> -- 25/28: fixing up '/Users/pvanek/oss/tora/bundle/TOra.app/Contents/ 
> Frameworks/QtNetwork.framework/Versions/4/QtNetwork'
> -- 26/28: fixing up '/Users/pvanek/oss/tora/bundle/TOra.app/Contents/ 
> Frameworks/QtSql.framework/Versions/4/QtSql'
> -- 27/28: fixing up '/Users/pvanek/oss/tora/bundle/TOra.app/Contents/ 
> Frameworks/QtXml.framework/Versions/4/QtXml'
> -- 28/28: fixing up '/Users/pvanek/oss/tora/bundle/TOra.app/Contents/ 
> Libraries/libqscintilla2.5.dylib'
> -- fixup_bundle: cleaning up...
> -- fixup_bundle: verifying...
> --  
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> -- Analyzing app='/Users/pvanek/oss/tora/bundle/TOra.app'
> -- bundle='/Users/pvanek/oss/tora/bundle/TOra.app'
> -- executable='/Users/pvanek/oss/tora/bundle/TOra.app/Contents/MacOS/ 
> tora'
> -- valid='1'
> -- executable file: /Users/pvanek/oss/tora/bundle/TOra.app/Contents/ 
> MacOS/tora
> -- verified='1'
> -- info='Verified 1 executable files in '/Users/pvanek/oss/tora/ 
> bundle/TOra.app''
> -- 
> -- verified='1'
> -- info=''
> -- 
> -- fixup_bundle: done
> CMake Warning (dev) at cmake_install.cmake:31 (INCLUDE):
> Policy CMP0011 is not set: Included scripts do automatic  
> cmake_policy PUSH
> and POP.  Run "cmake --help-policy CMP0011" for policy details.  Use  
> the
> cmake_policy command to set the policy and suppress this warning.
>
> The included script
>
>  /Users/pvanek/oss/tora/trunk/tora/build-bundle/ 
> TOra_OSX_MakeStandAloneBundle.cmake
>
> affects policy settings.  CMake is implying the NO_POLICY_SCOPE  
> option for
> compatibility, so the effects are applied to the including context.
> This warning is for project developers.  Use -Wno-dev to suppress it.
>
> -- Installing: /Users/pvanek/oss/tora/bundle/tora.app
> -- Installing: /Users/pvanek/oss/tora/bundle/tora.app/Contents
> -- Up-to-date: /Users/pvanek/oss/tora/bundle/tora.app/Contents/ 
> Info.plist
> -- Installing: /Users/pvanek/oss/tora/bundle/tora.app/Contents/MacOS
> -- Installing: /Users/pvanek/oss/tora/bundle/tora.app/Contents/MacOS/ 
> tora
> -- Installing: /Users/pvanek/oss/tora/bundle/tora.app/Contents/ 
> Resources
> -- Up-to-date: /Users/pvanek/oss/tora/bundle/tora.app/Contents/ 
> Resources/tora.icns
>
>
>
> rimmer:build-bundle pvanek$ otool -L ~/oss/tora/bundle/TOra.app/ 
> Contents/MacOS/tora
> /Users/pvanek/oss/tora/bundle/TOra.app/Contents/MacOS/tora:
>      /opt/local/libexec/qt4-mac/lib/QtGui.framework/Versions/4/QtGui  
> (compatibility version 4.5.0, current version 4.5.1)
>      /opt/local/lib/libpng12.0.dylib (compatibility version 39.0.0,  
> current version 39.0.0)
>      /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon  
> (compatibility version 2.0.0, current version 136.0.0)
>      /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit  
> (compatibility version 45.0.0, current version 949.54.0)
>      /opt/local/libexec/qt4-mac/lib/QtXml.framework/Versions/4/QtXml  
> (compatibility version 4.5.0, current version 4.5.1)
>      /opt/local/libexec/qt4-mac/lib/QtSql.framework/Versions/4/QtSql  
> (compatibility version 4.5.0, current version 4.5.1)
>      /opt/local/libexec/qt4-mac/lib/QtNetwork.framework/Versions/4/ 
> QtNetwork (compatibility version 4.5.0, current version 4.5.1)
>      /usr/lib/libssl.0.9.7.dylib (compatibility version 0.9.7,  
> current version 0.9.7)
>      /opt/local/libexec/qt4-mac/lib/QtCore.framework/Versions/4/ 
> QtCore (compatibility version 4.5.0, current version 4.5.1)
>      /usr/lib/libz.1.dylib (compatibility version 1.0.0, current  
> version 1.2.3)
>      /opt/local/lib/oracle/libocci.dylib.10.1 (compatibility version  
> 0.0.0, current version 0.0.0)
>      /opt/local/lib/oracle/libclntsh.dylib.10.1 (compatibility  
> version 0.0.0, current version 0.0.0)
>      /opt/local/libexec/qt4-mac/lib/libqscintilla2.5.dylib  
> (compatibility version 5.1.0, current version 5.1.0)
>      /opt/local/lib/postgresql83/libpq.5.dylib (compatibility  
> version 5.0.0, current version 5.1.0)
>      /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0,  
> current version 7.4.0)
>      /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current  
> version 1.0.0)
>      /usr/lib/libSystem.B.dylib (compatibility version 1.0.0,  
> current version 111.1.4)
> _______________________________________________
> 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