1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
cmake_policy(SET CMP0011 NEW)
cmake_policy(SET CMP0012 NEW)
cmake_policy(SET CMP0053 NEW)
include(@FWCMAKE_INSTALL_FILES_DIR@/helper.cmake)
# Run the script when installing but not a second time when running CPack
if ( NOT ${CMAKE_INSTALL_PREFIX} MATCHES "/_CPack_Packages/.*/(TGZ|ZIP)/")
#Find all /*/.so* in /Modules /plugins and /vlc/plugins
file(GLOB_RECURSE MODULES FOLLOW_SYMLINKS "@CMAKE_INSTALL_PREFIX@/@SIGHT_MODULE_LIB_PREFIX@/*@CMAKE_SHARED_LIBRARY_SUFFIX@*")
file(GLOB_RECURSE PLUGINS FOLLOW_SYMLINKS
"@CMAKE_INSTALL_PREFIX@/plugins/*@CMAKE_SHARED_LIBRARY_SUFFIX@*"
"@CMAKE_INSTALL_PREFIX@/vlc/plugins/*@CMAKE_SHARED_LIBRARY_SUFFIX@*"
)
include(BundleUtilities)
set(LIBS "")
list(APPEND LIBS ${MODULES} ${PLUGINS} @QT_PLUGINS@)
# Also add modules from the SDK
if(@FW_BUILD_EXTERNAL@)
foreach(REQUIREMENT @PROJECT_REQUIREMENTS@)
file(GLOB_RECURSE MODULES FOLLOW_SYMLINKS "@Sight_LIBRARY_DIR@/${REQUIREMENT}*/*@CMAKE_SHARED_LIBRARY_SUFFIX@*")
if(MODULES)
list(APPEND LIBS ${MODULES})
endif()
endforeach()
endif()
set(VCPKG_TARGET_TRIPLET @VCPKG_TARGET_TRIPLET@)
if(VCPKG_TARGET_TRIPLET)
#Look for all directories containing '.so*' files
findLibsAndModules(LIBS_MODULES_DIRECTORIES)
list(APPEND LIBS_MODULES_DIRECTORIES @FW_SIGHT_EXTERNAL_LIBRARIES_DIR@)
list(APPEND LIBS_MODULES_DIRECTORIES @CMAKE_INSTALL_PREFIX@/lib)
if(@FW_BUILD_EXTERNAL@)
list(APPEND LIBS_MODULES_DIRECTORIES @Sight_LIBRARY_DIR@)
endif()
set(LAUNCHER_PATH @CMAKE_INSTALL_PREFIX@/@LAUNCHER_PATH@)
# We need to copy first the libraries as stated by the BundleUtilities documentation :
# "If you pass plugins to fixup_bundle as the libs parameter, you should install them or
# copy them into the bundle before calling fixup_bundle. The <libs> parameter is a list
# of libraries that must be fixed up, but that cannot be determined by otool output
# analysis (i.e. plugins)."
foreach(LIB ${LIBS})
file(COPY ${LIB} DESTINATION "@CMAKE_INSTALL_PREFIX@/bin/")
endforeach()
#Call fixup bundle on the sightrun and on all 'plugins' libraries (like bundle, plugins and share)
fixup_bundle("${LAUNCHER_PATH}" "${LIBS}" "${LIBS_MODULES_DIRECTORIES}")
endif()
# Move all libraries in 'lib' folder
# Not needed but much more elegant
file(GLOB_RECURSE FIXED_LIBS "@CMAKE_INSTALL_PREFIX@/bin/*@CMAKE_SHARED_LIBRARY_SUFFIX@*")
foreach(LIB ${FIXED_LIBS})
get_filename_component(LIB_FILE_NAME ${LIB} NAME)
if(NOT EXISTS "@CMAKE_INSTALL_PREFIX@/@SIGHT_MODULE_LIB_PREFIX@/${LIB_FILE_NAME}")
file(COPY ${LIB} DESTINATION "@CMAKE_INSTALL_PREFIX@/lib/")
endif()
file(REMOVE ${LIB})
endforeach()
endif()
|