From 523d87404064037e5a6db7939f4aad13d039c3ce Mon Sep 17 00:00:00 2001
From: Markus Frank <markus.frank@cern.ch>
Date: Tue, 4 Aug 2015 13:11:12 +0000
Subject: [PATCH] Try to fix nightly builds

---
 CMakeLists.txt                         |  36 +++++----
 DDCore/CMakeLists.txt                  |   1 +
 DDG4/CMakeLists.txt                    |   2 +-
 DDRec/src/gear/DDGear.cpp              |   4 +-
 DDTest/src/test_bitfield64.cc          |   2 +-
 UtilityApps/CMakeLists.txt             |   2 +-
 cmake/DD4hep.cmake                     |   3 +-
 cmake/DD4hepBuild.cmake                | 104 ++++++++++++-------------
 cmake/DD4hepConfig.cmake.in            |  10 ++-
 cmake/FindROOT.cmake                   |  20 ++---
 cmake/MakeRootMap.cmake                |   4 +-
 examples/AlignDet/CMakeLists.txt       |   2 +-
 examples/CMakeLists.txt                |   6 +-
 examples/ClientTests/CMakeLists.txt    |   2 +-
 examples/SimpleDetector/CMakeLists.txt |   2 +-
 15 files changed, 109 insertions(+), 91 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 96c7b0fdf..eadf4febb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -17,14 +17,6 @@ option(DD4HEP_USE_LCIO    "Build lcio extensions"    OFF)
 option(BUILD_TESTING      "Enable and build tests"   ON)
 option(DD4HEP_USE_CXX11   "Build DD4hep using c++11" OFF)
 
-#---------------------------------------------------------------------------------------------------
-#fg: moved to here from DD4hep.cmake to not force CMAKE_CXX_FLAGS upon dependent packages
-if(DD4HEP_USE_CXX11)
-  SET( CMAKE_CXX_FLAGS "-std=c++11 -Wall -Wextra -pedantic -Wshadow -Wformat-security -Wno-long-long -Wdeprecated")
-  ADD_DEFINITIONs(-DDD4HEP_USE_CXX11)
-else()
-  SET( CMAKE_CXX_FLAGS "-Wall -Wextra -pedantic -Wshadow -Wformat-security -Wno-long-long -Wdeprecated")
-endif()
 #
 #-----------------------------------------------------------------------------------------------------
 #
@@ -34,20 +26,30 @@ endif()
 #
 #  No Relex library present for ROOT 6
 #
-find_package(ROOT REQUIRED)
-message(STATUS "ROOT_VERSION_MAJOR: ${ROOT_VERSION_MAJOR}" )
+
+find_package ( ROOT REQUIRED COMPONENTS Geom GenVector )
+message ( STATUS "ROOT_VERSION_MAJOR: ${ROOT_VERSION_MAJOR}" )
 if ( ${ROOT_VERSION_MAJOR} GREATER 5 )
-  set(DD4HEP_NO_REFLEX ON)
-  add_subdirectory(GaudiPluginService)
+  set ( DD4HEP_USE_CXX11 ON ) 
+  message ( STATUS "ROOT_VERSION_MAJOR: ${ROOT_VERSION_MAJOR} --> Using GaudiPluginService..." )
+  add_subdirectory ( GaudiPluginService)  
+endif()
+#---------------------------------------------------------------------------------------------------
+#fg: moved to here from DD4hep.cmake to not force CMAKE_CXX_FLAGS upon dependent packages
+if ( DD4HEP_USE_CXX11 )
+  set ( CMAKE_CXX_FLAGS "-std=c++11 -Wall -Wextra -pedantic -Wshadow -Wformat-security -Wno-long-long -Wdeprecated")
+  add_definitions(-DDD4HEP_USE_CXX11)
+else()
+  set( CMAKE_CXX_FLAGS "-Wall -Wextra -pedantic -Wshadow -Wformat-security -Wno-long-long -Wdeprecated")
 endif()
 
 #---DD4hep functions and macros -------------------------------------------------------
 include(DD4hep)
 include(DD4hepMacros) 
 
-IF( DEFINED DD4HEP_WITH_GEANT4 OR DEFINED DD4HEP_WITH_GEAR )
+if( DEFINED DD4HEP_WITH_GEANT4 OR DEFINED DD4HEP_WITH_GEAR )
   dd4hep_print_cmake_options( OPTIONAL "Obsolete options: only the following are allowed:" ERROR 1 )
-ENDIF()
+endif()
 
 #-----------------------------
 ##checks for xercesc or not and sets up the include_directories
