diff --git a/CMakeLists.txt b/CMakeLists.txt
index 41bca41534aacb4901cee9cdfd4da411bce00c4f..2f254adfe59b6b11872766b85ceee8897309fb84 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -707,7 +707,7 @@ endif()
 
 option ( WALBERLA_THREAD_SAFE_LOGGING "Enables/Disables thread-safe logging" ON )
 
-if ( WALBERLA_BUILD_WITH_OPENMP )
+if ( WALBERLA_BUILD_WITH_OPENMP AND NOT OpenMP_FOUND )
     if( APPLE AND EXISTS /opt/local/lib/libomp AND EXISTS /opt/local/include/libomp ) # find libomp from MacPorts
         set( CMAKE_FRAMEWORK_PATH /opt/local/lib/libomp )
         set( CMAKE_INCLUDE_PATH /opt/local/include/libomp )
@@ -721,24 +721,7 @@ if ( WALBERLA_BUILD_WITH_OPENMP )
             include_directories( ${OpenMP_CXX_INCLUDE_DIRS} )
         endif()
     else()
-        #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()
-
-    if( WALBERLA_CXX_COMPILER_IS_CLANG OR WALBERLA_CXX_COMPILER_IS_INTELLLVM )
-       # check for bug in combination with OpenMP and sign conversion https://bugs.llvm.org/show_bug.cgi?id=48387
-       try_compile( WALBERLA_CLANG_OPENMP_BUG "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/TestClangOpenMPBug.cpp"
-             COMPILE_DEFINITIONS -Werror )
-       if( NOT ${WALBERLA_CLANG_OPENMP_BUG} )
-          message( WARNING "Setting -Wno-sign-conversion due to a compiler bug in LLVM (https://bugs.llvm.org/show_bug.cgi?id=48387)" )
-          add_flag( CMAKE_CXX_FLAGS "-Wno-sign-conversion" )
-       endif()
+         message(FATAL_ERROR "Could NOT enable OpenMP")
     endif()
 endif()
 ############################################################################################################################
@@ -838,24 +821,15 @@ endif ( )
 ############################################################################################################################
 
 
-if ( WALBERLA_BUILD_WITH_LIKWID_MARKERS )
+if ( WALBERLA_BUILD_WITH_LIKWID_MARKERS AND NOT LIKWID_FOUND )
     find_library( LIKWID_LIB likwid HINTS $ENV{LIKWID_LIBDIR} $ENV{LIKWID_ROOT}/lib )
     find_path( LIKWID_INCLUDE_DIR likwid.h HINTS $ENV{LIKWID_INCDIR} $ENV{LIKWID_ROOT}/include )
 
-    # For some reason, these turned out to be necessary when building with likwid on Fugaku
-    if ( WALBERLA_CXX_COMPILER_IS_FUJITSUCLANG )
-        find_library( LIKWIDLUA_LIB NAMES likwid-lua HINTS $ENV{LIKWID_LIBDIR} $ENV{LIKWID_ROOT}/lib )
-        find_library( LIKWIDHWLOC_LIB NAMES likwid-hwloc HINTS $ENV{LIKWID_LIBDIR} $ENV{LIKWID_ROOT}/lib )
-    endif()
-
     if ( LIKWID_LIB AND LIKWID_INCLUDE_DIR)
         set( LIKWID_FOUND 1)
         include_directories( ${LIKWID_INCLUDE_DIR})
         add_definitions ( "-DLIKWID_PERFMON" )
         list ( APPEND SERVICE_LIBS ${LIKWID_LIB} )
-        if( WALBERLA_CXX_COMPILER_IS_FUJITSUCLANG )
-            list ( APPEND SERVICE_LIBS ${LIKWIDLUA_LIB} ${LIKWIDHWLOC_LIB} )
-        endif()
     else()
         message(WARNING "likwid marker library not found. Set environment variable LIKWID_ROOT")
         set ( WALBERLA_BUILD_WITH_LIKWID_MARKERS OFF CACHE BOOL "Compile in markers for likwid-perfctr" FORCE )
