From c39a21f761bdcd40bfebacaee299ecaffce39151 Mon Sep 17 00:00:00 2001
From: Dominik Thoennes <dominik.thoennes@fau.de>
Date: Tue, 16 Jul 2019 16:52:39 +0200
Subject: [PATCH] Add cmake option WALBERLA_LOG_SKIPPED

This option is OFF by default.
If turned on cmake will notify if a target cannot be build due to a missing module.
---
 CMakeLists.txt                |  8 +++++---
 cmake/waLBerlaFunctions.cmake | 16 ++++++++++++----
 2 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 65157e23f..4a14b6194 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -95,11 +95,13 @@ option ( WALBERLA_NO_OUTDATED_FEATURES      "Show warning/errors when outdated f
                                             "(i.e. features that will be deprecated) are used"   )
 
 # Profile guided optimization
-option ( WALBERLA_PROFILE_GENERATE  "Generates Profile for Optimization"             )
-option ( WALBERLA_PROFILE_USE       "Uses Profile to optimize"                       )
+option ( WALBERLA_PROFILE_GENERATE          "Generates Profile for Optimization"                 )
+option ( WALBERLA_PROFILE_USE               "Uses Profile to optimize"                           )
 
 # Compiler Optimization
-option ( WALBERLA_OPTIMIZE_FOR_LOCALHOST "Enable compiler optimizations spcific to localhost" )
+option ( WALBERLA_OPTIMIZE_FOR_LOCALHOST    "Enable compiler optimizations spcific to localhost" )
+
+option ( WALBERLA_LOG_SKIPPED               "Log skipped cmake targets"                       OFF)
 
 # Installation Directory
 set ( CMAKE_INSTALL_PREFIX /usr/local/waLBerla CACHE STRING "The default installation directory."   )
diff --git a/cmake/waLBerlaFunctions.cmake b/cmake/waLBerlaFunctions.cmake
index 3de113afa..bcd4f3ea1 100644
--- a/cmake/waLBerlaFunctions.cmake
+++ b/cmake/waLBerlaFunctions.cmake
@@ -193,7 +193,9 @@ function ( waLBerla_add_executable )
     foreach ( depMod ${ARG_DEPENDS} )
         get_module_library_name ( depModLibraryName ${depMod} )
         if( NOT TARGET ${depModLibraryName} )
-            message ( STATUS "Skipping ${ARG_NAME} since dependent module ${depMod} was not built" )
+            if( WALBERLA_LOG_SKIPPED )
+               message ( STATUS "Skipping ${ARG_NAME} since dependent module ${depMod} was not built" )
+            endif()
             return()
         endif()
     endforeach()
@@ -224,7 +226,9 @@ function ( waLBerla_add_executable )
                           codeGenRequired ${ARG_CODEGEN_CFG} ${sourceFiles} )
 
     if( NOT WALBERLA_BUILD_WITH_CODEGEN AND codeGenRequired)
-        message(STATUS "Skipping ${ARG_NAME} since pystencils code generation is not enabled")
+        if( WALBERLA_LOG_SKIPPED )
+           message(STATUS "Skipping ${ARG_NAME} since pystencils code generation is not enabled")
+        endif()
         return()
     endif()
 
@@ -376,13 +380,17 @@ function ( waLBerla_execute_test )
    endif()
 
    if( NOT ARG_COMMAND AND NOT TARGET ${ARG_NAME} )
-      message ( STATUS "Skipping test ${ARG_NAME} since the corresponding target is not built" )
+      if( WALBERLA_LOG_SKIPPED )
+         message ( STATUS "Skipping test ${ARG_NAME} since the corresponding target is not built" )
+      endif()
       return()
    endif()
 
    foreach( dependency_target ${ARG_DEPENDS_ON_TARGETS} )
       if( NOT TARGET ${dependency_target} )
-         message ( STATUS "Skipping test ${ARG_NAME} since the target ${dependency_target} is not built" )
+         if( WALBERLA_LOG_SKIPPED )
+            message ( STATUS "Skipping test ${ARG_NAME} since the target ${dependency_target} is not built" )
+         endif()
          return()
       endif()
    endforeach( dependency_target )
-- 
GitLab