3 MACRO(RELOCATE_OSX_LIBRARY FROM_LIBRARY TO_LIBRARY IN_FILE)
6 COMMAND install_name_tool
7 -change ${FROM_LIBRARY} ${TO_LIBRARY}
8 \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${IN_FILE}
11 ENDMACRO(RELOCATE_OSX_LIBRARY FROM_LIBRARY TO_LIBRARY IN_FILE)
13 MACRO(RENAME_OSX_LIBRARY NAME FILE)
16 COMMAND install_name_tool
18 \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${FILE}
21 ENDMACRO(RENAME_OSX_LIBRARY NAME FILE)
23 MACRO(INSTALL_OSX_LIBRARY LIBRARY)
24 GET_FILENAME_COMPONENT(LIBRARY_PATH ${LIBRARY} PATH)
25 GET_FILENAME_COMPONENT(LIBRARY_NAME ${LIBRARY} NAME)
26 GET_FILENAME_COMPONENT(LIBRARY_NOEXT ${LIBRARY} NAME_WE)
27 FILE(GLOB LIBRARY_FILES ${LIBRARY_PATH}/${LIBRARY_NOEXT}.*.dylib)
28 INSTALL(FILES ${LIBRARY} ${LIBRARY_FILES} DESTINATION MacOS/)
29 RENAME_OSX_LIBRARY("@executable_path/${LIBRARY_NAME}" MacOS/${LIBRARY_NAME})
32 MACRO(RELOCATE_QT_LIBRARIES TARGET)
33 FOREACH(QT_LIBRARY ${QT_ACTIVE_LIBRARIES} ${PHONON_LIBRARY})
34 GET_FILENAME_COMPONENT(QT_FRAMEWORK_DIR ${QT_LIBRARY} NAME) # Eg QtCore.framework
35 GET_FILENAME_COMPONENT(QT_FRAMEWORK_NAME ${QT_LIBRARY} NAME_WE) # Eg QtCore
37 ${QT_FRAMEWORK_DIR}/Versions/4/${QT_FRAMEWORK_NAME}
38 @executable_path/../Frameworks/${QT_FRAMEWORK_DIR}/Versions/4/${QT_FRAMEWORK_NAME}
41 ENDFOREACH(QT_LIBRARY ${QT_ACTIVE_LIBRARIES})
42 ENDMACRO(RELOCATE_QT_LIBRARIES TARGET)
44 MACRO(INSTALL_QT_FRAMEWORKS)
46 DIRECTORY ${QT_ACTIVE_LIBRARIES} ${PHONON_LIBRARY}
47 DESTINATION Frameworks
48 REGEX "Headers|_debug" EXCLUDE
50 FOREACH(QT_FRAMEWORK ${QT_ACTIVE_LIBRARIES} ${PHONON_LIBRARY})
51 GET_FILENAME_COMPONENT(QT_LIBRARY ${QT_FRAMEWORK} NAME_WE)
52 RELOCATE_QT_LIBRARIES("Frameworks/${QT_LIBRARY}.framework/${QT_LIBRARY}")
53 RENAME_OSX_LIBRARY("@executable_path/../Frameworks/${QT_LIBRARY}.framework/Versions/4/${QT_LIBRARY}" "Frameworks/${QT_LIBRARY}.framework/${QT_LIBRARY}")
54 ENDFOREACH(QT_FRAMEWORK ${QT_ACTIVE_LIBRARIES})
55 ENDMACRO(INSTALL_QT_FRAMEWORKS)
57 MACRO(INSTALL_QT_PLUGINS)
58 FOREACH(WANTED_QT_PLUGIN ${ARGN})
59 GET_FILENAME_COMPONENT(WANTED_PLUGIN_DIR ${WANTED_QT_PLUGIN} PATH)
60 INSTALL(FILES ${QT_PLUGINS_DIR}/${WANTED_QT_PLUGIN}.dylib DESTINATION MacOS/${WANTED_PLUGIN_DIR})
61 RELOCATE_QT_LIBRARIES(MacOS/${WANTED_QT_PLUGIN}.dylib)
62 ENDFOREACH(WANTED_QT_PLUGIN ${ARGN})
63 ENDMACRO(INSTALL_QT_PLUGINS)
65 MACRO(COMPRESS_PACKAGE VERSION)
68 MESSAGE(STATUS Compressing...)
69 FILE(REMOVE ${CMAKE_PROJECT_NAME}-${VERSION}.dmg)
70 EXECUTE_PROCESS(COMMAND ln -sf /Applications OSXBundle/Applications)
73 hdiutil create -srcfolder OSXBundle -volname ${CMAKE_PROJECT_NAME}-${VERSION} -format UDBZ ${CMAKE_PROJECT_NAME}-${VERSION}.dmg
77 ENDMACRO(COMPRESS_PACKAGE)
80 SET(CMAKE_OSX_DEPLOYMENT_TARGET 10.4)
81 SET(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET})
82 SET(CMAKE_OSX_ARCHITECTURES "i386;ppc")
84 SET(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/OSXBundle/${CMAKE_PROJECT_NAME}.app/Contents")
85 IF(EXISTS ${CMAKE_SOURCE_DIR}/Info.plist)
86 INSTALL(FILES ${CMAKE_SOURCE_DIR}/Info.plist DESTINATION ${CMAKE_INSTALL_PREFIX}/)