Browse Source

Merge branch 'master' of https://github.com/jp9000/obs-studio

jp9000 11 years ago
parent
commit
13fc0b536c
3 changed files with 53 additions and 6 deletions
  1. 48 3
      cmake/obs_helpers.cmake
  2. 1 0
      obs/CMakeLists.txt
  3. 4 3
      test/test-input/CMakeLists.txt

+ 48 - 3
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)
@@ -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_PLUGIN_TARGETS ${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")
 

+ 1 - 0
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()

+ 4 - 3
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)