From 00f6dd84bc6861318305b4979d2e8324611fbf31 Mon Sep 17 00:00:00 2001
From: Sebastian Eibl <sebastian.eibl@fau.de>
Date: Wed, 27 Jan 2021 11:42:33 +0100
Subject: [PATCH] [BUGFIX] handle failing of FindOpenMP

---
 CMakeLists.txt | 24 +++++++++++++++---------
 1 file changed, 15 insertions(+), 9 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 80a06fc8d..36c6831d5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1001,19 +1001,25 @@ endif()
 option ( WALBERLA_THREAD_SAFE_LOGGING "Enables/Disables thread-safe logging" ON )
 
 if ( WALBERLA_BUILD_WITH_OPENMP )
-    if ( WALBERLA_CXX_COMPILER_IS_NEC )
-       add_flag ( CMAKE_C_FLAGS   "-Popenmp" )
-       add_flag ( CMAKE_CXX_FLAGS "-Popenmp" )
+    find_package( OpenMP )
+    if (OpenMP_FOUND)
+        add_flag ( CMAKE_C_FLAGS   "${OpenMP_C_FLAGS}" )
+        add_flag ( CMAKE_CXX_FLAGS "${OpenMP_CXX_FLAGS}" )
+        list ( APPEND SERVICE_LIBS ${OpenMP_CXX_LIBRARIES} )
     else()
-       find_package( OpenMP )
-       add_flag ( CMAKE_C_FLAGS   "${OpenMP_C_FLAGS}" )
-       add_flag ( CMAKE_CXX_FLAGS "${OpenMP_CXX_FLAGS}" )
-       list ( APPEND SERVICE_LIBS ${OpenMP_CXX_LIBRARIES} )
+        #workarounds
+        if ( WALBERLA_CXX_COMPILER_IS_NEC )
+            message( STATUS "Enabling OpenMP workaround for NEC")
+            add_flag ( CMAKE_C_FLAGS   "-Popenmp" )
+            add_flag ( CMAKE_CXX_FLAGS "-Popenmp" )
+        else()
+            message(FATAL_ERROR "Could NOT enable OpenMP")
+        endif()
     endif()
 else()
     if ( WALBERLA_CXX_COMPILER_IS_CRAY )
-       add_flag ( CMAKE_C_FLAGS   "-h noomp" )
-       add_flag ( CMAKE_CXX_FLAGS "-h noomp" )
+        add_flag ( CMAKE_C_FLAGS   "-h noomp" )
+        add_flag ( CMAKE_CXX_FLAGS "-h noomp" )
     endif()
 endif()
 ############################################################################################################################
-- 
GitLab