diff --git a/cmake/compileroptions/Clang.cmake b/cmake/compileroptions/Clang.cmake
index 317ffe9c50377dd2afed350141cf7f51cc5c621a..f18ccfcf3bb34735fbf6b191a42939779ecdb147 100644
--- a/cmake/compileroptions/Clang.cmake
+++ b/cmake/compileroptions/Clang.cmake
@@ -54,4 +54,30 @@ endif()
 
 if ( WALBERLA_SANITIZE_UNDEFINED )
    add_flag( CMAKE_CXX_FLAGS "-fsanitize=undefined")
+endif()
+
+if ( WALBERLA_BUILD_WITH_OPENMP )
+    if( APPLE AND EXISTS /opt/local/lib/libomp AND EXISTS /opt/local/include/libomp ) # find libomp from MacPorts
+        set( CMAKE_FRAMEWORK_PATH /opt/local/lib/libomp )
+        set( CMAKE_INCLUDE_PATH /opt/local/include/libomp )
+    endif()
+    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} )
+        if( OpenMP_CXX_INCLUDE_DIRS )
+            include_directories( ${OpenMP_CXX_INCLUDE_DIRS} )
+        endif()
+    else()
+         message(FATAL_ERROR "Could NOT enable OpenMP")
+    endif()
+
+       # check for bug in combination with OpenMP and sign conversion https://bugs.llvm.org/show_bug.cgi?id=48387
+       try_compile( WALBERLA_CLANG_OPENMP_BUG "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/TestClangOpenMPBug.cpp"
+             COMPILE_DEFINITIONS -Werror )
+       if( NOT ${WALBERLA_CLANG_OPENMP_BUG} )
+          message( WARNING "Setting -Wno-sign-conversion due to a compiler bug in LLVM (https://bugs.llvm.org/show_bug.cgi?id=48387)" )
+          add_flag( CMAKE_CXX_FLAGS "-Wno-sign-conversion" )
+       endif()
 endif()
\ No newline at end of file
diff --git a/cmake/compileroptions/FujitsuClang.cmake b/cmake/compileroptions/FujitsuClang.cmake
index 330fa0b5dea08932fa0d43dfbd4082b641c4cf4c..f710b9a34c605ca0c44d02b3b34a953d652a798c 100644
--- a/cmake/compileroptions/FujitsuClang.cmake
+++ b/cmake/compileroptions/FujitsuClang.cmake
@@ -6,12 +6,21 @@ set( CMAKE_C_FLAGS_DEBUGOPTIMIZED   "${CMAKE_C_FLAGS_DEBUGOPTIMIZED} -O3" )
 set( CMAKE_CXX_FLAGS_DEBUGOPTIMIZED "${CMAKE_CXX_FLAGS_DEBUGOPTIMIZED} -O3" )
 
 if ( WALBERLA_BUILD_WITH_LIKWID_MARKERS )
+    find_library( LIKWID_LIB likwid HINTS $ENV{LIKWID_LIBDIR} $ENV{LIKWID_ROOT}/lib )
+    find_path( LIKWID_INCLUDE_DIR likwid.h HINTS $ENV{LIKWID_INCDIR} $ENV{LIKWID_ROOT}/include )
 
-   # For some reason, these turned out to be necessary when building with likwid on Fugaku
-   find_library( LIKWIDLUA_LIB NAMES likwid-lua HINTS $ENV{LIKWID_LIBDIR} $ENV{LIKWID_ROOT}/lib )
-   find_library( LIKWIDHWLOC_LIB NAMES likwid-hwloc HINTS $ENV{LIKWID_LIBDIR} $ENV{LIKWID_ROOT}/lib )
+    # For some reason, these turned out to be necessary when building with likwid on Fugaku
+     find_library( LIKWIDLUA_LIB NAMES likwid-lua HINTS $ENV{LIKWID_LIBDIR} $ENV{LIKWID_ROOT}/lib )
+     find_library( LIKWIDHWLOC_LIB NAMES likwid-hwloc HINTS $ENV{LIKWID_LIBDIR} $ENV{LIKWID_ROOT}/lib )
 
