From 12274176b1bc8275ed2a8629d7b613741c3e6391 Mon Sep 17 00:00:00 2001 From: Malcolm Roberts Date: Tue, 12 Aug 2025 12:01:50 -0600 Subject: [PATCH] Add build and install rpath for hipfft-test and rocfft-test for finding libomp.so --- projects/hipfft/clients/tests/CMakeLists.txt | 15 ++++++++++++ projects/rocfft/clients/tests/CMakeLists.txt | 25 +++++++++++++++++++- 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/projects/hipfft/clients/tests/CMakeLists.txt b/projects/hipfft/clients/tests/CMakeLists.txt index 490b5102c0a..f84a65b2d17 100644 --- a/projects/hipfft/clients/tests/CMakeLists.txt +++ b/projects/hipfft/clients/tests/CMakeLists.txt @@ -117,6 +117,12 @@ if( BUILD_CLIENTS_TESTS_OPENMP AND NOT BUILD_WITH_LIB STREQUAL "CUDA" ) if( NOT OPENMP_FOUND OR NOT DEFINED ${openmp_LIB_DIR} ) # Fall-back to module mode. find_package( OpenMP REQUIRED ) + set( BUILD_RPATH "${HIP_CLANG_ROOT}/lib" ) + set( INSTALL_RPATH "$ORIGIN/../llvm/lib" ) + else() + set( BUILD_RPATH "${HIP_CLANG_ROOT}/${openmp_LIB_DIR}" ) + set( INSTALL_RPATH "$ORIGIN/../llvm/${openmp_LIB_DIR}" ) + endif() endif() @@ -126,6 +132,15 @@ foreach( target ${TEST_TARGETS} ) CXX_STANDARD_REQUIRED ON ) + if( BUILD_CLIENTS_TESTS_OPENMP ) + set_target_properties( ${TEST_TARGETS} PROPERTIES + BUILD_RPATH "${BUILD_RPATH}" + ) + set_target_properties( ${TEST_TARGETS} PROPERTIES + INSTALL_RPATH "${INSTALL_RPATH}" + ) + endif() + if( BUILD_WITH_LIB STREQUAL "ROCM" ) target_compile_options( ${target} PRIVATE ${WARNING_FLAGS} ) target_link_libraries( ${target} diff --git a/projects/rocfft/clients/tests/CMakeLists.txt b/projects/rocfft/clients/tests/CMakeLists.txt index 98e576c6523..3e49f2345aa 100644 --- a/projects/rocfft/clients/tests/CMakeLists.txt +++ b/projects/rocfft/clients/tests/CMakeLists.txt @@ -196,10 +196,24 @@ if( BUILD_CLIENTS_TESTS_OPENMP ) if( NOT OPENMP_FOUND OR NOT DEFINED ${openmp_LIB_DIR} ) # Fall-back to module mode. find_package( OpenMP REQUIRED ) + set( BUILD_RPATH "${HIP_CLANG_ROOT}/lib" ) + set( INSTALL_RPATH "$ORIGIN/../llvm/lib" ) + else() + set( BUILD_RPATH "${HIP_CLANG_ROOT}/${openmp_LIB_DIR}" ) + set( INSTALL_RPATH "$ORIGIN/../llvm/${openmp_LIB_DIR}" ) endif() - list( APPEND rocfft-test_link_libs OpenMP::OpenMP_CXX ) + list( APPEND rocfft-test_link_libs OpenMP::OpenMP_CXX ) + + set_target_properties( rocfft-test PROPERTIES + BUILD_RPATH "{$BUILD_RPATH}" + ) + set_target_properties( rocfft-test PROPERTIES + INSTALL_RPATH "${INSTALL_RPATH}" + ) endif() + + include( ../cmake/build-gtest.cmake ) if( BUILD_GTEST OR NOT GTEST_FOUND ) @@ -334,6 +348,15 @@ if( ROCFFT_MPI_ENABLE ) # normal and dynamic-loading MPI worker processes foreach(worker rocfft_mpi_worker dyna_rocfft_mpi_worker) add_executable( ${worker} rocfft_mpi_worker.cpp ) + + if( BUILD_CLIENTS_TESTS_OPENMP ) + set_target_properties( ${worker} PROPERTIES + BUILD_RPATH "${BUILD_RPATH}" + ) + set_target_properties( ${worker} PROPERTIES + INSTALL_RPATH "${INSTALL_RPATH}" + ) + endif() if( BUILD_FFTW OR NOT FFTW_FOUND ) add_dependencies( ${worker} fftw_double fftw_single ) endif()