summaryrefslogtreecommitdiff
path: root/indra/cmake/LLSharedLibs.cmake
diff options
context:
space:
mode:
authorpalange <palange@lindenlab.com>2009-11-02 12:12:32 -0800
committerpalange <palange@lindenlab.com>2009-11-02 12:12:32 -0800
commitcf0c0e182441e442db78ded1a7139818502ae066 (patch)
tree614ceaf88fdfea9e2d42c1c4137642793d505b5d /indra/cmake/LLSharedLibs.cmake
parent53c972a521cbb92c6c9390c41b250a41dc22cd5a (diff)
Added build time script to help deploy shared libs for an arbitrary executable.
indra/cmake/DeploySharedLibs.cmake is the script. LLSharedLibs.cmake contains a macro to ease adding DeployShaerdLibs to a targets build. Example usage to the mac-crash-reporter. Multiplatform and more to come soon. Reviewed by brad.
Diffstat (limited to 'indra/cmake/LLSharedLibs.cmake')
-rw-r--r--indra/cmake/LLSharedLibs.cmake31
1 files changed, 31 insertions, 0 deletions
diff --git a/indra/cmake/LLSharedLibs.cmake b/indra/cmake/LLSharedLibs.cmake
new file mode 100644
index 0000000000..3be22ab401
--- /dev/null
+++ b/indra/cmake/LLSharedLibs.cmake
@@ -0,0 +1,31 @@
+# ll_deploy_sharedlibs_command
+# target_exe: the cmake target of the executable for which the shared libs will be deployed.
+# search_dirs: a list of dirs to search for the dependencies
+# dst_path: path to copy deps to, relative to the output location of the target_exe
+macro(ll_deploy_sharedlibs_command target_exe search_dirs dst_path)
+ get_target_property(OUTPUT_LOCATION ${target_exe} LOCATION)
+
+ if(DARWIN)
+ get_target_property(IS_BUNDLE ${target_exe} MACOSX_BUNDLE)
+ if(IS_BUNDLE)
+ get_filename_component(TARGET_FILE ${OUTPUT_LOCATION} NAME)
+ set(OUTPUT_PATH ${OUTPUT_LOCATION}.app/Contents/MacOS)
+ set(OUTPUT_LOCATION ${OUTPUT_PATH}/${TARGET_FILE})
+ endif(IS_BUNDLE)
+ else(APPLE)
+ message(FATAL_ERROR "Only darwin currently supported!")
+ endif(DARWIN)
+
+ add_custom_command(
+ TARGET ${target_exe} POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS
+ "-DBIN_NAME=\"${OUTPUT_LOCATION}\""
+ "-DSEARCH_DIRS=\"${search_dirs}\""
+ "-DDST_PATH=\"${OUTPUT_PATH}/${dst_path}\""
+ "-P"
+ "${CMAKE_SOURCE_DIR}/cmake/DeploySharedLibs.cmake"
+ )
+
+endmacro(ll_deploy_sharedlibs_command)
+