Browse Source

CMake: Demote the OpenMP mixed linkage check to NOTICE

pull/5434/head
Ruiyang Wu 10 months ago
parent
commit
fd8f0d4f8c
1 changed files with 9 additions and 4 deletions
  1. +9
    -4
      cmake/system.cmake

+ 9
- 4
cmake/system.cmake View File

@@ -418,10 +418,15 @@ if (USE_OPENMP)
if (NOT NOFORTRAN)
find_package(OpenMP COMPONENTS Fortran REQUIRED)
# Avoid mixed OpenMP linkage
get_target_property(OMP_C_LIB OpenMP::OpenMP_C INTERFACE_LINK_LIBRARIES)
get_target_property(OMP_Fortran_LIB OpenMP::OpenMP_Fortran INTERFACE_LINK_LIBRARIES)
if (NOT OMP_C_LIB STREQUAL OMP_Fortran_LIB)
message(FATAL_ERROR "Multiple OpenMP runtime libraries detected. Mixed OpenMP runtime linkage is dangerous. You may pass -DOpenMP_LANG_LIB_NAMES and -DOpenMP_omp_LIBRARY to manually choose the OpenMP library.")
get_target_property(OMP_C_LIBS OpenMP::OpenMP_C INTERFACE_LINK_LIBRARIES)
get_target_property(OMP_F_LIBS OpenMP::OpenMP_Fortran INTERFACE_LINK_LIBRARIES)
if (NOT OMP_C_LIBS STREQUAL OMP_F_LIBS)
message(NOTICE
"OpenMP runtimes detected:\n"
"C=${OMP_C_LIBS}\n"
"Fortran=${OMP_F_LIBS}\n"
"Please check that they are the same OpenMP runtime implementation."
)
endif()
endif ()
endif ()


Loading…
Cancel
Save