diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9e8929ff5dbb6031d8b7e68343b509c222f4b7af..ef6e9ba969566da6e6451bb0aa510bc81fd983b4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -57,8 +57,18 @@ include( DD4hepMacros )
 
 find_package(ROOT REQUIRED)
 
-if(DD4HEP_USE_XERCESC)
-  find_package(XercesC REQUIRED)
+##checks for xercesc or not and sets up the include_directories
+include(DD4hep_XML_setup)
+
+if(DD4HEP_USE_BOOST)
+  find_package( Boost REQUIRED ) 
+  include_directories( SYSTEM ${Boost_INCLUDE_DIRS} )
+  add_definitions( -DDD4HEP_USE_BOOST )
+endif()
+
+if(DD4HEP_USE_LCIO)
+  find_package( LCIO REQUIRED )
+  include_directories( SYSTEM ${LCIO_INCLUDE_DIRS} )
 endif()
 
 #---Testing-------------------------------------------------------------------------
@@ -101,6 +111,7 @@ if(DD4HEP_USE_GEANT4)
   #--- create a geant4 variables for the thisdd4hep.sh script
   find_package( Geant4 REQUIRED  gdml ui_all vis_all)
 
+  include(${Geant4_USE_FILE})   # this also takes care of geant 4 definitions and include dirs
 
   #----- if geant4 is build with external CLHEP we also need to export this fact
 
diff --git a/cmake/DD4hep_XML_setup.cmake b/cmake/DD4hep_XML_setup.cmake
index e59b7df30d143c72d89c45859d63dbe77038f2be..f8106a7c69740202b30635331e67ca680888a8c4 100644
--- a/cmake/DD4hep_XML_setup.cmake
+++ b/cmake/DD4hep_XML_setup.cmake
@@ -1,4 +1,5 @@
 if(DD4HEP_USE_XERCESC)
+  find_package( XercesC REQUIRED )
   add_definitions(-DDD4HEP_USE_XERCESC)
   include_directories(SYSTEM ${XERCESC_INCLUDE_DIRS})
   set(XML_LIBRARIES ${XERCESC_LIBRARIES})