-   if ( LIKWID_LIB AND LIKWID_INCLUDE_DIR)
-      list ( APPEND SERVICE_LIBS ${LIKWIDLUA_LIB} ${LIKWIDHWLOC_LIB} )
-   endif()
+    if ( LIKWID_LIB AND LIKWID_INCLUDE_DIR)
+        set( LIKWID_FOUND 1 )
+        include_directories( ${LIKWID_INCLUDE_DIR})
+        add_definitions ( "-DLIKWID_PERFMON" )
+        list ( APPEND SERVICE_LIBS ${LIKWID_LIB} )
+            list ( APPEND SERVICE_LIBS ${LIKWIDLUA_LIB} ${LIKWIDHWLOC_LIB} )
+    else()
+        message(WARNING "likwid marker library not found. Set environment variable LIKWID_ROOT")
+        set ( WALBERLA_BUILD_WITH_LIKWID_MARKERS OFF CACHE BOOL "Compile in markers for likwid-perfctr" FORCE )
+    endif()
 endif()
\ No newline at end of file
diff --git a/cmake/compileroptions/IntelLLVM.cmake b/cmake/compileroptions/IntelLLVM.cmake
index 32cec3b97719a1800080023dd61fdc5f08193271..4fb4783aa3b0ce727893ec315fa6efbf4cc66fc2 100644
--- a/cmake/compileroptions/IntelLLVM.cmake
+++ b/cmake/compileroptions/IntelLLVM.cmake
@@ -6,4 +6,30 @@ if ( NOT WALBERLA_BUILD_WITH_FASTMATH )
 endif()
 
 set( CMAKE_C_FLAGS_DEBUGOPTIMIZED   "${CMAKE_C_FLAGS_DEBUGOPTIMIZED} -O3" )
-set( CMAKE_CXX_FLAGS_DEBUGOPTIMIZED "${CMAKE_CXX_FLAGS_DEBUGOPTIMIZED} -O3" )
\ No newline at end of file
+set( CMAKE_CXX_FLAGS_DEBUGOPTIMIZED "${CMAKE_CXX_FLAGS_DEBUGOPTIMIZED} -O3" )
+
+if ( WALBERLA_BUILD_WITH_OPENMP )
+    if( APPLE AND EXISTS /opt/local/lib/libomp AND EXISTS /opt/local/include/libomp ) # find libomp from MacPorts
+        set( CMAKE_FRAMEWORK_PATH /opt/local/lib/libomp )
+        set( CMAKE_INCLUDE_PATH /opt/local/include/libomp )
+    endif()
+    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} )
+        if( OpenMP_CXX_INCLUDE_DIRS )
+            include_directories( ${OpenMP_CXX_INCLUDE_DIRS} )
+        endif()
+    else()
+         message(FATAL_ERROR "Could NOT enable OpenMP")
+    endif()
+
+       # check for bug in combination with OpenMP and sign conversion https://bugs.llvm.org/show_bug.cgi?id=48387
+       try_compile( WALBERLA_CLANG_OPENMP_BUG "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/TestClangOpenMPBug.cpp"
+             COMPILE_DEFINITIONS -Werror )
+       if( NOT ${WALBERLA_CLANG_OPENMP_BUG} )
+          message( WARNING "Setting -Wno-sign-conversion due to a compiler bug in LLVM (https://bugs.llvm.org/show_bug.cgi?id=48387)" )
+          add_flag( CMAKE_CXX_FLAGS "-Wno-sign-conversion" )
+       endif()
+endif()
\ No newline at end of file
diff --git a/cmake/compileroptions/NEC.cmake b/cmake/compileroptions/NEC.cmake
index 05ae8cccb5b00e4fcb71e9a08b8ef2af37cb1217..17ec77e04d8b326d2dc478dc4c41bb61ad878e1e 100644
--- a/cmake/compileroptions/NEC.cmake
+++ b/cmake/compileroptions/NEC.cmake
@@ -47,3 +47,10 @@ if( WALBERLA_CXX_COMPILER_IS_NEC )
    configure_file ( ${walberla_BINARY_DIR}/CMakeFiles/src/sys/stream.h   ${walberla_BINARY_DIR}/src/sys/stream.h   COPYONLY )
    configure_file ( ${walberla_BINARY_DIR}/CMakeFiles/src/sys/strsubr.h  ${walberla_BINARY_DIR}/src/sys/strsubr.h  COPYONLY )
 endif()
+
+
+if ( WALBERLA_BUILD_WITH_OPENMP )
+   message( STATUS "Enabling OpenMP workaround for NEC")
+   add_flag ( CMAKE_C_FLAGS   "-Popenmp" )
+   add_flag ( CMAKE_CXX_FLAGS "-Popenmp" )
+endif()
\ No newline at end of file