From 66d6e17e7b296675aac4497443afff5a38394c61 Mon Sep 17 00:00:00 2001 From: beaglejoe Date: Sun, 12 Apr 2020 21:41:22 +0000 Subject: [PATCH] Cleaned up some MacOS install code git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@6917 30fe4595-0a0c-4342-8851-515496e4dcbd --- cmake/fixbundle.cmake.in | 30 +++--------------------------- packaging/CMakeLists.txt | 36 +++++++++++++++++++++++++++--------- 2 files changed, 30 insertions(+), 36 deletions(-) diff --git a/cmake/fixbundle.cmake.in b/cmake/fixbundle.cmake.in index af270105c..09079495f 100644 --- a/cmake/fixbundle.cmake.in +++ b/cmake/fixbundle.cmake.in @@ -18,34 +18,10 @@ INCLUDE(BundleUtilities) SET(BU_CHMOD_BUNDLE_ITEMS ON) -SET(bundle "@_bundle@") +SET(bundle "@SD_FU_BUNDLE@") +SET(plugins "@SD_FU_PLUGINS@") -#SET(loadables @SD_MODULE_LIST_ITEMS@) -#SET(robots @SD_ROBOT_LIST_ITEMS@) -#SET(osg_plugins @SD_OSG_PLUGIN_LIST_ITEMS@) - -SET(plugins "@_loadables@") - -SET(_prefix_path @CMAKE_PREFIX_PATH@) - - -# TODO - APPLE specific ? -SET(search_dirs ) -IF(_prefix_path) - LIST(APPEND search_dirs "${_prefix_path}") -ENDIF(_prefix_path) -LIST(APPEND search_dirs "@CMAKE_INSTALL_PREFIX@") -LIST(APPEND search_dirs "@CMAKE_INSTALL_PREFIX@/Frameworks") -LIST(APPEND search_dirs "@CMAKE_INSTALL_PREFIX@/MacOS") -LIST(APPEND search_dirs "@CMAKE_INSTALL_PREFIX@/lib64/games/@PROJECT_NAME@/lib") -LIST(APPEND search_dirs "@CMAKE_INSTALL_PREFIX@/games/Plugins/@OSG_PLUGIN_DIR@") - +SET(search_dirs "@SD_FU_SEARCHDIRS@") FIXUP_BUNDLE("${bundle}" "${plugins}" "${search_dirs}") - -message(STATUS bundle = "${bundle}") -message(STATUS plugins = "${plugins}") -message(STATUS search_dirs = "${search_dirs}") -message(STATUS _prefix_path = "${_prefix_path}") - diff --git a/packaging/CMakeLists.txt b/packaging/CMakeLists.txt index 620e3e61e..cfc26ce31 100644 --- a/packaging/CMakeLists.txt +++ b/packaging/CMakeLists.txt @@ -41,45 +41,63 @@ IF(OPTION_OSGGRAPH) FOREACH(pi ${OSG_PLUGINS}) INSTALL(FILES ${pi} DESTINATION ./games/PlugIns/${OSG_PLUGIN_DIR}) GET_FILENAME_COMPONENT(fname ${pi} NAME) - SET_PROPERTY(GLOBAL APPEND PROPERTY SD_OSG_PLUGIN_LIST "/games/PlugIns/${OSG_PLUGIN_DIR}/${fname}") + SET_PROPERTY(GLOBAL APPEND PROPERTY SD_OSG_PLUGIN_LIST "games/PlugIns/${OSG_PLUGIN_DIR}/${fname}") ENDFOREACH() ENDIF((APPLE) AND ("${CMAKE_INSTALL_PREFIX}" MATCHES "\\.app$")) ENDIF(OPTION_OSGGRAPH) #============================================================================== -Message(STATUS "Todo - Check handling of SD_OSG_PLUGIN_LIST_ITEMS in fixbundle.cmake.in") IF((APPLE) AND ("${CMAKE_INSTALL_PREFIX}" MATCHES "\\.app$")) GET_PROPERTY(SD_MODULE_LIST_ITEMS GLOBAL PROPERTY SD_MODULE_LIST) GET_PROPERTY(SD_ROBOT_LIST_ITEMS GLOBAL PROPERTY SD_ROBOT_LIST) GET_PROPERTY(SD_OSG_PLUGIN_LIST_ITEMS GLOBAL PROPERTY SD_OSG_PLUGIN_LIST) #GET_PROPERTY(SD_EXE_LIST_ITEMS GLOBAL PROPERTY SD_EXE_LIST) - SET (_bundle "${CMAKE_INSTALL_PREFIX}/${SD_BINDIR}/${PROJECT_NAME}${CMAKE_EXECUTABLE_SUFFIX}") - + # Loop through the GLOBAL lists and build up the 'extra libs' for FIXUP_BUNDLE() SET(_loadables ) foreach(_MODULE ${SD_MODULE_LIST_ITEMS}) - LIST(APPEND _loadables "${CMAKE_INSTALL_PREFIX}/${_MODULE}") + LIST(APPEND _loadables "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_PREFIX}/${_MODULE}") endforeach() foreach(_ROBOT ${SD_ROBOT_LIST_ITEMS}) - LIST(APPEND _loadables "${CMAKE_INSTALL_PREFIX}/${_ROBOT}") + LIST(APPEND _loadables "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_PREFIX}/${_ROBOT}") endforeach() foreach(_PLUGIN ${SD_OSG_PLUGIN_LIST_ITEMS}) #message(STATUS "${_PLUGIN}") - LIST(APPEND _loadables "${CMAKE_INSTALL_PREFIX}/${_PLUGIN}") + LIST(APPEND _loadables "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_PREFIX}/${_PLUGIN}") endforeach() #================ # TODO figure out if this is needed... + MESSAGE(STATUS "TODO: Hard coded loadable libraries...") IF(NOT OPTION_OFFICIAL_ONLY) - LIST(APPEND _loadables "${CMAKE_INSTALL_PREFIX}/lib64/games/${_TARGET_NAME}/lib/libephemeris.dylib") + LIST(APPEND _loadables "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_PREFIX}/lib64/games/${PROJECT_NAME}/lib/libephemeris.dylib") ENDIF(NOT OPTION_OFFICIAL_ONLY) - LIST(APPEND _loadables "${CMAKE_INSTALL_PREFIX}/lib64/games/${_TARGET_NAME}/lib/liblearning.dylib") + LIST(APPEND _loadables "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_PREFIX}/lib64/games/${PROJECT_NAME}/lib/liblearning.dylib") #================ + # Build up the 'dirs' collection for FIXUP_BUNDLE() to use for finding dependencies + SET(_search_dirs ) + IF(CMAKE_PREFIX_PATH) + LIST(APPEND _search_dirs "${CMAKE_PREFIX_PATH}") + ENDIF(CMAKE_PREFIX_PATH) + LIST(APPEND _search_dirs "${CMAKE_INSTALL_PREFIX}/Frameworks") + LIST(APPEND _search_dirs "${CMAKE_INSTALL_PREFIX}/MacOS") + LIST(APPEND _search_dirs "${CMAKE_INSTALL_PREFIX}/lib64/games/${PROJECT_NAME}/lib") + LIST(APPEND _search_dirs "${CMAKE_INSTALL_PREFIX}/games/Plugins/${OSG_PLUGIN_DIR}") + + + + # Build up the 'app' path for FIXUP_BUNDLE() + SET(SD_FU_BUNDLE "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_PREFIX}/${SD_BINDIR}/${PROJECT_NAME}${CMAKE_EXECUTABLE_SUFFIX}") + + SET(SD_FU_PLUGINS ${_loadables}) + + SET(SD_FU_SEARCHDIRS ${_search_dirs}) + CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/cmake/fixbundle.cmake.in ${CMAKE_BINARY_DIR}/fixbundle.cmake @ONLY)