[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
This commit is contained in:
Ye Luo
2022-04-22 17:33:41 -05:00
parent 4b4437c084
commit 91ccd8248c
3 changed files with 10 additions and 5 deletions

View File

@@ -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")

View File

@@ -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

View File

@@ -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")