From 351c4bfe1dc080ba668272edc00f6bd06702ef0c Mon Sep 17 00:00:00 2001 From: Palana Date: Thu, 9 Jan 2014 02:37:08 +0100 Subject: [PATCH 1/2] add cmake plugin helpers --- cmake/obs_helpers.cmake | 45 ++++++++++++++++++++++++++++++++++ obs/CMakeLists.txt | 1 + test/test-input/CMakeLists.txt | 7 +++--- 3 files changed, 50 insertions(+), 3 deletions(-) diff --git a/cmake/obs_helpers.cmake b/cmake/obs_helpers.cmake index 51bdbeccc..6fe342973 100644 --- a/cmake/obs_helpers.cmake +++ b/cmake/obs_helpers.cmake @@ -41,6 +41,51 @@ function(obs_add_core_lib_target target) endforeach() endfunction() +set(OBS_PLUGINS "" CACHE INTERNAL "obs plugins") +set(OBS_PLUGIN_TARGETS "" CACHE INTERNAL "obs plugin targets") + +function(obs_add_plugin plugin) + get_property(location TARGET ${plugin} PROPERTY LOCATION) + list(APPEND OBS_PLUGINS ${location}) + set(OBS_PLUGINS ${OBS_PLUGINS} CACHE INTERNAL "") + + get_filename_component(filename ${location} NAME) + + foreach(target ${OBS_PLUGIN_TARGETS}) + get_property(tar_location TARGET ${target} PROPERTY LOCATION) + get_filename_component(dir ${tar_location} DIRECTORY) + add_custom_command(TARGET ${target} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy ${location} + "${dir}/../plugins/") + + set_property(DIRECTORY ${dir} APPEND PROPERTY + ADDITIONAL_MAKE_CLEAN_FILES + "${dir}/../plugins/${filename}") + endforeach() +endfunction() + +function(obs_add_plugin_target target) + list(APPEND OBS_CORE_LIB_DIRS ${target}) + set(OBS_PLUGIN_TARGETS ${OBS_PLUGIN_TARGETS} CACHE INTERNAL "") + + get_property(tar_location TARGET ${target} PROPERTY LOCATION) + get_filename_component(dir ${tar_location} DIRECTORY) + + add_custom_command(TARGET ${target} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E make_directory "${dir}/../plugins/") + + foreach(plugin ${OBS_PLUGINS}) + get_filename_component(filename ${plugin} NAME) + add_custom_command(TARGET ${target} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy ${plugin} + "${dir}/../plugins/") + + set_property(DIRECTORY APPEND PROPERTY + ADDITIONAL_MAKE_CLEAN_FILES + "${dir}/../plugins/${filename}") + endforeach() +endfunction() + set(OBS_DATA_DIRS "" CACHE INTERNAL "data_dirs") set(OBS_DATA_SOURCES "" CACHE INTERNAL "source_dirs") diff --git a/obs/CMakeLists.txt b/obs/CMakeLists.txt index b83d7454b..d9fc066dd 100644 --- a/obs/CMakeLists.txt +++ b/obs/CMakeLists.txt @@ -102,6 +102,7 @@ if(APPLE) MACOSX_BUNDLE ${BUILD_APP_BUNDLE}) if(BUILD_APP_BUNDLE) obs_add_core_lib_target(obs) + obs_add_plugin_target(obs) obs_add_data_dir(/bin/obs.app/Contents/) endif() endif() diff --git a/test/test-input/CMakeLists.txt b/test/test-input/CMakeLists.txt index 6bcfd3336..c981e885a 100644 --- a/test/test-input/CMakeLists.txt +++ b/test/test-input/CMakeLists.txt @@ -8,7 +8,8 @@ add_library(test-input MODULE target_link_libraries(test-input libobs) -file(COPY +obs_add_plugin(test-input) + +obs_add_data_source(/data/obs-plugins/test-input/ ${obs_SOURCE_DIR}/build/data/obs-plugins/test-input/draw.effect - ${obs_SOURCE_DIR}/build/data/obs-plugins/test-input/test.effect - DESTINATION ${obs_BINARY_DIR}/data/obs-plugins/test-input/) + ${obs_SOURCE_DIR}/build/data/obs-plugins/test-input/test.effect) From 5ee0f0edd7a55fe44829f078e085dfd1a66b055e Mon Sep 17 00:00:00 2001 From: Palana Date: Thu, 9 Jan 2014 03:53:34 +0100 Subject: [PATCH 2/2] fix typo in obs_helper.cmake --- cmake/obs_helpers.cmake | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/cmake/obs_helpers.cmake b/cmake/obs_helpers.cmake index 6fe342973..53093087f 100644 --- a/cmake/obs_helpers.cmake +++ b/cmake/obs_helpers.cmake @@ -18,13 +18,13 @@ function(obs_add_core_lib lib) COMMAND ${CMAKE_COMMAND} -E copy ${location} "${dir}/") - set_property(DIRECTORY ${dir} APPEND PROPERTY - ADDITIONAL_MAKE_CLEAN_FILES ${filename}) + #set_property(DIRECTORY ${dir} APPEND PROPERTY + # ADDITIONAL_MAKE_CLEAN_FILES ${filename}) endforeach() endfunction() function(obs_add_core_lib_target target) - list(APPEND OBS_CORE_LIB_DIRS ${target}) + list(APPEND OBS_CORE_LIB_TARGETS ${target}) set(OBS_CORE_LIB_TARGETS ${OBS_CORE_LIB_TARGETS} CACHE INTERNAL "") get_property(tar_location TARGET ${target} PROPERTY LOCATION) @@ -58,14 +58,14 @@ function(obs_add_plugin plugin) COMMAND ${CMAKE_COMMAND} -E copy ${location} "${dir}/../plugins/") - set_property(DIRECTORY ${dir} APPEND PROPERTY - ADDITIONAL_MAKE_CLEAN_FILES - "${dir}/../plugins/${filename}") + #set_property(DIRECTORY ${dir} APPEND PROPERTY + # ADDITIONAL_MAKE_CLEAN_FILES + # "${dir}/../plugins/${filename}") endforeach() endfunction() function(obs_add_plugin_target target) - list(APPEND OBS_CORE_LIB_DIRS ${target}) + list(APPEND OBS_PLUGIN_TARGETS ${target}) set(OBS_PLUGIN_TARGETS ${OBS_PLUGIN_TARGETS} CACHE INTERNAL "") get_property(tar_location TARGET ${target} PROPERTY LOCATION)