Browse Source

cmake/external: Add function to install specific arch data file

Allows installing a single specific file to the data/[arch] directory.
jp9000 9 years ago
parent
commit
670c655d41
1 changed files with 24 additions and 0 deletions
  1. 24 0
      cmake/external/ObsPluginHelpers.cmake

+ 24 - 0
cmake/external/ObsPluginHelpers.cmake

@@ -137,3 +137,27 @@ function(install_external_plugin_bin_to_arch_data target additional_target)
 			"${EXTERNAL_PLUGIN_OUTPUT_DIR}/$<CONFIGURATION>/${target}/data${_bit_suffix}/$<TARGET_FILE_NAME:${additional_target}>"
 		VERBATIM)
 endfunction()
+
+# Installs an additional file in an architecture-specific data directory on windows/linux (data/32bit or data/64bit).  Does not apply for mac.
+# 'target' is the destination target project being installed to
+# 'additional_target' specifies the additional binary
+function(install_external_plugin_data_file_to_arch_data target additional_target file_target)
+	if(APPLE)
+		set(_bit_suffix "")
+	elseif(CMAKE_SIZEOF_VOID_P EQUAL 8)
+		set(_bit_suffix "/64bit")
+	else()
+		set(_bit_suffix "/32bit")
+	endif()
+
+	get_filename_component(file_target_name ${file_target} NAME)
+
+	install(TARGETS ${additional_target}
+		LIBRARY DESTINATION "data${_bit_suffix}"
+		RUNTIME DESTINATION "data${_bit_suffix}")
+	add_custom_command(TARGET ${additional_target} POST_BUILD
+		COMMAND "${CMAKE_COMMAND}" -E copy
+			"${file_target}"
+			"${EXTERNAL_PLUGIN_OUTPUT_DIR}/$<CONFIGURATION>/${target}/data${_bit_suffix}/${file_target_name}"
+		VERBATIM)
+endfunction()