This is actually ironic. The SDL.framework is actually ready to be
used in a bundle in its default state which seems to be the exception
to the rule. Typically the install_path embedded in the dylib or
framework is either just the name of the library OR the complete path
to the library/framework. So basically there needs to be an additional
check in the BundleUtilities.cmake file to look for an install_path
that begins with @executable_path or @loader_path and basically ignore
the next few steps where the install_path is fixed up and copied into
the bundle location. So look in the BundleUtilities.cmake file and see
if you can patch it up.
___________________________________________________________
Mike Jackson www.bluequartz.net
Principal Software Engineer mike.jack...@bluequartz.net
BlueQuartz Software Dayton, Ohio
On Mar 5, 2010, at 8:39 AM, Francisco Requena wrote:
As on my previous my post, I got a bundle with SDL.framework embeeded.
On OS X, you can either use .framework and .dylib binaries. So, I
got to use the BundleUtilities macro.
If CMake doesn't find the .framework, all works ok: I get 3
libraries (libSDL..) on Content/MacOS folder.
If CMake finds the .framework, it just doesn't know (or it seems)
how to handle it. What can I do?
Here's the CMakeLists.txt:
cmake_minimum_required(VERSION 2.8)
project(openvolt)
set(APP_NAME OpenVolt)
include(FindSDL)
include(FindOpenGL)
include_directories(${SDL_INCLUDE_DIR})
add_executable(${APP_NAME} MACOSX_BUNDLE main.cpp)
target_link_libraries(${APP_NAME} ${SDL_LIBRARY} ${OPENGL_LIBRARIES})
string(REPLACE "-framework Cocoa" "" DIRS ${SDL_LIBRARY})
install(CODE "
include(BundleUtilities)
fixup_bundle(\"${openvolt_BINARY_DIR}/${APP_NAME}.app\" \"\" \"$
{DIRS}\")
" COMPONENT Runtime)
And here's the output when I do 'make install':
[100%] Built target OpenVolt
Install the project...
-- Install configuration: ""
-- fixup_bundle
-- app='/Users/frarees/openvolt/build/OpenVolt.app'
-- libs=''
-- dirs='/Library/Frameworks/SDL.framework'
-- fixup_bundle: preparing...
-- warning: embedded item does not exist '/Users/frarees/openvolt/
build/OpenVolt.app/Contents/Frameworks/SDL.framework/Versions/1.3/SDL'
--
warning: cannot resolve item '@executable_path/../Frameworks/
SDL.framework/Versions/1.3/SDL'
possible problems:
need more directories?
need to use InstallRequiredSystemLibraries?
run in install tree instead of build tree?
-- warning: embedded item does not exist '/Users/frarees/openvolt/
build/OpenVolt.app/Contents/Frameworks/SDL.framework/Versions/1.3/SDL'
--
warning: cannot resolve item '@executable_path/../Frameworks/
SDL.framework/Versions/1.3/SDL'
possible problems:
need more directories?
need to use InstallRequiredSystemLibraries?
run in install tree instead of build tree?
-- fixup_bundle: copying...
-- 1/4: *NOT* copying '/Users/frarees/openvolt/build/OpenVolt.app/
Contents/MacOS/OpenVolt'
-- 2/4: copying '@executable_path/../Frameworks/SDL.framework/
Versions/1.3/SDL'
-- fixup_bundle: fixing...
-- 3/4: fixing up '/Users/frarees/openvolt/build/OpenVolt.app/
Contents/MacOS/OpenVolt'
-- 4/4: fixing up '/Users/frarees/openvolt/build/OpenVolt.app/
Contents/Frameworks/SDL.framework/Versions/1.3/SDL'
-- fixup_bundle: cleaning up...
-- fixup_bundle: verifying...
--
=
=
=
=
=
======================================================================
-- Analyzing app='/Users/frarees/openvolt/build/OpenVolt.app'
-- bundle='/Users/frarees/openvolt/build/OpenVolt.app'
-- executable='/Users/frarees/openvolt/build/OpenVolt.app/Contents/
MacOS/OpenVolt'
-- valid='1'
-- executable file 1: /Users/frarees/openvolt/build/OpenVolt.app/
Contents/MacOS/OpenVolt
-- warning: embedded item does not exist '/Users/frarees/openvolt/
build/OpenVolt.app/Contents/Frameworks/SDL.framework/Versions/1.3/SDL'
--
warning: cannot resolve item '@executable_path/../Frameworks/
SDL.framework/Versions/1.3/SDL'
possible problems:
need more directories?
need to use InstallRequiredSystemLibraries?
run in install tree instead of build tree?
-- verified='1'
-- info='Verified 1 executable files in '/Users/frarees/openvolt/
build/OpenVolt.app''
--
-- verified='1'
-- info=''
--
-- fixup_bundle: done
_______________________________________________
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
_______________________________________________
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