diff --git a/CMakeLists.txt b/CMakeLists.txt index c66c099023..1e65dc5132 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1097,8 +1097,16 @@ endfunction() function(orcaslicer_copy_sos target config postfix output_sos) - set(_out_dir "${CMAKE_CURRENT_BINARY_DIR}") - message ("set out_dir to CMAKE_CURRENT_BINARY_DIR: ${_out_dir}") + get_property(_is_multi GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) + get_target_property(_alt_out_dir ${target} RUNTIME_OUTPUT_DIRECTORY) + + if (_alt_out_dir) + set(_out_dir "${_alt_out_dir}") + elseif (_is_multi) + set(_out_dir "${CMAKE_CURRENT_BINARY_DIR}/${config}") + else () + set(_out_dir "${CMAKE_CURRENT_BINARY_DIR}") + endif () file(COPY ${CMAKE_PREFIX_PATH}/lib/libavcodec.so ${CMAKE_PREFIX_PATH}/lib/libavcodec.so.61 @@ -1114,7 +1122,7 @@ function(orcaslicer_copy_sos target config postfix output_sos) ${CMAKE_PREFIX_PATH}/lib/libswresample.so.5.1.100 DESTINATION ${_out_dir}) - set(${output_dlls} + set(${output_sos} ${_out_dir}/libavcodec.so ${_out_dir}/libavcodec.so.61 ${_out_dir}/libavcodec.so.61.3.100 diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 28818a5ee1..c403152c4e 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -63,23 +63,13 @@ function(orcaslicer_copy_test_dlls) endif() set_property(TARGET ${_TEST_NAME}_tests PROPERTY BUILD_RPATH "$ORIGIN") - add_custom_command(TARGET ${_TEST_NAME}_tests POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_PREFIX_PATH}/lib/libavcodec.so - ${CMAKE_PREFIX_PATH}/lib/libavcodec.so.61 - ${CMAKE_PREFIX_PATH}/lib/libavcodec.so.61.3.100 - ${CMAKE_PREFIX_PATH}/lib/libavutil.so - ${CMAKE_PREFIX_PATH}/lib/libavutil.so.59 - ${CMAKE_PREFIX_PATH}/lib/libavutil.so.59.8.100 - ${CMAKE_PREFIX_PATH}/lib/libswscale.so - ${CMAKE_PREFIX_PATH}/lib/libswscale.so.8 - ${CMAKE_PREFIX_PATH}/lib/libswscale.so.8.1.100 - ${CMAKE_PREFIX_PATH}/lib/libswresample.so - ${CMAKE_PREFIX_PATH}/lib/libswresample.so.5 - ${CMAKE_PREFIX_PATH}/lib/libswresample.so.5.1.100 - "$" - COMMENT "Copying FFmpeg libraries next to test executable" - VERBATIM) + set(_configs ${CMAKE_CONFIGURATION_TYPES}) + if (NOT _configs) + set(_configs "${CMAKE_BUILD_TYPE}") + endif() + foreach(_cfg IN LISTS _configs) + orcaslicer_copy_sos(${_TEST_NAME}_tests "${_cfg}" "" _unused_sos) + endforeach() endif() endfunction()