Author: Shilei Tian Date: 2021-01-12T14:32:38-05:00 New Revision: bdd1ad5e5c57ae0f0bf899517c540ad8a679f01a
URL: https://github.com/llvm/llvm-project/commit/bdd1ad5e5c57ae0f0bf899517c540ad8a679f01a DIFF: https://github.com/llvm/llvm-project/commit/bdd1ad5e5c57ae0f0bf899517c540ad8a679f01a.diff LOG: [OpenMP] Fixed include directories for OpenMP when building OpenMP with LLVM_ENABLE_RUNTIMES Some LLVM headers are generated by CMake. Before the installation, LLVM's headers are distributed everywhere, some of which are in `${LLVM_SRC_ROOT}/llvm/include/llvm`, and some are in `${LLVM_BINARY_ROOT}/include/llvm`. After intallation, they're all in `${LLVM_INSTALLATION_ROOT}/include/llvm`. OpenMP now depends on LLVM headers. Some headers depend on headers generated by CMake. When building OpenMP along with LLVM, a.k.a via `LLVM_ENABLE_RUNTIMES`, we need to tell OpenMP where it can find those headers, especially those still have not been copied/installed. Reviewed By: jdoerfert, jhuber6 Differential Revision: https://reviews.llvm.org/D94534 Added: Modified: openmp/CMakeLists.txt openmp/libomptarget/CMakeLists.txt openmp/libomptarget/plugins/amdgpu/CMakeLists.txt openmp/libomptarget/src/CMakeLists.txt Removed: ################################################################################ diff --git a/openmp/CMakeLists.txt b/openmp/CMakeLists.txt index dc0d3a6e718a..12e8d542f9f6 100644 --- a/openmp/CMakeLists.txt +++ b/openmp/CMakeLists.txt @@ -39,6 +39,8 @@ else() set(OPENMP_TEST_C_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang.exe) set(OPENMP_TEST_CXX_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang++.exe) endif() + + list(APPEND LIBOMPTARGET_LLVM_INCLUDE_DIRS ${LLVM_MAIN_INCLUDE_DIR} ${LLVM_BINARY_DIR}/include) endif() # Check and set up common compiler flags. @@ -67,16 +69,16 @@ if (APPLE OR WIN32 OR NOT OPENMP_HAVE_STD_CPP14_FLAG) endif() # Attempt to locate LLVM source, required by libomptarget -if (NOT LIBOMPTARGET_LLVM_MAIN_INCLUDE_DIR) +if (NOT LIBOMPTARGET_LLVM_INCLUDE_DIRS) if (LLVM_MAIN_INCLUDE_DIR) - set(LIBOMPTARGET_LLVM_MAIN_INCLUDE_DIR ${LLVM_MAIN_INCLUDE_DIR}) + list(APPEND LIBOMPTARGET_LLVM_INCLUDE_DIRS ${LLVM_MAIN_INCLUDE_DIR}) elseif (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../llvm/include) - set(LIBOMPTARGET_LLVM_MAIN_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../llvm/include) + list(APPENDset LIBOMPTARGET_LLVM_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/../llvm/include) endif() endif() -if (NOT LIBOMPTARGET_LLVM_MAIN_INCLUDE_DIR) - message(STATUS "Missing definition for LIBOMPTARGET_LLVM_MAIN_INCLUDE_DIR, disabling libomptarget") +if (NOT LIBOMPTARGET_LLVM_INCLUDE_DIRS) + message(STATUS "Missing definition for LIBOMPTARGET_LLVM_INCLUDE_DIRS, disabling libomptarget") set(ENABLE_LIBOMPTARGET OFF) endif() diff --git a/openmp/libomptarget/CMakeLists.txt b/openmp/libomptarget/CMakeLists.txt index 06db7b4c35e2..6c90ced107eb 100644 --- a/openmp/libomptarget/CMakeLists.txt +++ b/openmp/libomptarget/CMakeLists.txt @@ -31,8 +31,8 @@ include(LibomptargetUtils) include(LibomptargetGetDependencies) # LLVM source tree is required at build time for libomptarget -if (NOT LIBOMPTARGET_LLVM_MAIN_INCLUDE_DIR) - message(FATAL_ERROR "Missing definition for LIBOMPTARGET_LLVM_MAIN_INCLUDE_DIR") +if (NOT LIBOMPTARGET_LLVM_INCLUDE_DIRS) + message(FATAL_ERROR "Missing definition for LIBOMPTARGET_LLVM_INCLUDE_DIRS") endif() # This is a list of all the targets that are supported/tested right now. diff --git a/openmp/libomptarget/plugins/amdgpu/CMakeLists.txt b/openmp/libomptarget/plugins/amdgpu/CMakeLists.txt index 2d58388c80bb..43934b52e42b 100644 --- a/openmp/libomptarget/plugins/amdgpu/CMakeLists.txt +++ b/openmp/libomptarget/plugins/amdgpu/CMakeLists.txt @@ -30,8 +30,8 @@ if(NOT CMAKE_SYSTEM_PROCESSOR MATCHES "(x86_64)|(ppc64le)|(aarch64)$" AND CMAKE_ return() endif() -if (NOT LIBOMPTARGET_LLVM_MAIN_INCLUDE_DIR) - libomptarget_say("Not building AMDGPU plugin: Missing definition for LIBOMPTARGET_LLVM_MAIN_INCLUDE_DIR") +if (NOT LIBOMPTARGET_LLVM_INCLUDE_DIRS) + libomptarget_say("Not building AMDGPU plugin: Missing definition for LIBOMPTARGET_LLVM_INCLUDE_DIRS") return() endif() @@ -50,7 +50,7 @@ endif() include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/impl - ${LIBOMPTARGET_LLVM_MAIN_INCLUDE_DIR} + ${LIBOMPTARGET_LLVM_INCLUDE_DIRS} ) add_library(omptarget.rtl.amdgpu SHARED diff --git a/openmp/libomptarget/src/CMakeLists.txt b/openmp/libomptarget/src/CMakeLists.txt index 4088f59042fc..38eaf455f95b 100644 --- a/openmp/libomptarget/src/CMakeLists.txt +++ b/openmp/libomptarget/src/CMakeLists.txt @@ -20,7 +20,7 @@ set(LIBOMPTARGET_SRC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/omptarget.cpp ) -include_directories(${LIBOMPTARGET_LLVM_MAIN_INCLUDE_DIR}) +include_directories(${LIBOMPTARGET_LLVM_INCLUDE_DIRS}) # Build libomptarget library with libdl dependency. Add LLVMSupport # dependency if building in-tree with profiling enabled. _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits