[Openmp-commits] [openmp] 91ccd82 - [Clang][OpenMP] libompd: get libomp hwloc includedir by target_link_libraries
Ye Luo via Openmp-commits
openmp-commits at lists.llvm.org
Fri Apr 22 15:36:11 PDT 2022
Author: Ye Luo
Date: 2022-04-22T17:33:41-05:00
New Revision: 91ccd8248c85385a5654c63c302a37d97f811bab
URL: https://github.com/llvm/llvm-project/commit/91ccd8248c85385a5654c63c302a37d97f811bab
DIFF: https://github.com/llvm/llvm-project/commit/91ccd8248c85385a5654c63c302a37d97f811bab.diff
LOG: [Clang][OpenMP] libompd: get libomp hwloc includedir by target_link_libraries
When hwloc is used and is installed outside of the default paths, the omp CMake target
needs to provide the needed include path thru the CMake target by adding it with
target_include_directories to it, so libompd gets it as well when it defines it's cmake
target using target_link_libraries.
As suggested in D122667
Reviewed By: ye-luo
Differential Revision: https://reviews.llvm.org/D123888
Added:
Modified:
openmp/libompd/src/CMakeLists.txt
openmp/runtime/cmake/config-ix.cmake
openmp/runtime/src/CMakeLists.txt
Removed:
################################################################################
diff --git a/openmp/libompd/src/CMakeLists.txt b/openmp/libompd/src/CMakeLists.txt
index 25a850ed457d7..f361fcf35a273 100644
--- a/openmp/libompd/src/CMakeLists.txt
+++ b/openmp/libompd/src/CMakeLists.txt
@@ -13,7 +13,7 @@ cmake_minimum_required(VERSION 3.13.4)
add_library (ompd SHARED TargetValue.cpp omp-debug.cpp omp-state.cpp omp-icv.cpp)
-add_dependencies(ompd omp) # ensure generated import library is created first
+target_link_libraries(ompd omp) # ensure generated import library is created first
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
diff --git a/openmp/runtime/cmake/config-ix.cmake b/openmp/runtime/cmake/config-ix.cmake
index d91e85221f0c3..775c58f984841 100644
--- a/openmp/runtime/cmake/config-ix.cmake
+++ b/openmp/runtime/cmake/config-ix.cmake
@@ -332,7 +332,8 @@ endif()
# Check if HWLOC support is available
if(${LIBOMP_USE_HWLOC})
- set(CMAKE_REQUIRED_INCLUDES ${LIBOMP_HWLOC_INSTALL_DIR}/include)
+ find_path(LIBOMP_HWLOC_INCLUDE_DIR NAMES hwloc.h HINTS ${LIBOMP_HWLOC_INSTALL_DIR} PATH_SUFFIXES include)
+ set(CMAKE_REQUIRED_INCLUDES ${LIBOMP_HWLOC_INCLUDE_DIR})
check_include_file(hwloc.h LIBOMP_HAVE_HWLOC_H)
set(CMAKE_REQUIRED_INCLUDES)
find_library(LIBOMP_HWLOC_LIBRARY
diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
index e795032fe5f36..4068a5862b4a3 100644
--- a/openmp/runtime/src/CMakeLists.txt
+++ b/openmp/runtime/src/CMakeLists.txt
@@ -46,9 +46,6 @@ include_directories(
${LIBOMP_INC_DIR}
${LIBOMP_SRC_DIR}/thirdparty/ittnotify
)
-if(${LIBOMP_USE_HWLOC})
- include_directories(${LIBOMP_HWLOC_INSTALL_DIR}/include)
-endif()
# Building with time profiling support requires LLVM directory includes.
if(LIBOMP_PROFILING_SUPPORT)
@@ -157,6 +154,13 @@ else()
# libomp must be a C++ library such that it can link libLLVMSupport
set(LIBOMP_LINKER_LANGUAGE CXX)
endif()
+if(${LIBOMP_USE_HWLOC})
+ target_include_directories(omp
+ PUBLIC
+ "$<BUILD_INTERFACE:${LIBOMP_HWLOC_INCLUDE_DIR}>"
+ "$<INSTALL_INTERFACE:${LIBOMP_HWLOC_INCLUDE_DIR}>"
+ )
+endif()
if(OPENMP_MSVC_NAME_SCHEME)
if(uppercase_CMAKE_BUILD_TYPE STREQUAL "DEBUG")
More information about the Openmp-commits
mailing list