Hello everyone,
I try to build a small Qt application (helloGUI) with a shared library (hello).
Here is my application and library tree:
├── CMakeLists.txt
├── gui
│   ├── CMakeLists.txt
│   ├── bundle.cmake
│   ├── include
│   │   └── MainWindow.hpp
│   ├── src
│   │   ├── MainWindow.cpp
│   │   └── main.cpp
│   └── ui
│       └── mainwindow.ui
└── lib
    ├── CMakeLists.txt
    ├── Hello.cpp
    └── Hello.h

My root CMakeLists.txt add the two sub directory: lib then gui.
The lib CMakeLists.txt build a shared library (.dylib) and installed it inside 
${CMAKE_INSTALL_PREFIX}/helloGUI.app/Contents/Libraries.
The gui CMakeLists.txt build my Qt bundle (helloGUI.app) and installed it 
inside ${CMAKE_INSTALL_PREFIX} then launch the script bundle.cmake.
bundle.cmake contains:
include(BundleUtilities)
fixup_bundle("${CMAKE_INSTALL_PREFIX}/helloGUI.app" 
"${CMAKE_INSTALL_PREFIX}/helloGUI.app/Contents/Libraries/libHello.dylib" "lib")

If I don’t install it, my application works just fine. But after installation, 
I have some errors:

Install the project...
-- Install configuration: ""
-- Installing: 
/MYPATH/TestQtCMake/build/install/helloGUI.app/Contents/Libraries/libHello.dylib
-- Installing: /MYPATH/TestQtCMake/build/install/./helloGUI.app
-- Installing: /MYPATH/TestQtCMake/build/install/./helloGUI.app/Contents
-- Installing: 
/MYPATH/TestQtCMake/build/install/./helloGUI.app/Contents/Info.plist
-- Installing: /MYPATH/TestQtCMake/build/install/./helloGUI.app/Contents/MacOS
-- Installing: 
/MYPATH/TestQtCMake/build/install/./helloGUI.app/Contents/MacOS/helloGUI
-- fixup_bundle
--   app='/MYPATH/TestQtCMake/build/install/helloGUI.app'
--   
libs='/MYPATH/TestQtCMake/build/install/helloGUI.app/Contents/Libraries/libHello.dylib'
--   dirs='lib'
-- fixup_bundle: preparing...
-- fixup_bundle: copying...
-- 1/10: *NOT* copying 
'/MYPATH/TestQtCMake/build/install/helloGUI.app/Contents/Libraries/libHello.dylib'
-- 2/10: *NOT* copying 
'/MYPATH/TestQtCMake/build/install/helloGUI.app/Contents/MacOS/helloGUI'
-- 3/10: copying 
'/Users/rleguay/Qt5.2.1/5.2.1/clang_64/lib/QtCore.framework/Versions/5/QtCore'
-- 4/10: copying 
'/Users/rleguay/Qt5.2.1/5.2.1/clang_64/lib/QtGui.framework/Versions/5/QtGui'
-- 5/10: copying 
'/Users/rleguay/Qt5.2.1/5.2.1/clang_64/lib/QtWidgets.framework/Versions/5/QtWidgets'
-- fixup_bundle: fixing...
-- 6/10: fixing up 
'/MYPATH/TestQtCMake/build/install/helloGUI.app/Contents/Libraries/libHello.dylib'
-- 7/10: fixing up 
'/MYPATH/TestQtCMake/build/install/helloGUI.app/Contents/MacOS/helloGUI'
-- 8/10: fixing up 
'/MYPATH/TestQtCMake/build/install/helloGUI.app/Contents/Frameworks/QtCore.framework/Versions/5/QtCore'
-- 9/10: fixing up 
'/MYPATH/TestQtCMake/build/install/helloGUI.app/Contents/Frameworks/QtGui.framework/Versions/5/QtGui'
-- 10/10: fixing up 
'/MYPATH/TestQtCMake/build/install/helloGUI.app/Contents/Frameworks/QtWidgets.framework/Versions/5/QtWidgets'
-- fixup_bundle: cleaning up...
-- fixup_bundle: verifying...
-- ===========================================================================
-- Analyzing app='/MYPATH/TestQtCMake/build/install/helloGUI.app'
-- bundle='/MYPATH/TestQtCMake/build/install/helloGUI.app'
-- 
executable='/MYPATH/TestQtCMake/build/install/helloGUI.app/Contents/MacOS/helloGUI'
-- valid='1'
-- executable file 1: 
/MYPATH/TestQtCMake/build/install/helloGUI.app/Contents/MacOS/helloGUI
-- warning: embedded item does not exist 
'/MYPATH/TestQtCMake/build/install/helloGUI.app/Contents/MacOS/libHello.dylib'
-- 
warning: cannot resolve item '@executable_path/../MacOS/libHello.dylib'

  possible problems:
    need more directories?
    need to use InstallRequiredSystemLibraries?
    run in install tree instead of build tree?

warning: target '@executable_path/../MacOS/libHello.dylib' is not absolute...
warning: target '@executable_path/../MacOS/libHello.dylib' does not exist...
error: 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/otool:
 can't open file: @executable_path/../MacOS/libHello.dylib (No such file or 
directory)
error: 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/otool:
 can't open file: @executable_path/../MacOS/libHello.dylib (No such file or 
directory)
-- verified='1'
-- info='Verified 1 executable files in 
'/MYPATH/TestQtCMake/build/install/helloGUI.app''
-- 
-- verified='1'
-- info=''
-- 
-- fixup_bundle: done

I see that the script search libHello.dylib inside Contents/MacOS but I don’t 
understand why. 
Can we set this path please?

Thank you.

Best regards,
Romain
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to