From 0420edd920d680c1fcf55649496adad7eca5a982 Mon Sep 17 00:00:00 2001 From: kervala Date: Mon, 10 Oct 2016 20:02:38 +0200 Subject: [PATCH] Changed: Create a bundle for Ryzom Installer under OS X --- .../client/ryzom_installer/CMakeLists.txt | 33 +++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/code/ryzom/tools/client/ryzom_installer/CMakeLists.txt b/code/ryzom/tools/client/ryzom_installer/CMakeLists.txt index 0072a7f20..c66e35b61 100644 --- a/code/ryzom/tools/client/ryzom_installer/CMakeLists.txt +++ b/code/ryzom/tools/client/ryzom_installer/CMakeLists.txt @@ -41,7 +41,36 @@ SOURCE_GROUP("Forms" FILES ${CLIENT_INSTALL_UIS}) SOURCE_GROUP("Generated Files" FILES ${CLIENT_INSTALL_UI_HDRS} ${CLIENT_INSTALL_MOC_SRC} ${CLIENT_INSTALL_RC_SRCS}) SOURCE_GROUP("Translation Files" FILES ${CLIENT_INSTALL_TRANS} ${CLIENT_INSTALL_BASE_TRANS}) -ADD_EXECUTABLE(ryzom_installer_qt WIN32 ${SRC} ${CLIENT_INSTALL_MOC_SRC} ${CLIENT_INSTALL_UI_HDRS} ${CLIENT_INSTALL_RC_SRCS} ${CLIENT_INSTALL_TRANS} ${CLIENT_INSTALL_BASE_TRANS} ${CLIENT_INSTALL_QM}) +# on Mac, create a .app Bundle +if(APPLE) + SET(MACOSX_BUNDLE_INFO_STRING "Ryzom Installer") + SET(MACOSX_BUNDLE_ICON_FILE "ryzom.icns") + SET(MACOSX_BUNDLE_GUI_IDENTIFIER "") + SET(MACOSX_BUNDLE_LONG_VERSION_STRING ${RYZOM_VERSION}) + SET(MACOSX_BUNDLE_BUNDLE_NAME "Ryzom Installer") + SET(MACOSX_BUNDLE_SHORT_VERSION_STRING ${RYZOM_VERSION}) + SET(MACOSX_BUNDLE_BUNDLE_VERSION "1.0") + SET(MACOSX_BUNDLE_COPYRIGHT ${COPYRIGHT}) + SET(RYZOM_OUTPUT_DIR ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${MACOSX_BUNDLE_BUNDLE_NAME}.app) + SET(RYZOM_CONTENTS_DIR ${RYZOM_OUTPUT_DIR}/Contents) + SET(RYZOM_RESOURCES_DIR ${RYZOM_CONTENTS_DIR}/Resources) + SET(MAC_RESOURCES_DIR ${CMAKE_SOURCE_DIR}/ryzom/client/macosx) +ENDIF() + +ADD_EXECUTABLE(ryzom_installer_qt WIN32 MACOSX_BUNDLE ${SRC} ${CLIENT_INSTALL_MOC_SRC} ${CLIENT_INSTALL_UI_HDRS} ${CLIENT_INSTALL_RC_SRCS} ${CLIENT_INSTALL_TRANS} ${CLIENT_INSTALL_BASE_TRANS} ${CLIENT_INSTALL_QM}) + +IF(APPLE) + SET_TARGET_PROPERTIES(ryzom_installer_qt PROPERTIES OUTPUT_NAME RyzomInstaller) + SET_TARGET_PROPERTIES(ryzom_installer_qt PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${MAC_RESOURCES_DIR}/Info.plist) + ADD_CUSTOM_COMMAND(TARGET ryzom_installer_qt PRE_BUILD COMMAND mkdir -p ${RYZOM_RESOURCES_DIR}) + ADD_CUSTOM_COMMAND(TARGET ryzom_installer_qt POST_BUILD COMMAND cp ARGS -p ${MAC_RESOURCES_DIR}/PkgInfo ${RYZOM_CONTENTS_DIR}) + ADD_CUSTOM_COMMAND(TARGET ryzom_installer_qt POST_BUILD COMMAND cp ARGS -p ${MAC_RESOURCES_DIR}/ryzom.icns ${RYZOM_RESOURCES_DIR}) + + IF(CODESIGN_ALLOCATE AND APPLE_CERTIFICATE) + ADD_CUSTOM_COMMAND(TARGET ryzom_installer_qt POST_BUILD COMMAND CODESIGN_ALLOCATE=${CODESIGN_ALLOCATE} codesign -fs "${APPLE_CERTIFICATE}" "${RYZOM_OUTPUT_DIR}" COMMENT "Signing Ryzom Installer bundle...") + ENDIF() +ENDIF() + NL_DEFAULT_PROPS(ryzom_installer_qt "Ryzom, Tools: Ryzom Installer" ) NL_ADD_RUNTIME_FLAGS(ryzom_installer_qt) NL_ADD_LIB_SUFFIX(ryzom_installer_qt) @@ -55,7 +84,7 @@ IF(WITH_PCH) ADD_NATIVE_PRECOMPILED_HEADER(ryzom_installer_qt ${CMAKE_CURRENT_SOURCE_DIR}/src/stdpch.h ${CMAKE_CURRENT_SOURCE_DIR}/src/stdpch.cpp) ENDIF() -INSTALL(TARGETS ryzom_installer_qt RUNTIME DESTINATION ${RYZOM_GAMES_PREFIX} COMPONENT client) +INSTALL(TARGETS ryzom_installer_qt RUNTIME DESTINATION ${RYZOM_GAMES_PREFIX} COMPONENT client BUNDLE DESTINATION /Applications) IF(UNIX AND NOT APPLE) INSTALL(FILES res/ryzom_installer.png DESTINATION ${RYZOM_SHARE_PREFIX} COMPONENT client)