diff options
Diffstat (limited to 'indra/cmake/LLSharedLibs.cmake')
-rwxr-xr-x[-rw-r--r--] | indra/cmake/LLSharedLibs.cmake | 43 |
1 files changed, 21 insertions, 22 deletions
diff --git a/indra/cmake/LLSharedLibs.cmake b/indra/cmake/LLSharedLibs.cmake index 6f602680f4..a3c1c871aa 100644..100755 --- a/indra/cmake/LLSharedLibs.cmake +++ b/indra/cmake/LLSharedLibs.cmake @@ -1,24 +1,25 @@ # ll_deploy_sharedlibs_command # target_exe: the cmake target of the executable for which the shared libs will be deployed. macro(ll_deploy_sharedlibs_command target_exe) - get_target_property(TARGET_LOCATION ${target_exe} LOCATION) + set(TARGET_LOCATION $<TARGET_FILE:${target_exe}>) get_filename_component(OUTPUT_PATH ${TARGET_LOCATION} PATH) if(DARWIN) - set(SEARCH_DIRS "${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/Resources") + SET_TEST_PATH(SEARCH_DIRS) get_target_property(IS_BUNDLE ${target_exe} MACOSX_BUNDLE) if(IS_BUNDLE) - # If its a bundle the exe is not in the target location, this should find it. + # If its a bundle the exe is not in the target location, this should find it. get_filename_component(TARGET_FILE ${TARGET_LOCATION} NAME) set(OUTPUT_PATH ${TARGET_LOCATION}.app/Contents/MacOS) set(TARGET_LOCATION ${OUTPUT_PATH}/${TARGET_FILE}) - set(OUTPUT_PATH ${OUTPUT_PATH}/../Resources) + set(OUTPUT_PATH ${OUTPUT_PATH}/../Resources) endif(IS_BUNDLE) elseif(WINDOWS) - set(SEARCH_DIRS "${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}" "$ENV{SystemRoot}/system32") + SET_TEST_PATH(SEARCH_DIRS) + LIST(APPEND SEARCH_DIRS "$ENV{SystemRoot}/system32") elseif(LINUX) - set(SEARCH_DIRS "${SHARED_LIB_STAGING_DIR}") - set(OUTPUT_PATH ${OUTPUT_PATH}/lib) + SET_TEST_PATH(SEARCH_DIRS) + set(OUTPUT_PATH ${OUTPUT_PATH}/lib) endif(DARWIN) add_custom_command( @@ -37,19 +38,18 @@ endmacro(ll_deploy_sharedlibs_command) # ll_stage_sharedlib # Performs config and adds a copy command for a sharedlib target. macro(ll_stage_sharedlib DSO_TARGET) - if(SHARED_LIB_STAGING_DIR) - # target gets written to the DLL staging directory. - # Also this directory is shared with RunBuildTest.cmake, y'know, for the tests. - set_target_properties(${DSO_TARGET} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${SHARED_LIB_STAGING_DIR}) - if(NOT WINDOWS) - get_target_property(DSO_PATH ${DSO_TARGET} LOCATION) - get_filename_component(DSO_FILE ${DSO_PATH} NAME) - if(DARWIN) - set(SHARED_LIB_STAGING_DIR_CONFIG ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/Resources) - else(DARWIN) - set(SHARED_LIB_STAGING_DIR_CONFIG ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}) - endif(DARWIN) - + # target gets written to the DLL staging directory. + # Also this directory is shared with RunBuildTest.cmake, y'know, for the tests. + set_target_properties(${DSO_TARGET} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${SHARED_LIB_STAGING_DIR}) + if(NOT WINDOWS) + get_target_property(DSO_PATH ${DSO_TARGET} LOCATION) + get_filename_component(DSO_FILE ${DSO_PATH} NAME) + if(DARWIN) + set(SHARED_LIB_STAGING_DIR_CONFIG ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/Resources) + else(DARWIN) + set(SHARED_LIB_STAGING_DIR_CONFIG ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}) + endif(DARWIN) + # *TODO - maybe make this a symbolic link? -brad add_custom_command( TARGET ${DSO_TARGET} POST_BUILD @@ -62,7 +62,6 @@ macro(ll_stage_sharedlib DSO_TARGET) COMMENT "Copying llcommon to the staging folder." ) endif(NOT WINDOWS) - endif(SHARED_LIB_STAGING_DIR) if (DARWIN) set_target_properties(${DSO_TARGET} PROPERTIES @@ -71,4 +70,4 @@ macro(ll_stage_sharedlib DSO_TARGET) ) endif(DARWIN) -endmacro(ll_stage_sharedlib)
\ No newline at end of file +endmacro(ll_stage_sharedlib) |