From ce780620b303f185fa13a9cc424db0f540901c6d Mon Sep 17 00:00:00 2001 From: Michael Klemm Date: Thu, 2 May 2024 11:58:13 +0200 Subject: [PATCH 1/2] Recognize Flang as a compiler and ask for resource dir --- openmp/CMakeLists.txt | 20 ++++++++++++++++++++ openmp/runtime/CMakeLists.txt | 4 ---- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/openmp/CMakeLists.txt b/openmp/CMakeLists.txt index 9097ca5623000..3f827ee002c5d 100644 --- a/openmp/CMakeLists.txt +++ b/openmp/CMakeLists.txt @@ -85,6 +85,11 @@ else() set(CMAKE_CXX_EXTENSIONS NO) endif() +# Enabling Fortran if it is needed +if(${LIBOMP_FORTRAN_MODULES}) + enable_language(Fortran) +endif() + # Check and set up common compiler flags. include(config-ix) include(HandleOpenMPOptions) @@ -114,6 +119,21 @@ option(OPENMP_ENABLE_LIBOMP_PROFILING "Enable time profiling for libomp." OFF) # Header install location if(${OPENMP_STANDALONE_BUILD}) set(LIBOMP_HEADERS_INSTALL_PATH "${CMAKE_INSTALL_INCLUDEDIR}") + message("MK: CMAKE_Fortran_COMPILER_ID=${CMAKE_Fortran_COMPILER_ID}") + if(CMAKE_Fortran_COMPILER_ID MATCHES "Flang") + execute_process( + OUTPUT_STRIP_TRAILING_WHITESPACE + COMMAND ${CMAKE_Fortran_COMPILER} --print-resource-dir + RESULT_VARIABLE COMMAND_RETURN_CODE + OUTPUT_VARIABLE FORTRAN_COMPILER_RESOURCE_DIR + ) + # TODO: This must not be hard-coded, but needs to come from Flang! + set(LIBOMP_MODULES_INSTALL_PATH "${FORTRAN_COMPILER_RESOURCE_DIR}") + message("MK: 1 LIBOMP_MODULES_INSTALL_PATH=${LIBOMP_MODULES_INSTALL_PATH}") + else() + set(LIBOMP_MODULES_INSTALL_PATH "${CMAKE_INSTALL_INCLUDEDIR}") + message("MK: 2 LIBOMP_MODULES_INSTALL_PATH=${CMAKE_INSTALL_INCLUDEDIR}") + endif() else() include(GetClangResourceDir) get_clang_resource_dir(LIBOMP_HEADERS_INSTALL_PATH SUBDIR include) diff --git a/openmp/runtime/CMakeLists.txt b/openmp/runtime/CMakeLists.txt index bcae02eba6a59..24036a08a9647 100644 --- a/openmp/runtime/CMakeLists.txt +++ b/openmp/runtime/CMakeLists.txt @@ -262,10 +262,6 @@ set(LIBOMP_TOOLS_DIR ${LIBOMP_BASE_DIR}/tools) set(LIBOMP_INC_DIR ${LIBOMP_SRC_DIR}/include) set(LIBOMP_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}) -# Enabling Fortran if it is needed -if(${LIBOMP_FORTRAN_MODULES}) - enable_language(Fortran) -endif() # Enable MASM Compiler if it is needed (Windows only) if(WIN32) enable_language(ASM_MASM) From cb345c626819802a8565ba34d09b02cac7cb1733 Mon Sep 17 00:00:00 2001 From: Michael Klemm Date: Thu, 2 May 2024 20:47:40 +0200 Subject: [PATCH 2/2] Cleanup debugging code --- openmp/CMakeLists.txt | 3 --- 1 file changed, 3 deletions(-) diff --git a/openmp/CMakeLists.txt b/openmp/CMakeLists.txt index 3f827ee002c5d..d2041ca49a4ed 100644 --- a/openmp/CMakeLists.txt +++ b/openmp/CMakeLists.txt @@ -127,12 +127,9 @@ if(${OPENMP_STANDALONE_BUILD}) RESULT_VARIABLE COMMAND_RETURN_CODE OUTPUT_VARIABLE FORTRAN_COMPILER_RESOURCE_DIR ) - # TODO: This must not be hard-coded, but needs to come from Flang! set(LIBOMP_MODULES_INSTALL_PATH "${FORTRAN_COMPILER_RESOURCE_DIR}") - message("MK: 1 LIBOMP_MODULES_INSTALL_PATH=${LIBOMP_MODULES_INSTALL_PATH}") else() set(LIBOMP_MODULES_INSTALL_PATH "${CMAKE_INSTALL_INCLUDEDIR}") - message("MK: 2 LIBOMP_MODULES_INSTALL_PATH=${CMAKE_INSTALL_INCLUDEDIR}") endif() else() include(GetClangResourceDir)