From c68338ee89fbd9e84aea56b1815facdb4bf645e8 Mon Sep 17 00:00:00 2001 From: Ankit Meel Date: Sat, 10 Oct 2020 17:13:03 +0530 Subject: CMake/macOS/OpenMP: copy the library near tests. For multi-config generators, tests are in `bin/tests/` folder. and OpenMP cannot be found at `@executable_path/../Resources/lib`. So create that folder and put the library there to be used by tests. It is not ideal to copy the library around. When minimum CMake version is changed to 3.12, FindOpenMP by CMake can be used for this whole block of code. Then a nice rpath based solution can be used. --- build_files/cmake/platform/platform_apple.cmake | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'build_files') diff --git a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platform/platform_apple.cmake index 1eaef149f30..fa64016392c 100644 --- a/build_files/cmake/platform/platform_apple.cmake +++ b/build_files/cmake/platform/platform_apple.cmake @@ -375,14 +375,22 @@ if(WITH_OPENMP) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L'${LIBDIR}/openmp/lib' -lomp") # Copy libomp.dylib to allow executables like datatoc and tests to work. + # `@executable_path/../Resources/lib/` is a default dylib search path. + # For single config generator datatoc, tests etc. execute_process( COMMAND mkdir -p ${CMAKE_BINARY_DIR}/Resources/lib COMMAND cp -p ${LIBDIR}/openmp/lib/libomp.dylib ${CMAKE_BINARY_DIR}/Resources/lib/libomp.dylib ) + # For multi-config generator datatoc, etc. execute_process( COMMAND mkdir -p ${CMAKE_BINARY_DIR}/bin/Resources/lib COMMAND cp -p ${LIBDIR}/openmp/lib/libomp.dylib ${CMAKE_BINARY_DIR}/bin/Resources/lib/libomp.dylib ) + # For multi-config generator tests. + execute_process( + COMMAND mkdir -p ${CMAKE_BINARY_DIR}/bin/tests/Resources/lib + COMMAND cp -p ${LIBDIR}/openmp/lib/libomp.dylib ${CMAKE_BINARY_DIR}/bin/tests/Resources/lib/libomp.dylib + ) endif() endif() -- cgit v1.2.3