Skip to content
Snippets Groups Projects
Commit 47e547fc authored by Nat Goodspeed's avatar Nat Goodspeed
Browse files

DEV-34837: Allow Mac SL executable to find libllcommon.dylib in app bundle's

Resources subdir without requiring user to explicitly set DYLD_LIBRARY_PATH.
Engage the SHARED_LIB_STAGING_DIR mechanism for Mac as well as Windows and
Linux so unit-test executables, too, can find libllcommon.dylib. Perform the
POST_BUILD copy of libllcommon.dylib to SHARED_LIB_STAGING_DIR everywhere but
Windows -- but make it conditional on SHARED_LIB_STAGING_DIR.
parent 0ac96fd8
No related branches found
No related tags found
No related merge requests found
...@@ -19,6 +19,7 @@ if (NOT STANDALONE) ...@@ -19,6 +19,7 @@ if (NOT STANDALONE)
set(ARCH_PREBUILT_DIRS_RELEASE ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib_release) set(ARCH_PREBUILT_DIRS_RELEASE ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib_release)
set(ARCH_PREBUILT_DIRS ${ARCH_PREBUILT_DIRS_RELEASE}) set(ARCH_PREBUILT_DIRS ${ARCH_PREBUILT_DIRS_RELEASE})
set(ARCH_PREBUILT_DIRS_DEBUG ${ARCH_PREBUILT_DIRS_RELEASE}) set(ARCH_PREBUILT_DIRS_DEBUG ${ARCH_PREBUILT_DIRS_RELEASE})
set(SHARED_LIB_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs CACHE FILEPATH "Location of staged DLLs")
endif (WINDOWS) endif (WINDOWS)
endif (NOT STANDALONE) endif (NOT STANDALONE)
......
...@@ -244,22 +244,28 @@ if(LLCOMMON_LINK_SHARED) ...@@ -244,22 +244,28 @@ if(LLCOMMON_LINK_SHARED)
# llcommon.dll get written to the DLL staging directory. # llcommon.dll get written to the DLL staging directory.
# Also this directory is shared with RunBuildTest.cmake, y'know, for the tests. # Also this directory is shared with RunBuildTest.cmake, y'know, for the tests.
set_target_properties(llcommon PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${SHARED_LIB_STAGING_DIR}) set_target_properties(llcommon PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${SHARED_LIB_STAGING_DIR})
endif(SHARED_LIB_STAGING_DIR) if(NOT WINDOWS)
get_target_property(LLCOMMON_PATH llcommon LOCATION)
if(LINUX) get_filename_component(LLCOMMON_FILE ${LLCOMMON_PATH} NAME)
get_target_property(LLCOMMON_PATH llcommon LOCATION) add_custom_command(
get_filename_component(LLCOMMON_FILE ${LLCOMMON_PATH} NAME)
add_custom_command(
TARGET llcommon POST_BUILD TARGET llcommon POST_BUILD
COMMAND ${CMAKE_COMMAND} COMMAND ${CMAKE_COMMAND}
ARGS ARGS
-E -E
copy_if_different copy_if_different
${LLCOMMON_FILE} ${LLCOMMON_PATH}
${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/${LLCOMMON_FILE} ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/${LLCOMMON_FILE}
COMMENT "Copying llcommon to the staging folder." COMMENT "Copying llcommon to the staging folder."
) )
endif(LINUX) endif(NOT WINDOWS)
endif(SHARED_LIB_STAGING_DIR)
if (DARWIN)
set_target_properties(llcommon PROPERTIES
BUILD_WITH_INSTALL_RPATH 1
INSTALL_NAME_DIR "@executable_path/../Resources"
)
endif(DARWIN)
else(LLCOMMON_LINK_SHARED) else(LLCOMMON_LINK_SHARED)
add_library (llcommon ${llcommon_SOURCE_FILES}) add_library (llcommon ${llcommon_SOURCE_FILES})
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment