diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1d21694af654ba0b996a8bbce0c3096ef6a125ab..8f16ad6af49f6c89434e79903d12cff5d7ac56e8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -99,6 +99,7 @@ option ( WALBERLA_PROFILE_USE               "Uses Profile to optimize"
 option ( WALBERLA_OPTIMIZE_FOR_LOCALHOST    "Enable compiler optimizations spcific to localhost" )
 
 option ( WALBERLA_LOG_SKIPPED               "Log skipped cmake targets"                      ON  )
+option ( WALBERLA_DEPS_ERROR                "Fail if module dependencies are not met"        OFF )
 
 option ( WALBERLA_GIT_SUBMODULE_AUTO        "Check submodules during cmake run"               ON )
 
diff --git a/cmake/waLBerlaFunctions.cmake b/cmake/waLBerlaFunctions.cmake
index 4962e18cabc6a6128ac8b003c99cfe6110d45520..e5914ed760b6928d641ef3620a9ee5bef38793b2 100644
--- a/cmake/waLBerlaFunctions.cmake
+++ b/cmake/waLBerlaFunctions.cmake
@@ -174,6 +174,9 @@ function ( waLBerla_add_executable )
     foreach ( depMod ${ARG_DEPENDS} )
         get_module_library_name ( depModLibraryName ${depMod} )
         if( NOT TARGET ${depModLibraryName} )
+            if( WALBERLA_DEPS_ERROR )
+               message( FATAL_ERROR "Module ${depMod} is missing to build target ${ARG_NAME}" )
+            endif()
             if( WALBERLA_LOG_SKIPPED )
                message ( STATUS "Skipping ${ARG_NAME} since dependent module ${depMod} was not built" )
             endif()