Skip to content

Commit 3987e44

Browse files
authored
[openmp] - Rework openmp-config for portability (llvm#2857)
Do not depend on CMAKE_INSTALL_PREFIX as the final location can be different.
1 parent bbc64d3 commit 3987e44

File tree

3 files changed

+12
-9
lines changed

3 files changed

+12
-9
lines changed

openmp/CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,8 @@ else()
6868
set(OPENMP_INSTALL_LIBDIR "lib${LLVM_LIBDIR_SUFFIX}" CACHE STRING
6969
"Path where built OpenMP libraries should be installed.")
7070
endif()
71+
set(OPENMP_INSTALL_CFGDIR "lib/cmake" CACHE STRING
72+
"Path where OpenMP config should be installed")
7173

7274
if (NOT MSVC)
7375
set(OPENMP_TEST_C_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang)
@@ -123,6 +125,8 @@ if (OPENMP_STANDALONE_BUILD)
123125
set(OPENMP_LIBDIR_SUFFIX "/asan")
124126
set(OPENMP_INSTALL_LIBDIR "lib${OPENMP_LIBDIR_SUFFIX}")
125127
endif()
128+
set(OPENMP_INSTALL_CFGDIR "${OPENMP_INSTALL_LIBDIR}/cmake" CACHE STRING
129+
"Path where OpenMP config should be installed")
126130
endif()
127131

128132
# Check and set up common compiler flags.
Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
@PACKAGE_INIT@
2-
get_filename_component(openmp_PACKAGE_PREFIX_DIR "${PACKAGE_PREFIX_DIR}" REALPATH)
32

3+
# Partial path copied from build variable OPENMP_INSTALL_LIBDIR
44
set( openmp_LIB_DIR "@OPENMP_INSTALL_LIBDIR@" )
5-
set_and_check( openmp_LIB_INSTALL_DIR "@CMAKE_INSTALL_PREFIX@/@OPENMP_INSTALL_LIBDIR@" )
6-
set_and_check( openmp_LIB_INSTALL_PREFIX "@CMAKE_INSTALL_PREFIX@")
7-
8-
string(REPLACE "${openmp_PACKAGE_PREFIX_DIR}/" "" openmp_LIB_NO_PACKAGE_PREFIX_PATH_TEMP ${openmp_LIB_INSTALL_DIR})
9-
set(openmp_LIB_NO_PACKAGE_PREFIX_PATH ${openmp_LIB_NO_PACKAGE_PREFIX_PATH_TEMP})
105

6+
# Full path to libomp.so using OPENMP_INSTALL_PREFIX and OPENMP_INSTALL_LIBDIR partial path.
7+
set_and_check( openmp_LIB_INSTALL_DIR "${PACKAGE_PREFIX_DIR}/@OPENMP_INSTALL_LIBDIR@" )
118

129
include( "${CMAKE_CURRENT_LIST_DIR}/openmpTargets.cmake" )

openmp/runtime/src/CMakeLists.txt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -463,17 +463,19 @@ else()
463463
install(TARGETS omp ${export_to_llvmexports} EXPORT openmpTargets ${LIBOMP_INSTALL_KIND}
464464
DESTINATION "${OPENMP_INSTALL_LIBDIR}")
465465
install(EXPORT openmpTargets FILE openmpTargets.cmake NAMESPACE OpenMP::
466-
DESTINATION ${OPENMP_INSTALL_LIBDIR}/cmake/openmp)
466+
DESTINATION ${OPENMP_INSTALL_CFGDIR}/openmp)
467467
endif()
468+
468469
# Create cmake configuration files
469470
include(CMakePackageConfigHelpers)
470471

471472
configure_package_config_file(
472473
../openmp-config.cmake.in
473474
openmp-config.cmake
474-
INSTALL_DESTINATION ${OPENMP_INSTALL_LIBDIR}/cmake/openmp )
475+
INSTALL_DESTINATION ${OPENMP_INSTALL_CFGDIR}/openmp )
476+
475477
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/openmp-config.cmake
476-
DESTINATION ${OPENMP_INSTALL_LIBDIR}/cmake/openmp )
478+
DESTINATION ${OPENMP_INSTALL_CFGDIR}/openmp)
477479

478480
if(${LIBOMP_INSTALL_ALIASES})
479481
# Create aliases (symlinks) of the library for backwards compatibility

0 commit comments

Comments
 (0)