From 72ad48fd7889d9f21f610f9d0df669d556de522f Mon Sep 17 00:00:00 2001
From: Dominik Thoennes <dominik.thoennes@fau.de>
Date: Tue, 12 Mar 2024 21:05:43 +0100
Subject: [PATCH] enable option to fail if cmake dependencies are not met

---
 CMakeLists.txt                | 1 +
 cmake/waLBerlaFunctions.cmake | 3 +++
 2 files changed, 4 insertions(+)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1d21694af..8f16ad6af 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 4962e18ca..e5914ed76 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()
-- 
GitLab