diff --git a/cmake/compileroptions/Clang.cmake b/cmake/compileroptions/Clang.cmake
index f18ccfcf3bb34735fbf6b191a42939779ecdb147..1b59e426f30fc86807a79fd6c48d2d9fed04f90f 100644
--- a/cmake/compileroptions/Clang.cmake
+++ b/cmake/compileroptions/Clang.cmake
@@ -1,4 +1,15 @@
 message(STATUS "Setting Clang specific compiler options")
+if (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
+   if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 11.0.0)
+      message(FATAL_ERROR "Clang version must be at least 11!")
+   endif()
+else()
+   if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7)
+   message(FATAL_ERROR "Clang version must be at least 7!")
+endif()
+endif()
+
+
 if( WALBERLA_OPTIMIZE_FOR_LOCALHOST )
 
    if(( CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang" ) AND CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "arm64" )
@@ -57,27 +68,27 @@ if ( WALBERLA_SANITIZE_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()
+   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"
+   # 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()
+   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/GNU.cmake b/cmake/compileroptions/GNU.cmake
index ff56c8826a095d2d5f0b219d086180ea687d4381..1cc6ef532d3d352a3390d0015be685d385597e5f 100644
--- a/cmake/compileroptions/GNU.cmake
+++ b/cmake/compileroptions/GNU.cmake
@@ -1,5 +1,9 @@
 message(STATUS "Setting GNU specific compiler options")
 
+if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8)
+   message(FATAL_ERROR "GCC version must be at least 8!")
+endif()
+
 # Profile guided optimization
 if ( WALBERLA_PROFILE_GENERATE )
    add_flag( CMAKE_CXX_FLAGS "-fprofile-generate" )
diff --git a/cmake/compileroptions/IBM.cmake b/cmake/compileroptions/IBM.cmake
index 1a1d1b64d54b2d4de9fb349dab6135e56633a11c..eb9e3bce5362bfb1939260b42b0506e3367dc01b 100644
--- a/cmake/compileroptions/IBM.cmake
+++ b/cmake/compileroptions/IBM.cmake
@@ -1,5 +1,9 @@
 message(STATUS "Setting IBM specific compiler options")
 
+if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 17.1.1)
+   message(FATAL_ERROR "IBM compiler version must be at least 17.1.1!")
+endif()
+
 # Fixes linker errors with IBM compiler
 if( WALBERLA_CXX_COMPILER_IS_IBM )
    add_flag ( CMAKE_CXX_FLAGS "-qpic=large" )
diff --git a/cmake/compileroptions/MSVC.cmake b/cmake/compileroptions/MSVC.cmake
index b6cdf4cab7fd86da397cd969a3ad292aef02c7a1..f904e8d1dad6d5569f05ab926e5cdfdba815b429 100644
--- a/cmake/compileroptions/MSVC.cmake
+++ b/cmake/compileroptions/MSVC.cmake
@@ -1,5 +1,9 @@
 message(STATUS "Setting MSVC specific compiler options")
 
+if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.11)
+   message(FATAL_ERROR "MSVC version must be at least 19.11!")
+endif()
+
 if ( WALBERLA_PROFILE_GENERATE )
    add_flag ( CMAKE_CXX_FLAGS           "/GL"                )
    add_flag ( CMAKE_MODULE_LINKER_FLAGS "/LTCG:PGINSTRUMENT" )