[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