From 46fff9d4e14d0c66c8761a70a6a2c07d63f952e3 Mon Sep 17 00:00:00 2001
From: Markus FRANK <Markus.Frank@cern.ch>
Date: Fri, 8 Jan 2021 11:53:05 +0100
Subject: [PATCH] Use compile flag propagation as suggested by Andre. Fix
 according to comments

---
 CMakeLists.txt                      | 15 +++++----------
 DDCore/src/Volumes.cpp              |  2 +-
 DDCore/src/plugins/ShapePlugins.cpp |  4 ++--
 DDParsers/CMakeLists.txt            |  3 +++
 cmake/DD4hepBuild.cmake             |  9 ---------
 cmake/DD4hepConfig.cmake.in         |  4 ----
 6 files changed, 11 insertions(+), 26 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index f0380f0e5..707b0886b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -200,25 +200,20 @@ ELSE()
 
   include(DD4hep_XML_setup)
 
-  IF(DD4HEP_BUILD_DEBUG MATCHES "ON" OR (CMAKE_BUILD_TYPE MATCHES "DEBUG|Debug" AND NOT DD4HEP_BUILD_DEBUG MATCHES "OFF"))
-    message(STATUS "BUILD DD4HEP with debug extensions")
-    set(DD4HEP_BUILD_DEBUG ON)
-    add_compile_definitions(DD4HEP_DEBUG=1)
-  ELSE()
-    set(DD4HEP_BUILD_DEBUG OFF)
-  ENDIF()
-
   #These packages are mandatory
   SET(DD4HEP_SELECTED_PACKAGE DDCore)
   FOREACH(DDPackage GaudiPluginService DDParsers DDCore)
     dd4hep_print("|> Building ${DDPackage}")
     add_subdirectory(${DDPackage})
   ENDFOREACH()
+
   IF(DD4HEP_BUILD_DEBUG MATCHES "ON" OR (CMAKE_BUILD_TYPE MATCHES "DEBUG|Debug" AND NOT DD4HEP_BUILD_DEBUG MATCHES "OFF"))
-    target_compile_definitions(DDCore PUBLIC DD4HEP_DEBUG=1)
+    message(STATUS "BUILD DD4HEP and depending software with debug extensions")
+    set(DD4HEP_BUILD_DEBUG ON)
+  ELSE()
+    set(DD4HEP_BUILD_DEBUG OFF)
   ENDIF()
 
-
   message(STATUS "BUILD Packages: ${DD4HEP_BUILD_PACKAGES}")
   FOREACH(DDPackage IN LISTS DD4HEP_BUILD_PACKAGES)
     dd4hep_print("|> Building ${DDPackage}")
diff --git a/DDCore/src/Volumes.cpp b/DDCore/src/Volumes.cpp
index 93e4c0023..c2add7a18 100644
--- a/DDCore/src/Volumes.cpp
+++ b/DDCore/src/Volumes.cpp
@@ -1009,7 +1009,7 @@ std::string dd4hep::toStringMesh(PlacedVolume place, int prec)   {
   struct _numbering {
     double adjust(double value)  const   {
       if ( std::abs(value) < TGeoShape::Tolerance() )
-	return 0.0;
+        return 0.0;
       return value/dd4hep::cm;
     }
   } _vertex;
diff --git a/DDCore/src/plugins/ShapePlugins.cpp b/DDCore/src/plugins/ShapePlugins.cpp
index b5b390a27..af394f5d7 100644
--- a/DDCore/src/plugins/ShapePlugins.cpp
+++ b/DDCore/src/plugins/ShapePlugins.cpp
@@ -957,8 +957,8 @@ void* shape_mesh_verifier(Detector& description, int argc, char** argv)    {
         solid.setDimensions(params);
       }
       else if ( isInstance<PseudoTrap>(solid) )   {
-        //auto params = solid.dimensions();
-        //solid.setDimensions(params);
+        auto params = solid.dimensions();
+        solid.setDimensions(params);
       }
       else if ( solid->IsA() != TGeoCompositeShape::Class() )   {
         auto params = solid.dimensions();
diff --git a/DDParsers/CMakeLists.txt b/DDParsers/CMakeLists.txt
index 01fc336c0..85a16c244 100644
--- a/DDParsers/CMakeLists.txt
+++ b/DDParsers/CMakeLists.txt
@@ -23,6 +23,9 @@ add_library(DDParsers ${DDParsers_SOURCES} ${DDParsers_SPIRIT_SOURCES})
 add_library(DD4hep::DDParsers ALIAS DDParsers)
 
 target_compile_definitions(DDParsers INTERFACE BOOST_SPIRIT_USE_PHOENIX_V3)
+IF( DD4HEP_USE_GEANT4_UNITS )
+  target_compile_definitions(DDParsers PUBLIC DD4HEP_USE_GEANT4_UNITS=1)
+ENDIF()
 
 target_include_directories(DDParsers
   PUBLIC
diff --git a/cmake/DD4hepBuild.cmake b/cmake/DD4hepBuild.cmake
index 17d96a51c..a5a259b21 100644
--- a/cmake/DD4hepBuild.cmake
+++ b/cmake/DD4hepBuild.cmake
@@ -43,11 +43,6 @@ macro(dd4hep_set_compiler_flags)
     set ( COMPILER_FLAGS ${COMPILER_FLAGS} -Winconsistent-missing-override -Wno-c++1z-extensions -Wheader-hygiene )
   endif()
 
-  IF( DD4HEP_USE_GEANT4_UNITS )
-    MESSAGE(STATUS "+++ Building DD4hep with Geant4 units......")
-    add_compile_definitions(DD4HEP_USE_GEANT4_UNITS=1)
-  ENDIF()
-  
   FOREACH( FLAG ${COMPILER_FLAGS} )
     ## meed to replace the minus or plus signs from the variables, because it is passed
     ## as a macro to g++ which causes a warning about no whitespace after macro
@@ -570,10 +565,6 @@ function(dd4hep_add_dictionary dictionary )
     LIST(APPEND comp_defs ${def})
   endforeach()
 
-if(DD4HEP_BUILD_DEBUG)
-    LIST(APPEND comp_defs DD4HEP_DEBUG=1)
-  endif()
-
   foreach(DEP ${ARG_USES})
     # Get INCLUDE DIRECTORIES from Dependencies
     LIST(APPEND inc_dirs $<TARGET_PROPERTY:${DEP},INTERFACE_INCLUDE_DIRECTORIES>)
diff --git a/cmake/DD4hepConfig.cmake.in b/cmake/DD4hepConfig.cmake.in
index 39bb0468d..fe3b405a5 100644
--- a/cmake/DD4hepConfig.cmake.in
+++ b/cmake/DD4hepConfig.cmake.in
@@ -52,10 +52,6 @@ endif()
 FIND_DEPENDENCY(Boost REQUIRED)
 DD4HEP_SETUP_BOOST_TARGETS()
 
-if(DD4HEP_BUILD_DEBUG)
-  add_compile_definitions(DD4HEP_DEBUG=1)
-endif()
-
 if(DD4HEP_USE_GEANT4)
   MESSAGE(STATUS "@CMAKE_PROJECT_NAME@ uses Geant4")
   IF(DD4HEP_USE_CLHEP)
-- 
GitLab