diff --git a/cmake/external/ObsPluginHelpers.cmake b/cmake/external/ObsPluginHelpers.cmake index f40d07d6e..b0651dc3b 100644 --- a/cmake/external/ObsPluginHelpers.cmake +++ b/cmake/external/ObsPluginHelpers.cmake @@ -137,3 +137,27 @@ function(install_external_plugin_bin_to_arch_data target additional_target) "${EXTERNAL_PLUGIN_OUTPUT_DIR}/$/${target}/data${_bit_suffix}/$" 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}/$/${target}/data${_bit_suffix}/${file_target_name}" + VERBATIM) +endfunction()