diff --git a/CMakeLists.txt b/CMakeLists.txt index c5ed9ac8e..efaf69431 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -136,6 +136,7 @@ option(BUILD_ADDRESS_SANITIZER "Build with address sanitizer enabled" OFF) option(BUILD_CODE_COVERAGE "Build rocSOLVER with code coverage enabled" OFF) option(WERROR "Treat warnings as errors" OFF) option(BUILD_COMPRESSED_DBG "Enable compressed debug symbols" ON) +cmake_dependent_option(BUILD_COPY_TEST_DEPS "Copy test dependencies to the clients build directory" ON "WIN32;CMAKE_VERSION VERSION_GREATER_EQUAL 3.21" OFF) cmake_dependent_option(BUILD_FILE_REORG_BACKWARD_COMPATIBILITY "Build with file/folder reorg backward compatibility enabled" OFF "NOT WIN32" OFF) diff --git a/clients/gtest/CMakeLists.txt b/clients/gtest/CMakeLists.txt index 6a5ed42b0..1a3675a10 100755 --- a/clients/gtest/CMakeLists.txt +++ b/clients/gtest/CMakeLists.txt @@ -150,29 +150,29 @@ add_executable(rocsolver-test add_armor_flags(rocsolver-test "${ARMOR_LEVEL}") -if(WIN32) - file(GLOB third_party_dlls - LIST_DIRECTORIES OFF - CONFIGURE_DEPENDS - ${ROCSOLVER_LAPACK_PATH}/bin/*.dll - ${GTest_DIR}/bin/*.dll - $ENV{rocblas_DIR}/bin/*.dll - $ENV{HIP_DIR}/bin/*.dll - $ENV{HIP_DIR}/bin/hipinfo.exe - ${CMAKE_SOURCE_DIR}/rtest.* +if(BUILD_COPY_TEST_DEPS) + add_custom_command(TARGET rocsolver-test POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy $ $ + COMMAND_EXPAND_LISTS ) - foreach(file_i ${third_party_dlls}) - add_custom_command(TARGET rocsolver-test - POST_BUILD - COMMAND ${CMAKE_COMMAND} - ARGS -E copy ${file_i} ${PROJECT_BINARY_DIR}/staging/ + + get_target_property(rocblas_location roc::rocblas LOCATION) + get_filename_component(rocblas_directory ${rocblas_location} DIRECTORY) + add_custom_command(TARGET rocsolver-test POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_directory ${rocblas_directory}/rocblas/library $/library + ) + + find_program(HIPINFO_EXECUTABLE hipinfo PATHS $ENV{HIP_DIR}/bin) + set(test_files + ${HIPINFO_EXECUTABLE} + ${CMAKE_CURRENT_SOURCE_DIR}/../../rtest.py + ${CMAKE_CURRENT_SOURCE_DIR}/../../rtest.xml + ) + foreach(file_i ${runtime_files}) + add_custom_command(TARGET rocsolver-test POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy ${file_i} $ ) endforeach() - add_custom_command(TARGET rocsolver-test - POST_BUILD - COMMAND ${CMAKE_COMMAND} - ARGS -E copy_directory $ENV{rocblas_DIR}/bin/rocblas/library ${PROJECT_BINARY_DIR}/staging/library - ) endif() target_link_libraries(rocsolver-test PRIVATE