@@ -101,10 +103,14 @@ add_subdirectory(DDG4)
 add_subdirectory(DDCond)
 add_subdirectory(DDAlign)
 add_subdirectory(DDEve)
+
+dd4hep_enable_tests( DDTest )
 add_subdirectory(UtilityApps)
 
+#set ( CMAKE_MODULE_PATH ${CMAKE_INSTALL_DIR}/cmake ${CMAKE_MODULE_PATH} ) 
+#add_subdirectory(DDExamples)
+
 #---Testing-------------------------------------------------------------------------
-dd4hep_enable_tests( DDTest )
 
 #---Documentation-------------------------------------------------------------------
 OPTION( INSTALL_DOC "Set to OFF to skip build/install Documentation" OFF )
diff --git a/DDCore/CMakeLists.txt b/DDCore/CMakeLists.txt
index c569cefe1..797b58d9d 100644
--- a/DDCore/CMakeLists.txt
+++ b/DDCore/CMakeLists.txt
@@ -30,6 +30,7 @@ dd4hep_add_dictionary( G__DD4hep
   include/DD4hep/SurfaceInstaller.h
   LINKDEF include/ROOT/LinkDef.h )
 
+set_source_files_properties ( G__DD4hep.cxx PROPERTIES GENERATED TRUE )
 #---Generate DDCore Library-------------------------------------------------------
 dd4hep_add_package_library ( DDCore
   SOURCES        src/*.cpp src/Evaluator/*.cpp src/XML/*.cpp
diff --git a/DDG4/CMakeLists.txt b/DDG4/CMakeLists.txt
index 49a6884dd..6a1e2f92f 100644
--- a/DDG4/CMakeLists.txt
+++ b/DDG4/CMakeLists.txt
@@ -14,7 +14,7 @@ dd4hep_package(    DDG4
                    BOOST DDCore
   OPTIONAL         CLHEP [XercesC QUIET]
   INCLUDE_DIRS     include
-  INSTALL_INCLUDES include/DDG4)
+  INSTALL_INCLUDES include/DDG4 )
 #---Add Library---------------------------------------------------------------------
 dd4hep_add_package_library(DDG4 SOURCES src/*.cpp )
 #---------------------------  Legacy libraries (for Frank) -------------------------
diff --git a/DDRec/src/gear/DDGear.cpp b/DDRec/src/gear/DDGear.cpp
index 9a94d08fc..2b027564e 100644
--- a/DDRec/src/gear/DDGear.cpp
+++ b/DDRec/src/gear/DDGear.cpp
@@ -60,8 +60,8 @@ namespace DD4hep{
       DetElement::Children grCh = subDet.children() ;
       
       for ( DetElement::Children::const_iterator jt=grCh.begin() ; jt != grCh.end() ; ++jt ){
-        DetElement subDet = (*jt).second ;
-        dets.push_back( subDet ) ;
+        DetElement jdet = (*jt).second ;
+        dets.push_back( jdet ) ;
         //	std::cout << "    *** sub-subdetector : " << subDet.name() << std::endl ;
       }
     }
diff --git a/DDTest/src/test_bitfield64.cc b/DDTest/src/test_bitfield64.cc
index 70e47bb1f..5382f962c 100644
--- a/DDTest/src/test_bitfield64.cc
+++ b/DDTest/src/test_bitfield64.cc
@@ -32,7 +32,7 @@ int main(int /* argc */, char** /* argv */ ){
     BitField64 bf3( bf.fieldDescription() ) ;
 
 
-    test(  bf.getValue() , 0UL , " initialized with 0 " ); 
+    test(  bf.getValue() , long64(0x0) , " initialized with 0 " ); 
 
     //    std::cout  << " bf value : " << bf << std::endl ;
     
diff --git a/UtilityApps/CMakeLists.txt b/UtilityApps/CMakeLists.txt
index d8e7654cf..461840bc4 100644
--- a/UtilityApps/CMakeLists.txt
+++ b/UtilityApps/CMakeLists.txt
@@ -26,7 +26,7 @@ dd4hep_add_executable( dumpdetector
   OPTIONAL       [GEANT4 REQUIRED SOURCES src/dumpdetector.cpp])
 #-----------------------------------------------------------------------------------
 dd4hep_add_executable(test_surfaces
-  USES     DDRec
+  USES     DDRec DDTest
   OPTIONAL [LCIO REQUIRED SOURCES src/test_surfaces.cpp])
 #-----------------------------------------------------------------------------------
 dd4hep_add_dictionary( G__teve SOURCES src/EvNavHandler.h LINKDEF src/LinkDef.h )
diff --git a/cmake/DD4hep.cmake b/cmake/DD4hep.cmake
index 557d47b15..803086169 100644
--- a/cmake/DD4hep.cmake
+++ b/cmake/DD4hep.cmake
@@ -105,7 +105,7 @@ function(dd4hep_generate_rootmap_notapple library)
     SET ( DD4hep_DIR ${CMAKE_SOURCE_DIR} )
   endif()
   find_package(ROOT QUIET)
-if(DD4HEP_NO_REFLEX)
+if( ${ROOT_VERSION_MAJOR} GREATER 5 )
   set(rootmapfile ${CMAKE_SHARED_MODULE_PREFIX}${library}.components)
 else()
   set(rootmapfile ${CMAKE_SHARED_MODULE_PREFIX}${library}.rootmap)
@@ -116,6 +116,7 @@ endif()
   add_custom_command(OUTPUT ${rootmapfile}
                      COMMAND ${CMAKE_COMMAND} -Dlibname=${libname} -Drootmapfile=${rootmapfile}
                              -Dgenmap_install_dir=${LIBRARY_OUTPUT_PATH}
+                             -DROOT_VERSION_MAJOR=${ROOT_VERSION_MAJOR}
                              -P ${DD4hep_DIR}/cmake/MakeRootMap.cmake
                      DEPENDS ${library})
 
diff --git a/cmake/DD4hepBuild.cmake b/cmake/DD4hepBuild.cmake
index bed154c93..e8d3f1845 100644
--- a/cmake/DD4hepBuild.cmake
+++ b/cmake/DD4hepBuild.cmake
@@ -33,7 +33,6 @@ endmacro(dd4hep_to_parent_scope)
 function ( dd4hep_debug msg )
   if( NOT "${DD4HEP_DEBUG_CMAKE}" STREQUAL "" ) 
     get_property(pkg DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY PACKAGE_NAME)
-    #message( STATUS "DEBUG ****   ${msg}" )
     string ( LENGTH "${msg}" lmsg ) 
     if ( ${lmsg} GREATER 1024 )
       string ( SUBSTRING "${msg}" 0 132 pmsg ) 
@@ -418,7 +417,7 @@ endfunction( dd4hep_install_dir )
 #  \version 1.0
 #
 #---------------------------------------------------------------------------------------------------
-function( dd4hep_install_includes package )
+function ( dd4hep_install_includes package )
   dd4hep_print ( "dd4hep_install_includes[${package}]: ${ARGN}" )
   dd4hep_install_dir( ${ARGN} DESTINATION include )
 endfunction()
@@ -433,7 +432,7 @@ endfunction()
 #  \version 1.0
 #
 #---------------------------------------------------------------------------------------------------
-function(dd4hep_install_files)
+function ( dd4hep_install_files )
   cmake_parse_arguments ( ARG "" "DESTINATION" "FILES" ${ARGN} )
   foreach ( f ${ARG_UNPARSED_ARGUMENTS} ${ARG_FILES} )
     file ( GLOB sources ${f} )
@@ -450,7 +449,7 @@ endfunction( dd4hep_install_files )
 #  \version 1.0
 #
 #---------------------------------------------------------------------------------------------------
-function( dd4hep_unpack_package_opts name opt )
+function ( dd4hep_unpack_package_opts name opt )
   set ( nam_pkg  )
   set ( req_pkg  )
   set ( typ_pkg  )
@@ -463,27 +462,27 @@ function( dd4hep_unpack_package_opts name opt )
     string ( REGEX REPLACE "\\["  "" opt "${opt}" )
     string ( REGEX REPLACE ";\\]" "" opt "${opt}" )
     string ( REGEX REPLACE "\\]"  "" opt "${opt}" )
-    string ( REPLACE ";" ";" all_opt "${opt}")
+    string ( REPLACE ";" ";" all_opt "${opt}" )
     dd4hep_debug ( "unpack ${name} : ${opt}" )
     foreach( e ${all_opt} )
-      if( "${nam_pkg}" STREQUAL "")
+      if( "${nam_pkg}" STREQUAL "" )
         set ( nam_pkg ${e} )
         unset ( act_pkg )
-      elseif ( "${e}" STREQUAL "REQUIRED")
+      elseif ( "${e}" STREQUAL "REQUIRED" )
         set ( req_pkg ${e} )
         unset ( act_pkg )
-      elseif ( "${e}" STREQUAL "INTERNAL")
+      elseif ( "${e}" STREQUAL "INTERNAL" )
         set ( typ_pkg ${e} )
         unset ( act_pkg )
-      elseif ( "${e}" STREQUAL "EXTERNAL")
+      elseif ( "${e}" STREQUAL "EXTERNAL" )
         set ( typ_pkg ${e} )
         unset ( act_pkg )
-      elseif ( "${com_pkg}" STREQUAL "" AND "${e}" STREQUAL "COMPONENTS")
+      elseif ( "${com_pkg}" STREQUAL "" AND "${e}" STREQUAL "COMPONENTS" )
         set ( com_pkg ${e} )
         set ( act_pkg ${e} )
-      elseif ( "${src_pkg}" STREQUAL "" AND "${e}" STREQUAL "SOURCES")
+      elseif ( "${src_pkg}" STREQUAL "" AND "${e}" STREQUAL "SOURCES" )
         set ( act_pkg ${e} )
-      elseif ( "${def_pkg}" STREQUAL "" AND "${e}" STREQUAL "DEFINITIONS")
+      elseif ( "${def_pkg}" STREQUAL "" AND "${e}" STREQUAL "DEFINITIONS" )
         set ( act_pkg ${e} )
       elseif ( "${act_pkg}" STREQUAL "COMPONENTS" )
         set ( comp_pkg ${comp_pkg} ${e} )
@@ -517,29 +516,29 @@ endfunction ( dd4hep_unpack_package_opts )
 #  \version 1.0
 #
 #---------------------------------------------------------------------------------------------------
-function( dd4hep_get_dependency_opts local_incs local_libs local_uses pkg )
+function ( dd4hep_get_dependency_opts local_incs local_libs local_uses pkg )
   #
   #  If the variables <package>_INCLUDE_DIRS and <package>_LIBRARIES were not set
   #  at the parent level, check if a corresponding property exists....
   #
   string ( TOUPPER "${pkg}" pkg )
   if ( "${${pkg}_INCLUDE_DIRS}" STREQUAL "" )
-    get_property(${pkg}_INCLUDE_DIRS GLOBAL PROPERTY ${pkg}_INCLUDE_DIRS )
+    get_property ( ${pkg}_INCLUDE_DIRS GLOBAL PROPERTY ${pkg}_INCLUDE_DIRS )
   endif()
   if ( "${${pkg}_LIBRARIES}" STREQUAL "" )
     get_property(${pkg}_LIBRARIES    GLOBAL PROPERTY ${pkg}_LIBRARIES )
   endif()
-  set(libs "${${pkg}_LIBRARIES}" )
-  string(REGEX REPLACE "  " " " libs "${libs}" )
-  string(REGEX REPLACE " " ";"  libs "${libs}" )
+  set ( libs "${${pkg}_LIBRARIES}" )
+  string ( REGEX REPLACE "  " " " libs "${libs}" )
+  string ( REGEX REPLACE " " ";"  libs "${libs}" )
 
-  set(incs "${${pkg}_INCLUDE_DIRS}" )
-  string(REGEX REPLACE "  " " " incs "${incs}" )
-  string(REGEX REPLACE " " ";"  incs "${incs}" )
+  set ( incs "${${pkg}_INCLUDE_DIRS}" )
+  string ( REGEX REPLACE "  " " " incs "${incs}" )
+  string ( REGEX REPLACE " " ";"  incs "${incs}" )
   
-  set(uses "${${pkg}_USES}" )
-  string(REGEX REPLACE "  " " " uses "${uses}" )
-  string(REGEX REPLACE " " ";"  uses "${uses}" )
+  set ( uses "${${pkg}_USES}" )
+  string ( REGEX REPLACE "  " " " uses "${uses}" )
+  string ( REGEX REPLACE " " ";"  uses "${uses}" )
   
   set ( ${local_incs} ${incs} PARENT_SCOPE )
   set ( ${local_libs} ${libs} PARENT_SCOPE )
@@ -555,15 +554,15 @@ endfunction ( dd4hep_get_dependency_opts )
 #  \version 1.0
 #
 #---------------------------------------------------------------------------------------------------
-function (dd4hep_handle_optional_sources tag optionals missing uses sources )
-  get_property(pkg DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY PACKAGE_NAME)
+function ( dd4hep_handle_optional_sources tag optionals missing uses sources )
+  get_property ( pkg DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY PACKAGE_NAME)
   set (miss)
   set (src)
   set (use)
-  foreach(opt ${optionals} )
+  foreach ( opt ${optionals} )
     dd4hep_unpack_package_opts ( USE ${opt} )
-    dd4hep_debug("unpack DD4HEP_USE_${USE_NAME}=${DD4HEP_USE_${USE_NAME}} <> ${use_pkg} -- ${opt}" )
-    dd4hep_debug("|++> ${tag} find_package( ${USE_NAME} ARGS: ${USE_REQUIRED} ${USE_COMPONENT} ${USE_COMPONENTS} ${USE_TYPE} )")
+    dd4hep_debug ( "unpack DD4HEP_USE_${USE_NAME}=${DD4HEP_USE_${USE_NAME}} <> ${use_pkg} -- ${opt}" )
+    dd4hep_debug ( "|++> ${tag} find_package( ${USE_NAME} ARGS: ${USE_REQUIRED} ${USE_COMPONENT} ${USE_COMPONENTS} ${USE_TYPE} )")
     dd4hep_find_package( ${USE_NAME} pkg_found 
       ARGS ${USE_REQUIRED} ${USE_COMPONENT} ${USE_COMPONENTS} 
       TYPE ${USE_TYPE} )
@@ -575,7 +574,7 @@ function (dd4hep_handle_optional_sources tag optionals missing uses sources )
       set ( src ${src} ${opt_sources} )
       set ( use ${use} ${opt} )
     elseif ( "${USE_REQUIRED}" STREQUAL "REQUIRED" )
-      set (miss ${miss} ${USE_NAME} )
+      set ( miss ${miss} ${USE_NAME} )
     else()
       dd4hep_print ( "|    ${tag}  ...optional: Skip sources ${USE_SOURCES} [requires ${USE_NAME}]" )
     endif()
@@ -596,11 +595,11 @@ endfunction(dd4hep_handle_optional_sources)
 #---------------------------------------------------------------------------------------------------
 function( dd4hep_use_package print_prefix inName outName )
   cmake_parse_arguments( ARG "" "NAME" "USES;OPTIONAL" ${ARGN} )
-  get_property(pkg DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY PACKAGE_NAME)
+  get_property ( pkg DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY PACKAGE_NAME )
   #
-  get_property(pkg_incs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY ${inName}_INCLUDE_DIRS   )
-  get_property(pkg_libs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY ${inName}_LINK_LIBRARIES )
-  get_property(pkg_uses DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY ${inName}_USES )
+  get_property ( pkg_incs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY ${inName}_INCLUDE_DIRS   )
+  get_property ( pkg_libs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY ${inName}_LINK_LIBRARIES )
+  get_property ( pkg_uses DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY ${inName}_USES )
   #
   set ( missing )
   set ( used_uses ${pkg_uses} )
@@ -634,14 +633,14 @@ function( dd4hep_use_package print_prefix inName outName )
   #
   #
   #
-  foreach(use ${ARG_UNPARSED_ARGUMENTS} ${ARG_OPTIONAL} )
+  foreach ( use ${ARG_UNPARSED_ARGUMENTS} ${ARG_OPTIONAL} )
     if ( "${use}" MATCHES "\\[" )
       dd4hep_unpack_package_opts ( USE ${use} )
-      dd4hep_find_package( ${USE_NAME} pkg_found ARGS ${USE_REQUIRED} ${USE_COMPONENT} ${USE_COMPONENTS} )
+      dd4hep_find_package ( ${USE_NAME} pkg_found ARGS ${USE_REQUIRED} ${USE_COMPONENT} ${USE_COMPONENTS} )
       set ( use ${USE_NAME} )
       set ( src "sources ${USE_SOURCES}" )
     else()
-      dd4hep_find_package( ${use} pkg_found )
+      dd4hep_find_package ( ${use} pkg_found )
       set ( src ${use} )
     endif()
     if ( NOT "${pkg_found}" STREQUAL "ON" )
@@ -738,8 +737,8 @@ function( dd4hep_package packageName )
 
   set ( missing_uses )
   foreach ( use ${ARG_USES} )
-    dd4hep_unpack_package_opts( TEST ${use} )
-    dd4hep_find_package( ${TEST_NAME} pkg_found )
+    dd4hep_unpack_package_opts ( TEST ${use} )
+    dd4hep_find_package ( ${TEST_NAME} pkg_found )
     if ( "${pkg_found}" STREQUAL "OFF" )
       set ( missing_uses ${missing_uses} ${TEST_NAME} )
     endif()
@@ -871,14 +870,10 @@ function( dd4hep_add_library binary building )
       if ( NOT "${LOCAL_MISSING}" STREQUAL "" )
         dd4hep_print ( "|++> ${tag} skipped. Missing dependency: ${missing}" )
       endif()
-      set (pkg_incs ${LOCAL_INCLUDE_DIRS} )
-      set (pkg_libs ${LOCAL_LINK_LIBRARIES} )
-      #
-      dd4hep_make_unique_list( pkg_incs VALUES ${pkg_incs} ${ARG_INCLUDE_DIRS} )
-      #
-      dd4hep_make_unique_list( pkg_libs VALUES ${pkg_libs} ${ARG_LINK_LIBRARIES} )
       #
-      dd4hep_make_unique_list( pkg_defs VALUES ${COMPILE_DEFINITIONS} ${ARG_DEFINITIONS} )
+      dd4hep_make_unique_list( pkg_incs VALUES ${LOCAL_INCLUDE_DIRS}   ${ARG_INCLUDE_DIRS} )
+      dd4hep_make_unique_list( pkg_libs VALUES ${LOCAL_LINK_LIBRARIES} ${ARG_LINK_LIBRARIES} )
+      dd4hep_make_unique_list( pkg_defs VALUES ${LOCAL_DEFINITIONS}    ${ARG_DEFINITIONS} )
       #
       file ( GLOB   sources ${ARG_SOURCES} )
       list ( APPEND sources ${optional_sources} )
@@ -886,7 +881,7 @@ function( dd4hep_add_library binary building )
         #
         # root-cint produces warnings of type 'unused-function' disable them on generated files
         foreach ( f in  ${ARG_GENERATED} )
-          set_source_files_properties( ${f} PROPERTIES COMPILE_FLAGS -Wno-unused-function )
+          set_source_files_properties( ${f} PROPERTIES COMPILE_FLAGS -Wno-unused-function GENERATED TRUE )
         endforeach()
         list ( APPEND sources ${ARG_GENERATED} )
       endif()
@@ -1048,25 +1043,29 @@ function ( dd4hep_add_executable binary )
         get_property ( pkg_library GLOBAL PROPERTY ${PKG}_LIBRARIES )
         #
         #  Sources may also be supplied without argument tag:
-        #
         if( "${ARG_SOURCES}" STREQUAL "")
 	  set ( ARG_SOURCES ${ARG_UNPARSED_ARGUMENTS} )
         endif()
+        #  Prepare flags for cint generated sources:
+        foreach ( f in  ${ARG_GENERATED} )
+          set_source_files_properties( ${f} PROPERTIES COMPILE_FLAGS -Wno-unused-function GENERATED TRUE )
+        endforeach()
+        #
         set ( sources ${GENERATED} ${ARG_SOURCES} ${optional_sources} )
         #
-        if( NOT "${ARG_SOURCES}" STREQUAL "")
-	  set (incs ${LOCAL_INCLUDE_DIRS} )
+        if( NOT "${sources}" STREQUAL "")
+	  set (incs ${LOCAL_INCLUDE_DIRS} ${ARG_INCLUDE_DIRS} )
 	  set (libs ${pkg_library} ${LOCAL_LINK_LIBRARIES} ${ARG_LINK_LIBRARIES} )
+	  dd4hep_make_unique_list ( incs    VALUES ${incs} )
 	  dd4hep_make_unique_list ( libs    VALUES ${libs} )
 	  dd4hep_make_unique_list ( sources VALUES ${sources} )
 	  #
 	  dd4hep_debug ( "${tag} Libs:${libs}" )
-	  include_directories( ${ARG_INCLUDE_DIRS} ${incs} )
+	  include_directories( ${incs} )
 	  add_executable( ${binary} ${sources} )
 	  target_link_libraries( ${binary} ${libs} )
 	  #
 	  #  Install the binary to the destination directory
-	  #
 	  install(TARGETS ${binary} 
 	    LIBRARY DESTINATION lib 
 	    RUNTIME DESTINATION bin )
@@ -1136,9 +1135,10 @@ function( dd4hep_add_dictionary dictionary )
     dd4hep_debug ( "${tag}  Sources: '${CMAKE_CURRENT_SOURCE_DIR}'" ) 
     #
     add_custom_command(OUTPUT ${dictionary}.cxx ${dictionary}.h
-      COMMAND ${ROOTCINT_EXECUTABLE} -f  ${dictionary}.cxx 
+      COMMAND ${ROOTCINT_EXECUTABLE} -cint -f ${dictionary}.cxx 
       -c -p ${ARG_OPTIONS} ${comp_defs} ${inc_dirs} ${headers} ${linkdefs} 
       DEPENDS ${headers} ${linkdefs} )
+    set_source_files_properties( ${dictionary}.h ${dictionary}.cxx PROPERTIES GENERATED TRUE )
   endif()
 endfunction()
 
diff --git a/cmake/DD4hepConfig.cmake.in b/cmake/DD4hepConfig.cmake.in
index a6048c6dc..8415429e3 100644
--- a/cmake/DD4hepConfig.cmake.in
+++ b/cmake/DD4hepConfig.cmake.in
@@ -19,7 +19,8 @@ set ( DD4hep_VERSION "@DD4hep_VERSION@" )
 set ( DD4HEP_USE_BOOST "@DD4HEP_USE_BOOST@" )
 set ( DD4HEP_USE_GEANT4 "@DD4HEP_USE_GEANT4@" )
 set ( DD4HEP_USE_XERCESC "@DD4HEP_USE_XERCESC@" )
-
+set ( DD4HEP_USE_CXX11 "@DD4HEP_USE_CXX11@" )
+set ( ROOT_VERSION_MAJOR "@ROOT_VERSION_MAJOR@" )
 set ( Geant4_DIR  "@Geant4_DIR@" )
 set ( GEANT4_USE_CLHEP "@GEANT4_USE_CLHEP@" )
 
@@ -83,6 +84,13 @@ if( @DD4HEP_USE_XERCESC@ )
 endif()
 INCLUDE( ${DD4hep_DIR}/cmake/DD4hep_XML_setup.cmake )
 
+# -----------------------------------------
+if( @DD4HEP_USE_CXX11@ )
+  SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
+  ADD_DEFINITIONs(-DDD4HEP_USE_CXX11)
+else()
+endif()
+
 #----- APPLE ? -------
 
 set( USE_DYLD @USE_DYLD@ )
diff --git a/cmake/FindROOT.cmake b/cmake/FindROOT.cmake
index aa45db526..a799a1108 100644
--- a/cmake/FindROOT.cmake
+++ b/cmake/FindROOT.cmake
@@ -51,8 +51,8 @@ set(ROOT_EVE_LIBRARIES ${ROOT_EVE_LIBRARIES} )
 
 # handle the QUIETLY and REQUIRED arguments and set ROOT_FOUND to TRUE if
 # all listed variables are TRUE
-INCLUDE ( FindPackageHandleStandardArgs )
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(ROOT DEFAULT_MSG ROOTSYS ROOT_INCLUDE_DIR)
+include ( FindPackageHandleStandardArgs )
+find_package_handle_standard_args(ROOT DEFAULT_MSG ROOTSYS ROOT_INCLUDE_DIR)
 mark_as_advanced(ROOT_FOUND ROOT_INCLUDE_DIR)
 
 include ( CMakeParseArguments)
@@ -67,19 +67,19 @@ if(NOT ROOT_VERSION_STRING)
   set(ROOT_VERSION_PATCH  ${CMAKE_MATCH_4} CACHE INTERNAL "Patch version of ROOT")
 endif()
 ##message(WARNING "ROOT ${ROOT_VERSION_MAJOR} ${ROOT_VERSION_MINOR} ${ROOT_VERSION_PATCH}")
-IF ( ${ROOT_VERSION_MAJOR} LESS 6 )
+if ( ${ROOT_VERSION_MAJOR} LESS 6 )
   set ( ROOT_LIBRARIES ${ROOT_LIBRARIES} -lReflex )
-ENDIF()
-IF(ROOT_FIND_COMPONENTS)
-  MESSAGE( STATUS "ROOT: Looking for Components: ${ROOT_FIND_COMPONENTS}" )
-  FOREACH(comp ${ROOT_FIND_COMPONENTS})
+endif()
+if(ROOT_FIND_COMPONENTS)
+  message( STATUS "ROOT[${ROOT_VERSION_STRING}]: Looking for Components: ${ROOT_FIND_COMPONENTS}" )
+  foreach(comp ${ROOT_FIND_COMPONENTS})
     if ( "${comp}" STREQUAL "TEve" )
-      set(ROOT_LIBRARIES ${ROOT_LIBRARIES} ${ROOT_EVE_LIBRARIES} )
+      set(ROOT_LIBRARIES ${ROOT_LIBRARIES} ${ROOT_EVE_LIBRARIES} FTGL )
     else()
       set(ROOT_LIBRARIES ${ROOT_LIBRARIES} -l${comp} )
     endif()
-  ENDFOREACH()
-ENDIF()
+  endforeach()
+endif()
 
 
 #----------------------------------------------------------------------------
diff --git a/cmake/MakeRootMap.cmake b/cmake/MakeRootMap.cmake
index 6af82a899..962518de7 100644
--- a/cmake/MakeRootMap.cmake
+++ b/cmake/MakeRootMap.cmake
@@ -1,5 +1,5 @@
-
-if(DD4HEP_NO_REFLEX)
+message(STATUS "ROOT_genmap_CMD Root version: ${ROOT_VERSION_MAJOR} ${ROOT_VERSION}" )
+if( ${ROOT_VERSION_MAJOR} GREATER 5 )
   #
   #  Running listcomponents from Gaudi
   #
diff --git a/examples/AlignDet/CMakeLists.txt b/examples/AlignDet/CMakeLists.txt
index f923993f1..b83229baa 100644
--- a/examples/AlignDet/CMakeLists.txt
+++ b/examples/AlignDet/CMakeLists.txt
@@ -15,7 +15,7 @@ include ( ${DD4hep_DIR}/cmake/DD4hep.cmake )
 #-----------------------------------------------------------------------------------
 dd4hep_configure_output()
 dd4hep_package ( AlignDet MAJOR 0 MINOR 0 PATCH 1
-  USES           [ROOT   REQUIRED COMPONENTS Geom MathCore] 
+  USES           [ROOT   REQUIRED COMPONENTS Geom GenVector MathCore] 
                  [DD4hep REQUIRED COMPONENTS DDCore]
   OPTIONAL       XERCESC
   INCLUDE_DIRS   include
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
index 3f22d95fd..d9f562e1c 100644
--- a/examples/CMakeLists.txt
+++ b/examples/CMakeLists.txt
@@ -24,13 +24,15 @@
 #==========================================================================
 cmake_minimum_required(VERSION 2.8.3 FATAL_ERROR)
 option(BUILD_TESTING "Enable and build tests" ON)
+find_package ( ROOT   REQUIRED COMPONENTS Geom GenVector MathCore )
 find_package ( DD4hep REQUIRED )
 #
 include ( ${DD4hep_DIR}/cmake/DD4hep.cmake )
 #
 dd4hep_package ( DD4hepExample MAJOR 0 MINOR 0 PATCH 1 
-  USES           [ROOT REQUIRED COMPONENTS Geom MathCore] 
+  USES           [ROOT REQUIRED COMPONENTS Geom GenVector MathCore] 
                  [DD4hep REQUIRED COMPONENTS DDCore]
 )
 #
-dd4hep_enable_tests ( AlignDet CLICSiD ClientTests SimpleDetector )
+dd4hep_enable_tests ( AlignDet CLICSiD ClientTests )
+###SimpleDetector )
diff --git a/examples/ClientTests/CMakeLists.txt b/examples/ClientTests/CMakeLists.txt
index dfe0a4d9a..40ab27f31 100644
--- a/examples/ClientTests/CMakeLists.txt
+++ b/examples/ClientTests/CMakeLists.txt
@@ -15,7 +15,7 @@ include ( ${DD4hep_DIR}/cmake/DD4hep.cmake )
 #-----------------------------------------------------------------------------------
 dd4hep_configure_output()
 dd4hep_package (ClientTests MAJOR 0 MINOR 0 PATCH 1
-  USES         [ROOT   REQUIRED COMPONENTS Geom MathCore] 
+  USES         [ROOT   REQUIRED COMPONENTS Geom GenVector MathCore] 
                [DD4hep REQUIRED COMPONENTS DDCore]
   OPTIONAL     XERCESC
   INCLUDE_DIRS include )
diff --git a/examples/SimpleDetector/CMakeLists.txt b/examples/SimpleDetector/CMakeLists.txt
index e255d8e80..ee1b434fe 100644
--- a/examples/SimpleDetector/CMakeLists.txt
+++ b/examples/SimpleDetector/CMakeLists.txt
@@ -42,7 +42,7 @@ set(CMAKE_MODULE_PATH  ${CMAKE_MODULE_PATH}  ${DD4hep_DIR}/cmake )
 include( DD4hep )
 
 find_package( ROOT REQUIRED )
-set( ROOT_COMPONENT_LIBRARIES Geom Reflex)
+set( ROOT_COMPONENT_LIBRARIES Geom )
 #-------------------------------------------------------------
 # add additional packages here
 
-- 
GitLab