diff --git a/Calorimeter/CaloG4Sim/CMakeLists.txt b/Calorimeter/CaloG4Sim/CMakeLists.txt
index 53468bfb437eacc021d1192cafc167fe52fbb977..7e03ef082d010d520b212cecd69e73d0ad4fca07 100644
--- a/Calorimeter/CaloG4Sim/CMakeLists.txt
+++ b/Calorimeter/CaloG4Sim/CMakeLists.txt
@@ -21,6 +21,7 @@ atlas_add_library( CaloG4SimLib
                    DEFINITIONS ${CLHEP_DEFINITIONS}
                    LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} ${TBB_LIBRARIES} AthenaBaseComps GaudiKernel G4AtlasInterfaces G4AtlasToolsLib
                    PRIVATE_LINK_LIBRARIES CxxUtils MCTruth )
+set_target_properties( CaloG4SimLib PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 atlas_add_library( CaloG4Sim
                    src/components/*.cxx
@@ -28,6 +29,7 @@ atlas_add_library( CaloG4Sim
                    NO_PUBLIC_HEADERS
                    INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${TBB_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} ${TBB_LIBRARIES} AthenaBaseComps GaudiKernel G4AtlasInterfaces G4AtlasToolsLib CxxUtils CaloG4SimLib )
+set_target_properties( CaloG4Sim PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/ForwardDetectors/AFP/AFP_G4_SD/CMakeLists.txt b/ForwardDetectors/AFP/AFP_G4_SD/CMakeLists.txt
index 3abc926c731f865c0fa4742240f67b759cd247b6..b4b6444db3ccef471dbf28942f04bd762352bebb 100644
--- a/ForwardDetectors/AFP/AFP_G4_SD/CMakeLists.txt
+++ b/ForwardDetectors/AFP/AFP_G4_SD/CMakeLists.txt
@@ -14,12 +14,14 @@ atlas_add_library( AFP_G4_SDLib
                    NO_PUBLIC_HEADERS
                    INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS}
                    LINK_LIBRARIES ${GEANT4_LIBRARIES} ${GTEST_LIBRARIES} AFP_Geometry AFP_SimEv G4AtlasToolsLib StoreGateLib )
+set_target_properties( AFP_G4_SDLib PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 atlas_add_library( AFP_G4_SD
                    src/components/*.cxx
                    OBJECT
                    NO_PUBLIC_HEADERS
                    PRIVATE_LINK_LIBRARIES AFP_G4_SDLib )
+set_target_properties( AFP_G4_SD PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/ForwardDetectors/ALFA/ALFA_G4_SD/CMakeLists.txt b/ForwardDetectors/ALFA/ALFA_G4_SD/CMakeLists.txt
index ef0ca4b672d26a31cbd71d65a096b09dc6b13fb0..6505cf089ada824f35244e13048c9e50255e7b8f 100644
--- a/ForwardDetectors/ALFA/ALFA_G4_SD/CMakeLists.txt
+++ b/ForwardDetectors/ALFA/ALFA_G4_SD/CMakeLists.txt
@@ -14,12 +14,14 @@ atlas_add_library( ALFA_G4_SDLib
                    NO_PUBLIC_HEADERS
                    INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${GTEST_INCLUDE_DIRS}
                    LINK_LIBRARIES ${GEANT4_LIBRARIES} ${GTEST_LIBRARIES} ALFA_SimEv G4AtlasToolsLib StoreGateLib )
+set_target_properties( ALFA_G4_SDLib PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 atlas_add_library( ALFA_G4_SD
                    src/components/*.cxx
                    OBJECT
                    NO_PUBLIC_HEADERS
                    PRIVATE_LINK_LIBRARIES ALFA_G4_SDLib )
+set_target_properties( ALFA_G4_SD PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/ForwardDetectors/ForwardSimulation/ForwardRegionMgField/CMakeLists.txt b/ForwardDetectors/ForwardSimulation/ForwardRegionMgField/CMakeLists.txt
index 655a9d9e138eeffd70baaad731f1164540ad408b..afab10201523202abebfca4660db4b424f89db67 100644
--- a/ForwardDetectors/ForwardSimulation/ForwardRegionMgField/CMakeLists.txt
+++ b/ForwardDetectors/ForwardSimulation/ForwardRegionMgField/CMakeLists.txt
@@ -15,6 +15,7 @@ atlas_add_library( ForwardRegionMgField
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${GEANT4_LIBRARIES} ${CLHEP_LIBRARIES} GaudiKernel AthenaBaseComps MagFieldInterfaces PathResolver ForwardRegionGeoModelLib )
+set_target_properties( ForwardRegionMgField PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_runtime( share/*.dat )
diff --git a/ForwardDetectors/ForwardTransport/CMakeLists.txt b/ForwardDetectors/ForwardTransport/CMakeLists.txt
index a016d57c2917be46ea659680cf074856dbadd4d6..cf17047e87a33f111fef142f55980a8b0d41ca6a 100644
--- a/ForwardDetectors/ForwardTransport/CMakeLists.txt
+++ b/ForwardDetectors/ForwardTransport/CMakeLists.txt
@@ -14,6 +14,7 @@ atlas_add_library( ForwardTransport
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${GEANT4_LIBRARIES} AtlasHepMCLib  TruthUtils ForwardTracker GaudiKernel GeneratorObjects G4AtlasToolsLib ForwardTransportSvcLib ISF_Event MCTruth )
+set_target_properties( ForwardTransport PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/ForwardDetectors/ForwardTransportSvc/CMakeLists.txt b/ForwardDetectors/ForwardTransportSvc/CMakeLists.txt
index a1d9fba5f990558c3eb6fc9cf62d8fb439ca160c..d077739b67229b161fcacc11e4c022d2153ec168 100644
--- a/ForwardDetectors/ForwardTransportSvc/CMakeLists.txt
+++ b/ForwardDetectors/ForwardTransportSvc/CMakeLists.txt
@@ -14,6 +14,7 @@ atlas_add_library( ForwardTransportSvcLib
                    PUBLIC_HEADERS ForwardTransportSvc
                    INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
                    LINK_LIBRARIES ${GEANT4_LIBRARIES} ${CLHEP_LIBRARIES} AtlasHepMCLib ForwardTracker GaudiKernel )
+set_target_properties( ForwardTransportSvcLib PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Component(s) in the package:
 atlas_add_library( ForwardTransportSvc
@@ -23,6 +24,7 @@ atlas_add_library( ForwardTransportSvc
                    NO_PUBLIC_HEADERS
                    INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaBaseComps ForwardTracker ForwardTransportSvcLib GaudiKernel GeneratorObjects )
+set_target_properties( ForwardTransportSvc PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/ForwardDetectors/LUCID/LUCID_G4_SD/CMakeLists.txt b/ForwardDetectors/LUCID/LUCID_G4_SD/CMakeLists.txt
index 58f15e694f3434d10d3e2f990d80ef629fdbac51..57e027b4a52b0c41f60da212276c1fcdcb1797fe 100644
--- a/ForwardDetectors/LUCID/LUCID_G4_SD/CMakeLists.txt
+++ b/ForwardDetectors/LUCID/LUCID_G4_SD/CMakeLists.txt
@@ -15,12 +15,14 @@ atlas_add_library( LUCID_G4_SDLib
                    NO_PUBLIC_HEADERS
                    INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} ${GEANT4_INCLUDE_DIRS} ${GTEST_INCLUDE_DIRS}
                    LINK_LIBRARIES ${CLHEP_LIBRARIES} ${GEANT4_LIBRARIES} ${GTEST_LIBRARIES} G4AtlasToolsLib HitManagement LUCID_GeoModelLib LUCID_SimEvent MCTruth StoreGateLib )
+set_target_properties( LUCID_G4_SDLib PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 atlas_add_library( LUCID_G4_SD
                    src/components/*.cxx
                    OBJECT
                    NO_PUBLIC_HEADERS
                    PRIVATE_LINK_LIBRARIES LUCID_G4_SDLib )
+set_target_properties( LUCID_G4_SD PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 atlas_add_test( LUCID_SensitiveDetector_gtest
                 SOURCES test/LUCID_SensitiveDetector_gtest.cxx
diff --git a/ForwardDetectors/LUCID/LUCID_SimUtils/LUCID_OpProcess/CMakeLists.txt b/ForwardDetectors/LUCID/LUCID_SimUtils/LUCID_OpProcess/CMakeLists.txt
index 133c4fe964b09015944822d7716504e825eb273d..d49bb54a49680640c0bfc76243bcacae63b046b8 100644
--- a/ForwardDetectors/LUCID/LUCID_SimUtils/LUCID_OpProcess/CMakeLists.txt
+++ b/ForwardDetectors/LUCID/LUCID_SimUtils/LUCID_OpProcess/CMakeLists.txt
@@ -14,6 +14,7 @@ atlas_add_library( LUCID_OpProcess
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${GEANT4_LIBRARIES} GaudiKernel AthenaBaseComps G4AtlasInterfaces )
+set_target_properties( LUCID_OpProcess PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/ForwardDetectors/ZDC/ZDC_SD/CMakeLists.txt b/ForwardDetectors/ZDC/ZDC_SD/CMakeLists.txt
index 224f962a7278fe8d11fa983a845f7d7915c8112c..fd9c46609ff78fb39cd1ff9c68cbd2964ca4c136 100644
--- a/ForwardDetectors/ZDC/ZDC_SD/CMakeLists.txt
+++ b/ForwardDetectors/ZDC/ZDC_SD/CMakeLists.txt
@@ -15,12 +15,14 @@ atlas_add_library( ZDC_SDLib
                    NO_PUBLIC_HEADERS
                    INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} ${GEANT4_INCLUDE_DIRS} ${GTEST_INCLUDE_DIRS}
                    LINK_LIBRARIES ${CLHEP_LIBRARIES} ${GEANT4_LIBRARIES} ${GTEST_LIBRARIES} G4AtlasToolsLib StoreGateLib ZDC_SimEvent ZdcIdentifier CaloG4SimLib CaloSimEvent CaloIdentifier MCTruth )
+set_target_properties( ZDC_SDLib PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 atlas_add_library( ZDC_SD
                    src/components/*.cxx
                    OBJECT
                    NO_PUBLIC_HEADERS
                    PRIVATE_LINK_LIBRARIES ZDC_SDLib )
+set_target_properties( ZDC_SD PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
@@ -35,4 +37,4 @@ atlas_add_test( ZDC_FiberSD_gtest
 atlas_add_test( ZDC_G4CalibSD_gtest
                 SOURCES test/ZDC_G4CalibSD_gtest.cxx
                 LINK_LIBRARIES TestTools ZDC_SDLib G4AtlasToolsLib CxxUtils CaloG4SimLib
-                POST_EXEC_SCRIPT nopost.sh )
\ No newline at end of file
+                POST_EXEC_SCRIPT nopost.sh )
diff --git a/HighGranularityTimingDetector/HGTD_G4/HGTD_G4_SD/CMakeLists.txt b/HighGranularityTimingDetector/HGTD_G4/HGTD_G4_SD/CMakeLists.txt
index 550e02c65875159e11026c74d875c14641ae0602..75c3426473f50d54d913d16aa9c5eb965afc7d8e 100644
--- a/HighGranularityTimingDetector/HGTD_G4/HGTD_G4_SD/CMakeLists.txt
+++ b/HighGranularityTimingDetector/HGTD_G4/HGTD_G4_SD/CMakeLists.txt
@@ -16,6 +16,7 @@ atlas_add_library( HGTD_G4_SD
                    INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} ${GEANT4_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS}
                    LINK_LIBRARIES ${CLHEP_LIBRARIES} ${GEANT4_LIBRARIES} ${GEOMODEL_LIBRARIES} StoreGateLib
                    HGTD_Identifier InDetSimEvent G4AtlasToolsLib MCTruth GeoModelInterfaces GeoPrimitives )
+set_target_properties( HGTD_G4_SD PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py )
diff --git a/InnerDetector/InDetG4/BCM_G4_SD/CMakeLists.txt b/InnerDetector/InDetG4/BCM_G4_SD/CMakeLists.txt
index ad3ece75f6d91de51abdceadfdc57479cf3f5aab..24f6dedfacfd978c69adac434ab2c85451629686 100644
--- a/InnerDetector/InDetG4/BCM_G4_SD/CMakeLists.txt
+++ b/InnerDetector/InDetG4/BCM_G4_SD/CMakeLists.txt
@@ -15,12 +15,14 @@ atlas_add_library( BCM_G4_SDLib
                    NO_PUBLIC_HEADERS
                    INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} ${GEANT4_INCLUDE_DIRS} ${GTEST_INCLUDE_DIRS}
                    LINK_LIBRARIES ${CLHEP_LIBRARIES} ${GEANT4_LIBRARIES} ${GTEST_LIBRARIES} AthenaKernel G4AtlasToolsLib InDetSimEvent MCTruth StoreGateLib )
+set_target_properties( BCM_G4_SDLib PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 atlas_add_library( BCM_G4_SD
                    src/components/*.cxx
                    OBJECT
                    NO_PUBLIC_HEADERS
                    PRIVATE_LINK_LIBRARIES BCM_G4_SDLib )
+set_target_properties( BCM_G4_SD PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Test(s) in the package:
 atlas_add_test( BCM_G4_SDToolConfig_test
diff --git a/InnerDetector/InDetG4/BLM_G4_SD/CMakeLists.txt b/InnerDetector/InDetG4/BLM_G4_SD/CMakeLists.txt
index 90b0e3b473bf445907677d26196faf5db7ee9bf1..c32ba2e919870537a71b7e1dcebf81d56c5c00ad 100644
--- a/InnerDetector/InDetG4/BLM_G4_SD/CMakeLists.txt
+++ b/InnerDetector/InDetG4/BLM_G4_SD/CMakeLists.txt
@@ -15,12 +15,14 @@ atlas_add_library( BLM_G4_SDLib
                    NO_PUBLIC_HEADERS
                    INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} ${GEANT4_INCLUDE_DIRS} ${GTEST_INCLUDE_DIRS}
                    LINK_LIBRARIES ${CLHEP_LIBRARIES} ${GEANT4_LIBRARIES} ${GTEST_LIBRARIES} G4AtlasToolsLib InDetSimEvent MCTruth StoreGateLib )
+set_target_properties( BLM_G4_SDLib PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 atlas_add_library( BLM_G4_SD
                    src/components/*.cxx
                    OBJECT
                    NO_PUBLIC_HEADERS
                    PRIVATE_LINK_LIBRARIES BLM_G4_SDLib )
+set_target_properties( BLM_G4_SD PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Test(s) in the package:
 atlas_add_test( BLM_G4_SDToolConfig_test
diff --git a/InnerDetector/InDetG4/PixelG4_SD/CMakeLists.txt b/InnerDetector/InDetG4/PixelG4_SD/CMakeLists.txt
index d025fd6dd7b2006100f73e364b6395c3651713ca..af77794fdab861ccb77628996c38d88e805f4a22 100644
--- a/InnerDetector/InDetG4/PixelG4_SD/CMakeLists.txt
+++ b/InnerDetector/InDetG4/PixelG4_SD/CMakeLists.txt
@@ -16,12 +16,14 @@ atlas_add_library( PixelG4_SDLib
                    NO_PUBLIC_HEADERS
                    INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS}
                    LINK_LIBRARIES ${CLHEP_LIBRARIES} ${GEANT4_LIBRARIES} ${GTEST_LIBRARIES} ${GEOMODEL_LIBRARIES} G4AtlasToolsLib InDetSimEvent MCTruth StoreGateLib GeoModelInterfaces GeoPrimitives)
+set_target_properties( PixelG4_SDLib PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 atlas_add_library( PixelG4_SD
                    src/components/*.cxx
                    OBJECT
                    NO_PUBLIC_HEADERS
                    PRIVATE_LINK_LIBRARIES PixelG4_SDLib )
+set_target_properties( PixelG4_SD PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Test(s) in the package:
 atlas_add_test( PixelG4_SDToolConfig_test
diff --git a/InnerDetector/InDetG4/SCT_G4_SD/CMakeLists.txt b/InnerDetector/InDetG4/SCT_G4_SD/CMakeLists.txt
index 5340faa5a0122d1ec8dae32dbda3369dac4fc9c7..e3834fd4d81d101b20032bb7bb129f9a0eb1b403 100644
--- a/InnerDetector/InDetG4/SCT_G4_SD/CMakeLists.txt
+++ b/InnerDetector/InDetG4/SCT_G4_SD/CMakeLists.txt
@@ -16,12 +16,14 @@ atlas_add_library( SCT_G4_SDLib
                    NO_PUBLIC_HEADERS
                    INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} ${GEANT4_INCLUDE_DIRS} ${GTEST_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS}
                    LINK_LIBRARIES ${CLHEP_LIBRARIES} ${GEANT4_LIBRARIES} ${GTEST_LIBRARIES} ${GEOMODEL_LIBRARIES} G4AtlasToolsLib InDetSimEvent MCTruth StoreGateLib GeoModelInterfaces GeoPrimitives )
+set_target_properties( SCT_G4_SDLib PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 atlas_add_library( SCT_G4_SD
                    src/components/*.cxx
                    OBJECT
                    NO_PUBLIC_HEADERS
                    PRIVATE_LINK_LIBRARIES SCT_G4_SDLib )
+set_target_properties( SCT_G4_SD PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Test(s) in the package:
 atlas_add_test( SCT_G4_SDToolConfig_test
diff --git a/InnerDetector/InDetG4/TRT_G4Utilities/CMakeLists.txt b/InnerDetector/InDetG4/TRT_G4Utilities/CMakeLists.txt
index 70651151a747b9595a6a9dacc8cc507f1e3490c3..7972b4b788009f4e93f66d44f03de784453a6fae 100644
--- a/InnerDetector/InDetG4/TRT_G4Utilities/CMakeLists.txt
+++ b/InnerDetector/InDetG4/TRT_G4Utilities/CMakeLists.txt
@@ -18,6 +18,7 @@ atlas_add_library( TRT_G4Utilities
                    PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS}
                    LINK_LIBRARIES ${GEANT4_LIBRARIES} AthenaKernel CxxUtils
                    PRIVATE_LINK_LIBRARIES ${CLHEP_LIBRARIES} PathResolver )
+set_target_properties( TRT_G4Utilities PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_runtime( share/TRT_G4Utilities_management.txt share/TRT_G4Utilities_geometry.txt )
diff --git a/InnerDetector/InDetG4/TRT_G4_SD/CMakeLists.txt b/InnerDetector/InDetG4/TRT_G4_SD/CMakeLists.txt
index 08b912a5b98280b1e5c8c838d2d93763e8b263e4..20c76dda3f275bbf5f403e84302fcaa5c453a425 100644
--- a/InnerDetector/InDetG4/TRT_G4_SD/CMakeLists.txt
+++ b/InnerDetector/InDetG4/TRT_G4_SD/CMakeLists.txt
@@ -14,12 +14,14 @@ atlas_add_library( TRT_G4_SDLib
                    NO_PUBLIC_HEADERS
                    INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${GTEST_INCLUDE_DIRS}
                    LINK_LIBRARIES ${GEANT4_LIBRARIES} ${GTEST_LIBRARIES} AthenaKernel CxxUtils G4AtlasToolsLib InDetSimEvent MCTruth StoreGateLib TRT_G4Utilities )
+set_target_properties( TRT_G4_SDLib PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 atlas_add_library( TRT_G4_SD
                    src/components/*.cxx
                    OBJECT
                    NO_PUBLIC_HEADERS
                    PRIVATE_LINK_LIBRARIES TRT_G4_SDLib )
+set_target_properties( TRT_G4_SD PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Test(s) in the package:
 atlas_add_test( TRT_G4_SDToolConfig_test
diff --git a/InnerDetector/InDetSimUtils/TRT_TR_Process/CMakeLists.txt b/InnerDetector/InDetSimUtils/TRT_TR_Process/CMakeLists.txt
index 749dee2d9eac93d1d87a7f470c820a5683b86ef2..ad2c594752b7b0fb429f5bac1778a8d884e69bd0 100644
--- a/InnerDetector/InDetSimUtils/TRT_TR_Process/CMakeLists.txt
+++ b/InnerDetector/InDetSimUtils/TRT_TR_Process/CMakeLists.txt
@@ -19,6 +19,7 @@ atlas_add_library( TRT_TR_Process
                    NO_PUBLIC_HEADERS
                    INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${GEANT4_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
                    LINK_LIBRARIES ${Boost_LIBRARIES} ${XERCESC_LIBRARIES} ${GEANT4_LIBRARIES} ${CLHEP_LIBRARIES} GaudiKernel AthenaBaseComps AthenaKernel StoreGateLib IdDictDetDescr G4AtlasInterfaces GeoMaterial2G4 GeoModelInterfaces PathResolver RDBAccessSvcLib )
+set_target_properties( TRT_TR_Process PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py )
diff --git a/LArCalorimeter/LArG4/LArG4Barrel/CMakeLists.txt b/LArCalorimeter/LArG4/LArG4Barrel/CMakeLists.txt
index 2e4bbd5d9d7e583913bd568579725cff5baa616d..52c8f12834bc857383ea93b2bcc74b9250705acf 100644
--- a/LArCalorimeter/LArG4/LArG4Barrel/CMakeLists.txt
+++ b/LArCalorimeter/LArG4/LArG4Barrel/CMakeLists.txt
@@ -19,5 +19,6 @@ atlas_add_library( LArG4Barrel
                    DEFINITIONS ${CLHEP_DEFINITIONS}
                    LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} LArG4Code CaloG4SimLib StoreGateLib
                    PRIVATE_LINK_LIBRARIES AthenaKernel GaudiKernel LArG4RunControl LArHV PathResolver )
+set_target_properties( LArG4Barrel PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 atlas_install_python_modules( python/*.py )
diff --git a/LArCalorimeter/LArG4/LArG4Code/CMakeLists.txt b/LArCalorimeter/LArG4/LArG4Code/CMakeLists.txt
index c175f03db78dc95ee3af554fd6d77f7a30e3fcf0..4e3d772a88d3ada962711c4d9a02b15c8ff956e9 100644
--- a/LArCalorimeter/LArG4/LArG4Code/CMakeLists.txt
+++ b/LArCalorimeter/LArG4/LArG4Code/CMakeLists.txt
@@ -23,6 +23,7 @@ atlas_add_library( LArG4Code
                    DEFINITIONS ${CLHEP_DEFINITIONS}
                    LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} AtlasDetDescr CaloSimEvent LArGeoCode LArSimEvent CaloG4SimLib G4AtlasToolsLib StoreGateLib GaudiKernel
                    PRIVATE_LINK_LIBRARIES CaloIdentifier AthenaKernel CxxUtils MCTruth )
+set_target_properties( LArG4Code PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 atlas_add_dictionary( LArG4CodeEnums
                       LArG4Code/LArG4EnumDefs.h
diff --git a/LArCalorimeter/LArG4/LArG4EC/CMakeLists.txt b/LArCalorimeter/LArG4/LArG4EC/CMakeLists.txt
index e526a8976a3555e73474de3a25699dd49cd03e06..9437549a1c4d5a1b30e33740a78bc0ba54c7a714 100644
--- a/LArCalorimeter/LArG4/LArG4EC/CMakeLists.txt
+++ b/LArCalorimeter/LArG4/LArG4EC/CMakeLists.txt
@@ -21,5 +21,6 @@ atlas_add_library( LArG4EC
                    PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS}
                    PRIVATE_LINK_LIBRARIES ${XERCESC_LIBRARIES} ${GEANT4_LIBRARIES} GeoSpecialShapes LArG4Code LArGeoCode CaloG4SimLib StoreGateLib
                    ${CORAL_LIBRARIES} ${CLHEP_LIBRARIES} GeoModelUtilities GaudiKernel LArG4RunControl LArHV PathResolver GeoModelInterfaces RDBAccessSvcLib )
+set_target_properties( LArG4EC PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 atlas_install_python_modules( python/*.py )
diff --git a/LArCalorimeter/LArG4/LArG4FCAL/CMakeLists.txt b/LArCalorimeter/LArG4/LArG4FCAL/CMakeLists.txt
index 0ed14ec13949b4a985bec3d81f16a91f36fe19b0..e25257af063841b41cd7c6fe2120880a4ea9b5a6 100644
--- a/LArCalorimeter/LArG4/LArG4FCAL/CMakeLists.txt
+++ b/LArCalorimeter/LArG4/LArG4FCAL/CMakeLists.txt
@@ -14,5 +14,6 @@ atlas_add_library( LArG4FCAL
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${GEANT4_LIBRARIES} AthenaKernel CaloG4SimLib GaudiKernel GeoModelInterfaces LArG4Code LArHV LArReadoutGeometry PathResolver RDBAccessSvcLib StoreGateLib )
+set_target_properties( LArG4FCAL PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/LArCalorimeter/LArG4/LArG4FastSimSvc/CMakeLists.txt b/LArCalorimeter/LArG4/LArG4FastSimSvc/CMakeLists.txt
index b1dae0aac097137d5af32274de85774e923c2539..75c4bfae5539e883f12a8b41ad392c07d8bf6ca4 100644
--- a/LArCalorimeter/LArG4/LArG4FastSimSvc/CMakeLists.txt
+++ b/LArCalorimeter/LArG4/LArG4FastSimSvc/CMakeLists.txt
@@ -15,3 +15,4 @@ atlas_add_library( LArG4FastSimSvc
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${GEANT4_LIBRARIES} ${CLHEP_LIBRARIES} AtlasHepMCLib AthenaBaseComps GaudiKernel )
+set_target_properties( LArG4FastSimSvc PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
diff --git a/LArCalorimeter/LArG4/LArG4FastSimulation/CMakeLists.txt b/LArCalorimeter/LArG4/LArG4FastSimulation/CMakeLists.txt
index 6745ea648385023170f4723045a198e3ac21a43d..11056af7c887cbb91137f278fa988f7780bc1779 100644
--- a/LArCalorimeter/LArG4/LArG4FastSimulation/CMakeLists.txt
+++ b/LArCalorimeter/LArG4/LArG4FastSimulation/CMakeLists.txt
@@ -16,6 +16,7 @@ atlas_add_library( LArG4FastSimulation
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${GEANT4_LIBRARIES} ${CLHEP_LIBRARIES} AtlasHepMCLib ${GEOMODEL_LIBRARIES} GaudiKernel StoreGateLib GeoSpecialShapes LArG4Code LArReadoutGeometry LArSimEvent G4AtlasToolsLib GeoPrimitives LArG4ShowerLibSvcLib RDBAccessSvcLib GeoModelInterfaces GeoModelUtilities)
+set_target_properties( LArG4FastSimulation PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/LArCalorimeter/LArG4/LArG4GenShowerLib/CMakeLists.txt b/LArCalorimeter/LArG4/LArG4GenShowerLib/CMakeLists.txt
index 9add4a0a06f74aed8a344ee5b17f01be1cab32a7..d4fc43d47ff420e7aed619cb1a6c01e2ab606f9c 100644
--- a/LArCalorimeter/LArG4/LArG4GenShowerLib/CMakeLists.txt
+++ b/LArCalorimeter/LArG4/LArG4GenShowerLib/CMakeLists.txt
@@ -20,6 +20,7 @@ atlas_add_library( LArG4GenShowerLibLib
                    PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS}
                    LINK_LIBRARIES AthenaBaseComps AthContainers AtlasHepMCLib GaudiKernel G4AtlasToolsLib LArG4Code
                    PRIVATE_LINK_LIBRARIES ${XERCESC_LIBRARIES} ${GEANT4_LIBRARIES} ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} GeneratorObjects GeoModelInterfaces LArG4ShowerLib )
+set_target_properties( LArG4GenShowerLibLib PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 atlas_add_library( LArG4GenShowerLib
                    src/components/*.cxx
@@ -27,6 +28,7 @@ atlas_add_library( LArG4GenShowerLib
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${XERCESC_INCLUDE_DIRS} ${GEANT4_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES LArG4GenShowerLibLib )
+set_target_properties( LArG4GenShowerLib PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 atlas_add_dictionary( LArG4GenShowerLibDict
                       LArG4GenShowerLib/LArG4GenShowerLibDict.h
diff --git a/LArCalorimeter/LArG4/LArG4H6SD/CMakeLists.txt b/LArCalorimeter/LArG4/LArG4H6SD/CMakeLists.txt
index 3004ca9ed017cc71901dbf3cf2252a3a47951cd8..bdcc104b82859a3ec0244ecf7e4da7f3bba4766b 100644
--- a/LArCalorimeter/LArG4/LArG4H6SD/CMakeLists.txt
+++ b/LArCalorimeter/LArG4/LArG4H6SD/CMakeLists.txt
@@ -21,4 +21,5 @@ atlas_add_library( LArG4H6SD
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${CORAL_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}  ${GEANT4_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${CORAL_LIBRARIES} ${Boost_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} AtlasHepMCLib ${GEANT4_LIBRARIES} GaudiKernel CaloG4SimLib CaloSimEvent AthenaBaseComps AthenaKernel StoreGateLib GeoModelUtilities Identifier GeneratorObjects LArG4Code LArG4RunControl LArG4TBSimEvent LArReadoutGeometry LArSimEvent G4AtlasInterfaces G4AtlasToolsLib SimHelpers HitManagement MCTruth TBEvent PathResolver GeoModelInterfaces RDBAccessSvcLib )
+set_target_properties( LArG4H6SD PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
diff --git a/LArCalorimeter/LArG4/LArG4HEC/CMakeLists.txt b/LArCalorimeter/LArG4/LArG4HEC/CMakeLists.txt
index fedd25574f46a3447e6818a15b35cc766520476b..35015ee11f4da32d296aaac887922b1b9c099514 100644
--- a/LArCalorimeter/LArG4/LArG4HEC/CMakeLists.txt
+++ b/LArCalorimeter/LArG4/LArG4HEC/CMakeLists.txt
@@ -20,6 +20,7 @@ atlas_add_library( LArG4HEC
                    PRIVATE_INCLUDE_DIRS ${XERCESC_INCLUDE_DIRS} ${GEANT4_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS}
                    PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS}
                    PRIVATE_LINK_LIBRARIES ${XERCESC_LIBRARIES} ${GEANT4_LIBRARIES} ${CLHEP_LIBRARIES} AthenaBaseComps LArG4Code LArReadoutGeometry CaloG4SimLib GeoModelInterfaces StoreGateLib ${CORAL_LIBRARIES} AthenaKernel GaudiKernel LArG4RunControl LArHV RDBAccessSvcLib )
+set_target_properties( LArG4HEC PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 
 atlas_install_python_modules( python/*.py )
diff --git a/LArCalorimeter/LArG4/LArG4SD/CMakeLists.txt b/LArCalorimeter/LArG4/LArG4SD/CMakeLists.txt
index 2ee6e6f1e885306f9f485490041b2549fa797677..503cd8e2768295e2d5f838d4ae84df61cee0760c 100644
--- a/LArCalorimeter/LArG4/LArG4SD/CMakeLists.txt
+++ b/LArCalorimeter/LArG4/LArG4SD/CMakeLists.txt
@@ -19,6 +19,7 @@ atlas_add_library( LArG4SD
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} CaloG4SimLib GaudiKernel LArG4Code )
+set_target_properties( LArG4SD PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 atlas_add_test( LArG4SDToolConfig_test
                 SCRIPT test/LArG4SDToolConfig_test.py
diff --git a/LArCalorimeter/LArG4/LArG4ShowerLib/CMakeLists.txt b/LArCalorimeter/LArG4/LArG4ShowerLib/CMakeLists.txt
index 5c67f3f62b695e44f2004fc48922c614595ace1e..20056b896b54d4a00280eab830c15e51d7a618fe 100644
--- a/LArCalorimeter/LArG4/LArG4ShowerLib/CMakeLists.txt
+++ b/LArCalorimeter/LArG4/LArG4ShowerLib/CMakeLists.txt
@@ -20,4 +20,5 @@ atlas_add_library( LArG4ShowerLib
                    PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS}
                    LINK_LIBRARIES AthContainers LArG4Code AtlasHepMCLib
                    PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} ${XERCESC_LIBRARIES} ${GEANT4_LIBRARIES} ${CLHEP_LIBRARIES} )
+set_target_properties( LArG4ShowerLib PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
diff --git a/LArCalorimeter/LArG4/LArG4ShowerLibSvc/CMakeLists.txt b/LArCalorimeter/LArG4/LArG4ShowerLibSvc/CMakeLists.txt
index aa46b55a483313acc00b533f0ecf72fe2c6d9fce..21e927a2c0cb56cb027b35fd6c481ee74e0cb957 100644
--- a/LArCalorimeter/LArG4/LArG4ShowerLibSvc/CMakeLists.txt
+++ b/LArCalorimeter/LArG4/LArG4ShowerLibSvc/CMakeLists.txt
@@ -12,6 +12,7 @@ atlas_add_library( LArG4ShowerLibSvcLib
                    INTERFACE
                    PUBLIC_HEADERS LArG4ShowerLibSvc
                    LINK_LIBRARIES GaudiKernel LArG4Code AthenaBaseComps )
+set_target_properties( LArG4ShowerLibSvcLib PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Component(s) in the package:
 atlas_add_library( LArG4ShowerLibSvc
@@ -21,3 +22,4 @@ atlas_add_library( LArG4ShowerLibSvc
                    NO_PUBLIC_HEADERS
                    INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${GEANT4_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} ${GEANT4_LIBRARIES} LArG4ShowerLibSvcLib AthenaKernel LArG4ShowerLib PathResolver )
+set_target_properties( LArG4ShowerLibSvc PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
diff --git a/MagneticField/MagFieldUtils/CMakeLists.txt b/MagneticField/MagFieldUtils/CMakeLists.txt
index 5e0b823313de092b690a52ea3fbf5bd3ce99485c..d7d9b470c3488c4cc0b54041bba7d2a63df0ed33 100644
--- a/MagneticField/MagFieldUtils/CMakeLists.txt
+++ b/MagneticField/MagFieldUtils/CMakeLists.txt
@@ -16,3 +16,4 @@ atlas_add_library( MagFieldUtils
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${GEANT4_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} ${GEANT4_LIBRARIES} ${CLHEP_LIBRARIES} AthenaBaseComps GaudiKernel MagFieldConditions MagFieldInterfaces StoreGateLib )
+set_target_properties( MagFieldUtils PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
diff --git a/MuonSpectrometer/MuonG4/MuonG4SD/CMakeLists.txt b/MuonSpectrometer/MuonG4/MuonG4SD/CMakeLists.txt
index 184834a7e774f7b7e4a5a234256e3cfbad3332d1..180e9772895e15fac0c1f3660bbbf3f1cc2be97d 100644
--- a/MuonSpectrometer/MuonG4/MuonG4SD/CMakeLists.txt
+++ b/MuonSpectrometer/MuonG4/MuonG4SD/CMakeLists.txt
@@ -17,6 +17,7 @@ atlas_add_library( MuonG4SDLib
                    NO_PUBLIC_HEADERS MuonG4SD
                    INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
                    LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} StoreGateLib GeoPrimitives GaudiKernel MuonSimEvent G4AtlasToolsLib MCTruth MuonIdHelpersLib)
+set_target_properties( MuonG4SDLib PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Component(s) in the package:
 atlas_add_library( MuonG4SD
@@ -25,6 +26,7 @@ atlas_add_library( MuonG4SD
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} MuonG4SDLib StoreGateLib GeoPrimitives GaudiKernel MuonSimEvent G4AtlasToolsLib MCTruth )
+set_target_properties( MuonG4SD PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Helper function setting up the tests in the package:
 function( _add_test name )
diff --git a/Projects/AthSimulation/CMakeLists.txt b/Projects/AthSimulation/CMakeLists.txt
index bfe33e4b96213115070e6f78b11581d519dbb9b2..d118eb9c313427e340b36b99cd59933d744f2c48 100644
--- a/Projects/AthSimulation/CMakeLists.txt
+++ b/Projects/AthSimulation/CMakeLists.txt
@@ -18,6 +18,9 @@ set( ATLAS_FLAKE8 flake8_atlas --isolated --select ATL,F,E101,E7,E9,W6
 set( ATLAS_PYTHON_CHECKER ${ATLAS_FLAKE8}
    CACHE STRING "Python checker command to run during Python module compilation" )
 
+# Decide whether to enable LTO for AtlasGeant4 and its OBJECT libs
+option( ATLAS_GEANT4_USE_LTO "Use link-time-optimization in building AtlasGeant4" OFF )
+
 # Find the ATLAS CMake code:
 find_package( AtlasCMake QUIET )
 
diff --git a/Projects/Athena/CMakeLists.txt b/Projects/Athena/CMakeLists.txt
index 62fa2163e09a062fac4f60a10a901e95f1641256..bd8e5f903a35d6119130cdae0ee327d8669a2cec 100644
--- a/Projects/Athena/CMakeLists.txt
+++ b/Projects/Athena/CMakeLists.txt
@@ -70,6 +70,9 @@ set( CxxUtilsSettings_DIR
    "${CMAKE_SOURCE_DIR}/../../Control/CxxUtils/cmake" )
 find_package( CxxUtilsSettings )
 
+# Decide whether to enable LTO for AtlasGeant4 and its OBJECT libs
+option( ATLAS_GEANT4_USE_LTO "Use link-time-optimization in building AtlasGeant4" OFF )
+
 # Find the ATLAS CMake code:
 find_package( AtlasCMake QUIET )
 
diff --git a/Simulation/AtlasGeant4/CMakeLists.txt b/Simulation/AtlasGeant4/CMakeLists.txt
index 37ee2c43cd421f739dc449ee9488ff2f4290e673..4aa34097ee4fea42b3b801058ddc14d4c997cdd9 100644
--- a/Simulation/AtlasGeant4/CMakeLists.txt
+++ b/Simulation/AtlasGeant4/CMakeLists.txt
@@ -155,9 +155,10 @@ atlas_add_library( AtlasGeant4Lib
                    SHARED
                    NO_PUBLIC_HEADERS
                    LINK_LIBRARIES ${AtlasGeant4_TARGET_OBJECTS} )
-
+set_target_properties( AtlasGeant4Lib PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Primary "big" component composed of all library/component OBJECT libs
 atlas_add_component( AtlasGeant4
                      dummy.cc
                      LINK_LIBRARIES "-Wl,--exclude-libs,ALL" ${AtlasGeant4Component_TARGET_OBJECTS} ${AtlasGeant4_TARGET_OBJECTS} )
+set_target_properties( AtlasGeant4 PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
diff --git a/Simulation/G4Atlas/G4AtlasAlg/CMakeLists.txt b/Simulation/G4Atlas/G4AtlasAlg/CMakeLists.txt
index c5d385a0eccd71184bece3ddfc6fc9594f4b688a..4268da90cdceb9ed5aeec1b7226320f631d7f496 100644
--- a/Simulation/G4Atlas/G4AtlasAlg/CMakeLists.txt
+++ b/Simulation/G4Atlas/G4AtlasAlg/CMakeLists.txt
@@ -18,6 +18,7 @@ atlas_add_library( G4AtlasAlgLib
                      INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
 
                      LINK_LIBRARIES ${GEANT4_LIBRARIES} ${EIGEN_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} AtlasHepMCLib AthenaBaseComps AthenaKernel CxxUtils GaudiKernel G4AtlasInterfaces SGTools StoreGateLib EventInfo GeneratorObjects GeoModelInterfaces HepMC_InterfacesLib ISF_InterfacesLib MCTruthBaseLib )
+set_target_properties( G4AtlasAlgLib PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Component(s) in the package:
 atlas_add_library( G4AtlasAlg
@@ -26,6 +27,7 @@ atlas_add_library( G4AtlasAlg
                    NO_PUBLIC_HEADERS
                    INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${GEANT4_LIBRARIES} ${EIGEN_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} AtlasHepMCLib AthenaBaseComps AthenaKernel CxxUtils GaudiKernel G4AtlasInterfaces G4AtlasAlgLib SGTools StoreGateLib EventInfo GeneratorObjects MCTruthBaseLib )
+set_target_properties( G4AtlasAlg PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py
diff --git a/Simulation/G4Atlas/G4AtlasInterfaces/CMakeLists.txt b/Simulation/G4Atlas/G4AtlasInterfaces/CMakeLists.txt
index a83257fe233b62a4407e15f32d118c3f43c808fb..7fcd9fab84baa19188de20b4cbc9c8949a49de75 100644
--- a/Simulation/G4Atlas/G4AtlasInterfaces/CMakeLists.txt
+++ b/Simulation/G4Atlas/G4AtlasInterfaces/CMakeLists.txt
@@ -17,3 +17,4 @@ atlas_add_library( G4AtlasInterfaces
                    DEFINITIONS ${CLHEP_DEFINITIONS}
                    LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} GaudiKernel )
 
+set_target_properties( G4AtlasInterfaces PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
diff --git a/Simulation/G4Atlas/G4AtlasServices/CMakeLists.txt b/Simulation/G4Atlas/G4AtlasServices/CMakeLists.txt
index 9e83e1d7ea0907b657a79a5296c3ababd69f992c..1a9aa3a4cccbc0b5c61abf83bfd23d5a44e4ce8b 100644
--- a/Simulation/G4Atlas/G4AtlasServices/CMakeLists.txt
+++ b/Simulation/G4Atlas/G4AtlasServices/CMakeLists.txt
@@ -21,6 +21,7 @@ atlas_add_library( G4AtlasServices
                    PRIVATE_LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} ${TBB_LIBRARIES} ${ROOT_LIBRARIES}
 		     GaudiKernel AthenaBaseComps 
 		     G4AtlasInterfaces G4AtlasToolsLib G4PhysicsLists PathResolver MagFieldElements MagFieldInterfaces)
+set_target_properties( G4AtlasServices PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 #test G4AtlasFieldServices
 atlas_add_test( G4AtlasFieldServices_test
diff --git a/Simulation/G4Atlas/G4AtlasTests/CMakeLists.txt b/Simulation/G4Atlas/G4AtlasTests/CMakeLists.txt
index 9872e4aa7372b5b0da0c87bfe463ac654cc7325f..364b5930619ee93dd892cb1ba3d3274766f9c755 100644
--- a/Simulation/G4Atlas/G4AtlasTests/CMakeLists.txt
+++ b/Simulation/G4Atlas/G4AtlasTests/CMakeLists.txt
@@ -15,6 +15,7 @@ atlas_add_library( G4AtlasTests
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}  ${GEANT4_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} AtlasHepMCLib ${GEANT4_LIBRARIES} AthenaBaseComps GaudiKernel CaloDetDescrLib CaloIdentifier CaloSimEvent AthenaKernel StoreGateLib GeoAdaptors GeoPrimitives Identifier xAODEventInfo ALFA_SimEv LUCID_SimEvent ZDC_SimEvent ZdcIdentifier GeneratorObjects InDetSimEvent LArSimEvent MuonReadoutGeometry MuonIdHelpersLib MuonSimEvent McParticleEvent G4AtlasToolsLib MCTruth HitManagement TileDetDescr TileIdentifier TileSimEvent TrackRecordLib )
+set_target_properties( G4AtlasTests PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/Simulation/G4Atlas/G4AtlasTools/CMakeLists.txt b/Simulation/G4Atlas/G4AtlasTools/CMakeLists.txt
index 0ad896b599e611293aca1c3c975b43cbf15389b8..3c392c7bab8ba100f162c8bba41758ef70319d2d 100644
--- a/Simulation/G4Atlas/G4AtlasTools/CMakeLists.txt
+++ b/Simulation/G4Atlas/G4AtlasTools/CMakeLists.txt
@@ -22,12 +22,15 @@ atlas_add_library( G4AtlasToolsLib
                    PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS}
                    LINK_LIBRARIES ${XERCESC_LIBRARIES} ${GEANT4_LIBRARIES} ${TBB_LIBRARIES} AthenaBaseComps G4AtlasInterfaces SubDetectorEnvelopesLib
                    PRIVATE_LINK_LIBRARIES ${CLHEP_LIBRARIES} CxxUtils GaudiKernel )
+set_target_properties( G4AtlasToolsLib PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
+
 
 atlas_add_library( G4AtlasTools
                    src/components/*.cxx
                    OBJECT
                    NO_PUBLIC_HEADERS
                    PRIVATE_LINK_LIBRARIES G4AtlasToolsLib)
+set_target_properties( G4AtlasTools PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 #testing just the simulation parts, no forward detectors or region
 atlas_add_test( G4GeometryToolConfig_Simtest
diff --git a/Simulation/G4Extensions/Charginos/CMakeLists.txt b/Simulation/G4Extensions/Charginos/CMakeLists.txt
index 757c12bfa6fb1770416687780070c4bfac782d15..6d1a2339b057fdb5f886b896a377e9bea5ea261e 100644
--- a/Simulation/G4Extensions/Charginos/CMakeLists.txt
+++ b/Simulation/G4Extensions/Charginos/CMakeLists.txt
@@ -18,6 +18,7 @@ atlas_add_library( Charginos
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} GaudiKernel AthenaBaseComps G4AtlasInterfaces CxxUtils)
+set_target_properties( Charginos PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/Simulation/G4Extensions/ExtraParticles/CMakeLists.txt b/Simulation/G4Extensions/ExtraParticles/CMakeLists.txt
index 4b3512703a2a1195c33a6f79acbc2cb8236790aa..80e7717ea040d7fed5d4f79abf77f5d72b90c024 100644
--- a/Simulation/G4Extensions/ExtraParticles/CMakeLists.txt
+++ b/Simulation/G4Extensions/ExtraParticles/CMakeLists.txt
@@ -18,6 +18,7 @@ atlas_add_library( ExtraParticles
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} GaudiKernel AthenaBaseComps G4AtlasInterfaces )
+set_target_properties( ExtraParticles PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/Simulation/G4Extensions/G4CosmicFilter/CMakeLists.txt b/Simulation/G4Extensions/G4CosmicFilter/CMakeLists.txt
index 02efc14bafc21f9c029f19ee42bec47c8e6a2ed4..b4e41db4b200ebd826b30a3901124abb279a7da5 100644
--- a/Simulation/G4Extensions/G4CosmicFilter/CMakeLists.txt
+++ b/Simulation/G4Extensions/G4CosmicFilter/CMakeLists.txt
@@ -18,6 +18,7 @@ atlas_add_library( G4CosmicFilter
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} AthenaBaseComps StoreGateLib GaudiKernel G4AtlasInterfaces G4AtlasToolsLib MCTruth TrackRecordLib )
+set_target_properties( G4CosmicFilter PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/Simulation/G4Extensions/G4ExternalDecay/CMakeLists.txt b/Simulation/G4Extensions/G4ExternalDecay/CMakeLists.txt
index ee19750341133771c69185271519bae2601ea920..a9974e8abccc092ddb75acaa90ceaf768b453831 100644
--- a/Simulation/G4Extensions/G4ExternalDecay/CMakeLists.txt
+++ b/Simulation/G4Extensions/G4ExternalDecay/CMakeLists.txt
@@ -26,3 +26,4 @@ atlas_add_library( G4ExternalDecay
                    DEFINITIONS ${CLHEP_DEFINITIONS}
                    LINK_LIBRARIES ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} ${PYTHIA8_LIBRARIES} ${LHAPDF_LIBRARIES} ${GEANT4_LIBRARIES} Pythia8_iLib ${extra_libs}
                    PRIVATE_LINK_LIBRARIES AtlasHepMCLib )
+set_target_properties( G4ExternalDecay PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
diff --git a/Simulation/G4Extensions/G4ExtraProcesses/CMakeLists.txt b/Simulation/G4Extensions/G4ExtraProcesses/CMakeLists.txt
index 486955cdb9e98d1b613183c211a76e033879a9a0..f947de29bfe45cfcfa9380e0f203d07a95c6174d 100644
--- a/Simulation/G4Extensions/G4ExtraProcesses/CMakeLists.txt
+++ b/Simulation/G4Extensions/G4ExtraProcesses/CMakeLists.txt
@@ -16,6 +16,7 @@ atlas_add_library( G4ExtraProcesses
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${GEANT4_LIBRARIES} GaudiKernel AthenaBaseComps G4AtlasInterfaces )
+set_target_properties( G4ExtraProcesses PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/Simulation/G4Extensions/G4HitFilter/CMakeLists.txt b/Simulation/G4Extensions/G4HitFilter/CMakeLists.txt
index f57b80af9a69586e68db420c532228c2b5e58f69..74a4ef4d5f93e9297b4f89db38ea7b2b27cc98b9 100644
--- a/Simulation/G4Extensions/G4HitFilter/CMakeLists.txt
+++ b/Simulation/G4Extensions/G4HitFilter/CMakeLists.txt
@@ -18,3 +18,4 @@ atlas_add_library( G4HitFilter
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} GaudiKernel CaloSimEvent AthenaBaseComps StoreGateLib LUCID_SimEvent InDetSimEvent LArSimEvent MuonSimEvent G4AtlasInterfaces G4AtlasToolsLib TileSimEvent )
+set_target_properties( G4HitFilter PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
diff --git a/Simulation/G4Extensions/G4ScoringProcess/CMakeLists.txt b/Simulation/G4Extensions/G4ScoringProcess/CMakeLists.txt
index 8cc274167a907eac05556bd960636c94f8bcd090..08d4383442c98ad68da4f4164e18ed7cae5fc3a2 100644
--- a/Simulation/G4Extensions/G4ScoringProcess/CMakeLists.txt
+++ b/Simulation/G4Extensions/G4ScoringProcess/CMakeLists.txt
@@ -18,6 +18,7 @@ atlas_add_library( G4ScoringProcess
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} GaudiKernel AthenaBaseComps G4AtlasInterfaces )
+set_target_properties( G4ScoringProcess PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/Simulation/G4Extensions/Gauginos/CMakeLists.txt b/Simulation/G4Extensions/Gauginos/CMakeLists.txt
index 8b8248e3cbcc7eb082af9b5889b171f1772f9d34..8a30ccf720b86266d5fcb697103e460306deda54 100644
--- a/Simulation/G4Extensions/Gauginos/CMakeLists.txt
+++ b/Simulation/G4Extensions/Gauginos/CMakeLists.txt
@@ -18,6 +18,7 @@ atlas_add_library( Gauginos
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} AthenaBaseComps GaudiKernel G4AtlasInterfaces CxxUtils )
+set_target_properties( Gauginos PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/Simulation/G4Extensions/Monopole/CMakeLists.txt b/Simulation/G4Extensions/Monopole/CMakeLists.txt
index d079e817c6785d7acb488fe961ce6cab75ad45c4..6f72ffbb795b794e64464c32efca5281e2e6035f 100644
--- a/Simulation/G4Extensions/Monopole/CMakeLists.txt
+++ b/Simulation/G4Extensions/Monopole/CMakeLists.txt
@@ -15,6 +15,7 @@ atlas_add_library( Monopole
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${GEANT4_LIBRARIES} ${CLHEP_LIBRARIES} AthenaBaseComps CxxUtils G4AtlasInterfaces )
+set_target_properties( Monopole PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/Simulation/G4Extensions/Quirks/CMakeLists.txt b/Simulation/G4Extensions/Quirks/CMakeLists.txt
index 6cfc53e828ad389365cada5f384a3ca32f32566d..6f37e251ab95c9a1fc8d9d9cd55efa48058423aa 100644
--- a/Simulation/G4Extensions/Quirks/CMakeLists.txt
+++ b/Simulation/G4Extensions/Quirks/CMakeLists.txt
@@ -16,6 +16,7 @@ atlas_add_library( Quirks
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} CxxUtils GaudiKernel AthenaBaseComps G4AtlasInterfaces G4AtlasToolsLib )
+set_target_properties( Quirks PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/Simulation/G4Extensions/RHadrons/CMakeLists.txt b/Simulation/G4Extensions/RHadrons/CMakeLists.txt
index 20cfe5df3f96814704c8cea8081a326df505131a..426231dee5b52494e5fb10f929780d896c85dead 100644
--- a/Simulation/G4Extensions/RHadrons/CMakeLists.txt
+++ b/Simulation/G4Extensions/RHadrons/CMakeLists.txt
@@ -17,6 +17,7 @@ if( NOT GENERATIONBASE )
                        NO_PUBLIC_HEADERS
                        PRIVATE_INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
                        PRIVATE_LINK_LIBRARIES ${GEANT4_LIBRARIES} ${CLHEP_LIBRARIES} GaudiKernel AthenaBaseComps CxxUtils G4AtlasInterfaces G4AtlasToolsLib G4ExternalDecay SimHelpers TruthUtils)
+    set_target_properties( RHadrons PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 endif()
 
 # Install files from the package:
diff --git a/Simulation/G4Extensions/Sleptons/CMakeLists.txt b/Simulation/G4Extensions/Sleptons/CMakeLists.txt
index 27b2b48bdfc9c927c26746484e1e3179fa6fdfc7..223d14ef4884b99466fcd1ec8a004b9abc563a7c 100644
--- a/Simulation/G4Extensions/Sleptons/CMakeLists.txt
+++ b/Simulation/G4Extensions/Sleptons/CMakeLists.txt
@@ -18,6 +18,7 @@ atlas_add_library( Sleptons
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} GaudiKernel AthenaBaseComps G4AtlasInterfaces CxxUtils )
+set_target_properties( Sleptons PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/Simulation/G4Sim/G4HiveEx/CMakeLists.txt b/Simulation/G4Sim/G4HiveEx/CMakeLists.txt
index bdd89ec17de503d3ee4b79184040cfa86ea68d66..20e8cb3354491a47c3407c79c306f93d60d9ccd1 100644
--- a/Simulation/G4Sim/G4HiveEx/CMakeLists.txt
+++ b/Simulation/G4Sim/G4HiveEx/CMakeLists.txt
@@ -15,3 +15,4 @@ atlas_add_library( G4HiveEx
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${GEANT4_LIBRARIES} ${CLHEP_LIBRARIES} AthenaKernel AthenaBaseComps CxxUtils GeneratorObjects )
+set_target_properties( G4HiveEx PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
diff --git a/Simulation/G4Sim/MCTruth/CMakeLists.txt b/Simulation/G4Sim/MCTruth/CMakeLists.txt
index bc80ad0670746bcc980b3c67d81cb90ba9c80bcf..3585d2984d148715558cff6558fc87a13cc4fb33 100644
--- a/Simulation/G4Sim/MCTruth/CMakeLists.txt
+++ b/Simulation/G4Sim/MCTruth/CMakeLists.txt
@@ -19,3 +19,4 @@ atlas_add_library( MCTruth
                    DEFINITIONS ${CLHEP_DEFINITIONS}
                    LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} AtlasHepMCLib TruthUtils AthenaKernel GeneratorObjects
                    PRIVATE_LINK_LIBRARIES ISF_Event SimHelpers )
+set_target_properties( MCTruth PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
diff --git a/Simulation/G4Sim/MCTruthBase/CMakeLists.txt b/Simulation/G4Sim/MCTruthBase/CMakeLists.txt
index 34943ed4bd794267acd6f0d5408db9fe961a539e..11b4f77974434550605aad168d7ac225fc40557c 100644
--- a/Simulation/G4Sim/MCTruthBase/CMakeLists.txt
+++ b/Simulation/G4Sim/MCTruthBase/CMakeLists.txt
@@ -20,12 +20,14 @@ atlas_add_library( MCTruthBaseLib
                    G4AtlasInterfaces MCTruth SimHelpers ISF_InterfacesLib
                    AtlasDetDescr ISF_Geant4Event TruthUtils
                  )
+set_target_properties( MCTruthBaseLib PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 atlas_add_library(MCTruthBase
                   src/components/*.cxx
                   OBJECT
                   NO_PUBLIC_HEADERS
                   PRIVATE_LINK_LIBRARIES MCTruthBaseLib)
+set_target_properties( MCTruthBase PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/Simulation/G4Sim/SimHelpers/CMakeLists.txt b/Simulation/G4Sim/SimHelpers/CMakeLists.txt
index b1bf5620e6a9448857f0a24e85da543b1d542d64..edda86dcd52c49e492be4e578e2d22d74d044f44 100644
--- a/Simulation/G4Sim/SimHelpers/CMakeLists.txt
+++ b/Simulation/G4Sim/SimHelpers/CMakeLists.txt
@@ -19,3 +19,4 @@ atlas_add_library( SimHelpers
                    DEFINITIONS ${CLHEP_DEFINITIONS}
                    LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} GaudiKernel StoreGateLib )
 
+set_target_properties( SimHelpers PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
diff --git a/Simulation/G4Utilities/G4DebuggingTools/CMakeLists.txt b/Simulation/G4Utilities/G4DebuggingTools/CMakeLists.txt
index bbfa7299072374bcd83899a132ea40d92a76f240..970d68b4cdf4808b5d8cae5095c3012a38afc0e5 100644
--- a/Simulation/G4Utilities/G4DebuggingTools/CMakeLists.txt
+++ b/Simulation/G4Utilities/G4DebuggingTools/CMakeLists.txt
@@ -18,6 +18,7 @@ atlas_add_library( G4DebuggingHelperLib
                    PUBLIC_HEADERS G4DebuggingTools
                    INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
                    LINK_LIBRARIES ${GEANT4_LIBRARIES} ${CLHEP_LIBRARIES} )
+set_target_properties( G4DebuggingHelperLib PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 atlas_add_library( G4DebuggingTools
                    src/*.cxx
@@ -28,6 +29,7 @@ atlas_add_library( G4DebuggingTools
                    PRIVATE_LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} ${TBB_LIBRARIES} 
                                           GaudiKernel AthenaBaseComps StoreGateLib xAODEventInfo G4AtlasInterfaces GeoPrimitives
                                           G4AtlasToolsLib MCTruth MCTruthBaseLib SimHelpers G4DebuggingHelperLib )
+set_target_properties( G4DebuggingTools PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/Simulation/G4Utilities/G4PhysicsLists/CMakeLists.txt b/Simulation/G4Utilities/G4PhysicsLists/CMakeLists.txt
index 3b27aac15cdd3c60f9d16cef0ee280925cb9eb64..d549dd7a8fbacd255d27140aeceaec8c8e70afe8 100644
--- a/Simulation/G4Utilities/G4PhysicsLists/CMakeLists.txt
+++ b/Simulation/G4Utilities/G4PhysicsLists/CMakeLists.txt
@@ -21,6 +21,7 @@ atlas_add_library( G4PhysicsLists
   ${CMAKE_CURRENT_SOURCE_DIR}/src/hadronicVariations
   LINK_LIBRARIES ${GEANT4_LIBRARIES}
   PRIVATE_LINK_LIBRARIES ${CLHEP_LIBRARIES} GaudiKernel )
+set_target_properties( G4PhysicsLists PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_runtime( share/biasValues.txt )
diff --git a/Simulation/G4Utilities/G4ProfilingTools/CMakeLists.txt b/Simulation/G4Utilities/G4ProfilingTools/CMakeLists.txt
index 689c434ab3aea8c4fa7726ccb44565b156452330..e74f99275d5c6b52211eb40f98d2916b4f44b366 100644
--- a/Simulation/G4Utilities/G4ProfilingTools/CMakeLists.txt
+++ b/Simulation/G4Utilities/G4ProfilingTools/CMakeLists.txt
@@ -15,9 +15,11 @@ atlas_add_library( G4ProfilingToolsLib
                    LINK_LIBRARIES G4AtlasToolsLib
                    PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${GEANT4_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} ${GEANT4_LIBRARIES} AthenaBaseComps GaudiKernel G4AtlasToolsLib )
+set_target_properties( G4ProfilingToolsLib PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 atlas_add_library( G4ProfilingTools
                    src/components/*.cxx
                    OBJECT
                    NO_PUBLIC_HEADERS
                    PRIVATE_LINK_LIBRARIES G4ProfilingToolsLib )
+set_target_properties( G4ProfilingTools PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
diff --git a/Simulation/G4Utilities/G4StepLimitation/CMakeLists.txt b/Simulation/G4Utilities/G4StepLimitation/CMakeLists.txt
index 5f5888f85609b30eacf4578dc05789a13b382ec2..f5a29234ffce0bd45b9e33b2cf198e3771937fa2 100644
--- a/Simulation/G4Utilities/G4StepLimitation/CMakeLists.txt
+++ b/Simulation/G4Utilities/G4StepLimitation/CMakeLists.txt
@@ -18,6 +18,7 @@ atlas_add_library( G4StepLimitation
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} GaudiKernel AthenaBaseComps G4AtlasInterfaces )
+set_target_properties( G4StepLimitation PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/Simulation/G4Utilities/G4UserActions/CMakeLists.txt b/Simulation/G4Utilities/G4UserActions/CMakeLists.txt
index 831a0d028085fe21a3ac140277426d67cbec4872..198f614866267fb24ba79c1a36ea8824c034bdf2 100644
--- a/Simulation/G4Utilities/G4UserActions/CMakeLists.txt
+++ b/Simulation/G4Utilities/G4UserActions/CMakeLists.txt
@@ -20,6 +20,7 @@ atlas_add_library( G4UserActions
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${GEANT4_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${TBB_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} ${XERCESC_LIBRARIES} ${GEANT4_LIBRARIES} ${CLHEP_LIBRARIES} ${TBB_LIBRARIES} AthenaBaseComps AthenaKernel StoreGateLib GaudiKernel G4AtlasInterfaces G4AtlasToolsLib EventInfo InDetSimEvent MuonSimEvent MCTruth MCTruthBaseLib SimHelpers TrackWriteFastSimLib PathResolver G4DebuggingHelperLib)
+set_target_properties( G4UserActions PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/Simulation/G4Utilities/Geo2G4/CMakeLists.txt b/Simulation/G4Utilities/Geo2G4/CMakeLists.txt
index 69d4900922d409fcbdadb3299e598426ee424f50..b3b21d94e97dd87a1580acb3f2ce7ffc1c59839a 100644
--- a/Simulation/G4Utilities/Geo2G4/CMakeLists.txt
+++ b/Simulation/G4Utilities/Geo2G4/CMakeLists.txt
@@ -20,12 +20,14 @@ atlas_add_library( Geo2G4Lib
                    PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS}
                    LINK_LIBRARIES ${GEANT4_LIBRARIES} ${GEOMODEL_LIBRARIES} ${ROOT_LIBRARIES} AthenaBaseComps GaudiKernel G4AtlasInterfaces G4AtlasToolsLib GeoModelUtilities GeoPrimitives
                    PRIVATE_LINK_LIBRARIES ${Boost_LIBRARIES} ${CLHEP_LIBRARIES} CxxUtils GeoSpecialShapes SimHelpers GeoMaterial2G4 AthenaKernel GeoModelInterfaces StoreGateLib )
+set_target_properties( Geo2G4Lib PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 atlas_add_library( Geo2G4
                    src/components/*.cxx
                    OBJECT
                    NO_PUBLIC_HEADERS
                    PRIVATE_LINK_LIBRARIES Geo2G4Lib ) 
+set_target_properties( Geo2G4 PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/Simulation/G4Utilities/GeoMaterial2G4/CMakeLists.txt b/Simulation/G4Utilities/GeoMaterial2G4/CMakeLists.txt
index c2d9c8fd892fa24e8f64a866f4c57fcc16b8b4a3..7ca779f25071f0f3839f6f707bbdbd3f0cfa1b30 100644
--- a/Simulation/G4Utilities/GeoMaterial2G4/CMakeLists.txt
+++ b/Simulation/G4Utilities/GeoMaterial2G4/CMakeLists.txt
@@ -15,3 +15,4 @@ atlas_add_library( GeoMaterial2G4
                    INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS}
                    LINK_LIBRARIES ${GEANT4_LIBRARIES} ${GEOMODEL_LIBRARIES} AthenaBaseComps
                    PRIVATE_LINK_LIBRARIES CxxUtils GeoModelUtilities )
+set_target_properties( GeoMaterial2G4 PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
diff --git a/Simulation/G4Utilities/TrackWriteFastSim/CMakeLists.txt b/Simulation/G4Utilities/TrackWriteFastSim/CMakeLists.txt
index 506efb8a5d62ce74d2f31b7f20d1a7fc2c989c60..971454dded48da42f4cf276120346b1330b83a54 100644
--- a/Simulation/G4Utilities/TrackWriteFastSim/CMakeLists.txt
+++ b/Simulation/G4Utilities/TrackWriteFastSim/CMakeLists.txt
@@ -20,12 +20,14 @@ atlas_add_library( TrackWriteFastSimLib
                    PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS}
                    LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} StoreGateLib G4AtlasToolsLib TrackRecordLib
                    PRIVATE_LINK_LIBRARIES ${CLHEP_LIBRARIES} GaudiKernel G4AtlasInterfaces MCTruth )
+set_target_properties( TrackWriteFastSimLib PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 atlas_add_library(TrackWriteFastSim
                   src/components/*.cxx
                   OBJECT
                   NO_PUBLIC_HEADERS
                   PRIVATE_LINK_LIBRARIES TrackWriteFastSimLib )
+set_target_properties( TrackWriteFastSim PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/Simulation/ISF/ISF_Core/ISF_Services/CMakeLists.txt b/Simulation/ISF/ISF_Core/ISF_Services/CMakeLists.txt
index 0f7585e3b377bf27483c3415ff87529b40148fba..fe3fa661fa801be2b5411646c229bd35c2bc5d16 100644
--- a/Simulation/ISF/ISF_Core/ISF_Services/CMakeLists.txt
+++ b/Simulation/ISF/ISF_Core/ISF_Services/CMakeLists.txt
@@ -24,6 +24,7 @@ atlas_add_library( ISF_Services
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${GEANT4_INCLUDE_DIRS}  ${CLHEP_INCLUDE_DIRS} ${HEPPDT_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} ${GEANT4_LIBRARIES} AtlasHepMCLib ${CLHEP_LIBRARIES} ${HEPPDT_LIBRARIES} GaudiKernel BarcodeInterfacesLib CaloIdentifier CaloSimEvent AthenaBaseComps StoreGateLib SubDetectorEnvelopesLib AtlasDetDescr GeneratorObjects InDetSimEvent MuonSimEvent G4AtlasInterfaces MCTruth SimHelpers ISF_Event ISF_HepMC_Interfaces ISF_InterfacesLib TileSimEvent PmbCxxUtils TruthUtils )
+set_target_properties( ISF_Services PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Tests in the package:
 atlas_add_test( InputConverter_test
diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/CMakeLists.txt b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/CMakeLists.txt
index 1d053da0ff249c5a171cc189212958e09c52a158..0c60fc6d39743d2046cd3a4cd888b2683580c1f9 100644
--- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/CMakeLists.txt
+++ b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/CMakeLists.txt
@@ -33,6 +33,7 @@ atlas_add_library( ISF_FastCaloSimParametrizationLib
                    PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS}
                    LINK_LIBRARIES ${CLHEP_LIBRARIES} ${HEPPDT_LIBRARIES} ${ROOT_LIBRARIES} AthenaBaseComps AthenaKernel AtlasHepMCLib BarcodeEventLib CaloDetDescrLib CaloInterfaceLib CxxUtils GaudiKernel ISF_FastCaloSimEvent ISF_InterfacesLib LArElecCalib LArReadoutGeometry StoreGateLib TrkEventPrimitives TrkExInterfaces TrkParameters
                    PRIVATE_LINK_LIBRARIES CaloGeoHelpers xAODCaloEvent G4AtlasToolsLib MCTruth)
+set_target_properties( ISF_FastCaloSimParametrizationLib PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 atlas_add_library( ISF_FastCaloSimParametrization
                    src/*.cxx
@@ -41,6 +42,7 @@ atlas_add_library( ISF_FastCaloSimParametrization
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} ${GEANT4_INCLUDE_DIRS} ${HEPPDT_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${CLHEP_LIBRARIES} ${GEANT4_LIBRARIES} ${HEPPDT_LIBRARIES} ${ROOT_LIBRARIES} AthenaBaseComps AthenaPoolUtilities AtlasHepMCLib CaloDetDescrLib CaloEvent CaloGeoHelpers CaloIdentifier CaloDetDescrUtils CxxUtils GaudiKernel GeneratorObjects GeoModelInterfaces GeoPrimitives ISF_Event ISF_FastCaloSimEvent ISF_FastCaloSimInterfaces ISF_FastCaloSimParametrizationLib ISF_InterfacesLib LArSimEvent NavFourMom StoreGateLib TileConditionsLib TileDetDescr TileSimEvent TrackRecordLib TrkExInterfaces TrkGeometry TrkMaterialOnTrack TrkParameters TrkSurfaces xAODCaloEvent G4AtlasToolsLib MCTruth)
+set_target_properties( ISF_FastCaloSimParametrization PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Code in this file makes heavy use of eigen and runs orders of magnitude
 # more slowly without optimization.  So force this to be optimized even
diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/CMakeLists.txt b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/CMakeLists.txt
index 8309abddd495b31bd011445bdf85afc221fb25e5..0fb9a6448617be0b077f96eab08ea894c61b6156 100644
--- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/CMakeLists.txt
+++ b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/CMakeLists.txt
@@ -19,6 +19,7 @@ atlas_add_library( ISF_FastCaloSimSD
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${GEANT4_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} ${XERCESC_LIBRARIES} ${GEANT4_LIBRARIES} ${CLHEP_LIBRARIES} StoreGateLib GaudiKernel G4AtlasInterfaces G4AtlasToolsLib CaloDetDescrLib CaloIdentifier GeneratorObjects LArG4Code ISF_FastCaloSimEvent Identifier TileG4InterfacesLib )
+set_target_properties( ISF_FastCaloSimSD PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/CMakeLists.txt b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/CMakeLists.txt
index ae5299b990183a930c2963e39dedba5f8608b54d..3027265ed91266fc1000c17f3c125d3d431a43ff 100644
--- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/CMakeLists.txt
+++ b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/CMakeLists.txt
@@ -30,6 +30,7 @@ atlas_add_library( ISF_FastCaloSimServices
   GeneratorObjects ISF_Event ISF_FastCaloSimEvent
   ISF_FastCaloSimInterfaces ISF_FastCaloSimParametrizationLib PathResolver
   ${_linkLibraries} )
+set_target_properties( ISF_FastCaloSimServices PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsG4/CMakeLists.txt b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsG4/CMakeLists.txt
index b14d9198227ede322fe429cd23d53982afac94c0..cbf7c12ef386d74ae6804a24434d4901e7a6f42b 100644
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsG4/CMakeLists.txt
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsG4/CMakeLists.txt
@@ -16,3 +16,4 @@ atlas_add_library( ISF_FatrasToolsG4
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}  ${GEANT4_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES}  ${CLHEP_LIBRARIES} AtlasHepMCLib ${GEANT4_LIBRARIES} AthenaBaseComps AthenaKernel BarcodeEventLib CxxUtils GaudiKernel ISF_Event ISF_FatrasInterfaces TrkEventPrimitives StoreGateLib ISF_InterfacesLib ISF_Geant4ToolsLib TrkGeometry TruthUtils )
+set_target_properties( ISF_FatrasToolsG4 PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
diff --git a/Simulation/ISF/ISF_Geant4/ISF_Geant4CommonServices/CMakeLists.txt b/Simulation/ISF/ISF_Geant4/ISF_Geant4CommonServices/CMakeLists.txt
index c5f8c9e6a3f2d05418194791a57f3effa62d2cc0..053982734291de944a97f228b83a1153bcbfde4f 100644
--- a/Simulation/ISF/ISF_Geant4/ISF_Geant4CommonServices/CMakeLists.txt
+++ b/Simulation/ISF/ISF_Geant4/ISF_Geant4CommonServices/CMakeLists.txt
@@ -18,3 +18,4 @@ atlas_add_library( ISF_Geant4CommonServices
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} GaudiKernel AthenaBaseComps AtlasDetDescr ISF_Event ISF_InterfacesLib SubDetectorEnvelopesLib )
+set_target_properties( ISF_Geant4CommonServices PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
diff --git a/Simulation/ISF/ISF_Geant4/ISF_Geant4CommonTools/CMakeLists.txt b/Simulation/ISF/ISF_Geant4/ISF_Geant4CommonTools/CMakeLists.txt
index 75605b721856dfec076b8d0de3f2f7c5c77fd194..65dc22fe4e47ff1b1f101275f3c61e0949bdc228 100644
--- a/Simulation/ISF/ISF_Geant4/ISF_Geant4CommonTools/CMakeLists.txt
+++ b/Simulation/ISF/ISF_Geant4/ISF_Geant4CommonTools/CMakeLists.txt
@@ -12,6 +12,7 @@ atlas_add_library( ISF_Geant4CommonTools
                    src/*.cxx
                    src/components/*.cxx
                    PRIVATE_LINK_LIBRARIES GaudiKernel AthenaBaseComps ISF_Event ISF_InterfacesLib G4AtlasToolsLib )
+set_target_properties( ISF_Geant4CommonTools PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/Simulation/ISF/ISF_Geant4/ISF_Geant4Event/CMakeLists.txt b/Simulation/ISF/ISF_Geant4/ISF_Geant4Event/CMakeLists.txt
index fe762aee538ec1329d90bc2efef816f1a02dbdff..0c9675aff09823dc4d3d81e15624c1b96bed27ca 100644
--- a/Simulation/ISF/ISF_Geant4/ISF_Geant4Event/CMakeLists.txt
+++ b/Simulation/ISF/ISF_Geant4/ISF_Geant4Event/CMakeLists.txt
@@ -25,6 +25,7 @@ atlas_add_library( ISF_Geant4Event
                    ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} AtlasHepMCLib
                    ${GEANT4_LIBRARIES} ${EIGEN_LIBRARIES} ISF_Event
                    ISF_InterfacesLib SimHelpers GeoPrimitives MCTruth TruthUtils )
+set_target_properties( ISF_Geant4Event PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 #atlas_add_test(SOURCES
 #               INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS}
diff --git a/Simulation/ISF/ISF_Geant4/ISF_Geant4Services/CMakeLists.txt b/Simulation/ISF/ISF_Geant4/ISF_Geant4Services/CMakeLists.txt
index 1a0172662f975d22ad2feb320a2af2950a3c348c..42e8ae21ca25d0cddcc49da0a14899549d509899 100644
--- a/Simulation/ISF/ISF_Geant4/ISF_Geant4Services/CMakeLists.txt
+++ b/Simulation/ISF/ISF_Geant4/ISF_Geant4Services/CMakeLists.txt
@@ -18,6 +18,7 @@ atlas_add_library( ISF_Geant4Services
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} GaudiKernel AthenaBaseComps StoreGateLib G4AtlasInterfaces ISF_Event ISF_InterfacesLib )
+set_target_properties( ISF_Geant4Services PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/CMakeLists.txt b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/CMakeLists.txt
index 9ce216b16fa65ea51132c2b6ebddd4c8d8636c96..20387b78c9e8cf7bffa9162092b770a2e436f7d2 100644
--- a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/CMakeLists.txt
+++ b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/CMakeLists.txt
@@ -14,6 +14,7 @@ atlas_add_library( ISF_Geant4ToolsLib
                    INTERFACE
                    PUBLIC_HEADERS ISF_Geant4Tools
                    LINK_LIBRARIES CxxUtils GaudiKernel G4AtlasAlgLib )
+set_target_properties( ISF_Geant4ToolsLib PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Component(s) in the package:
 atlas_add_library( ISF_Geant4Tools
@@ -23,6 +24,7 @@ atlas_add_library( ISF_Geant4Tools
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${GEANT4_INCLUDE_DIRS} ${TBB_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} AtlasHepMCLib ${GEANT4_LIBRARIES} ${TBB_LIBRARIES} AthenaKernel GaudiKernel G4AtlasInterfaces AthenaBaseComps StoreGateLib AtlasDetDescr GeneratorObjects G4AtlasToolsLib G4AtlasAlgLib MCTruth ISF_Event ISF_InterfacesLib ISF_Geant4Event ISF_Geant4ToolsLib )
+set_target_properties( ISF_Geant4Tools PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/TestBeam/TBDetDescrCnv/CMakeLists.txt b/TestBeam/TBDetDescrCnv/CMakeLists.txt
index 7898252610097fe9725eec6034a91714c8b457e2..0eaa4fedeadfbded22d394347dcce3bb78be52b1 100644
--- a/TestBeam/TBDetDescrCnv/CMakeLists.txt
+++ b/TestBeam/TBDetDescrCnv/CMakeLists.txt
@@ -14,6 +14,7 @@ atlas_add_library( TBDetDescrCnv
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${GEANT4_LIBRARIES} ${CLHEP_LIBRARIES} DetDescrCnvSvcLib GaudiKernel StoreGateLib GeoPrimitives TBDetDescr AthenaKernel )
+set_target_properties( TBDetDescrCnv PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_joboptions( share/*.py )
diff --git a/TileCalorimeter/TileG4/TileAncillary/CombinedScintillator/CMakeLists.txt b/TileCalorimeter/TileG4/TileAncillary/CombinedScintillator/CMakeLists.txt
index 5d9c7dc13155a7d44c06869e163a4827c87b6fd8..35200501be8529a7f75f45f59a1622b99ad3e399 100644
--- a/TileCalorimeter/TileG4/TileAncillary/CombinedScintillator/CMakeLists.txt
+++ b/TileCalorimeter/TileG4/TileAncillary/CombinedScintillator/CMakeLists.txt
@@ -21,6 +21,7 @@ atlas_add_library( CombinedScintillator
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} ${GEOMODEL_LIBRARIES} CaloIdentifier StoreGateLib GaudiKernel G4AtlasToolsLib GeoMaterial2G4 GeoModelInterfaces TileSimEvent )
+set_target_properties( CombinedScintillator PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_runtime( share/combinedscintillator.dtd share/combinedscintillator.xml )
diff --git a/TileCalorimeter/TileG4/TileAncillary/DeadMaterial/CMakeLists.txt b/TileCalorimeter/TileG4/TileAncillary/DeadMaterial/CMakeLists.txt
index da4db2268e61de2c7fc81755682f78f6529e5056..8c0a71b66eb3e4ebe2d9986bc2b85effd2bea843 100644
--- a/TileCalorimeter/TileG4/TileAncillary/DeadMaterial/CMakeLists.txt
+++ b/TileCalorimeter/TileG4/TileAncillary/DeadMaterial/CMakeLists.txt
@@ -21,6 +21,7 @@ atlas_add_library( DeadMaterial
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} ${GEOMODEL_LIBRARIES} StoreGateLib GaudiKernel G4AtlasToolsLib GeoMaterial2G4 GeoModelInterfaces )
+set_target_properties( DeadMaterial PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_runtime( share/deadmaterial.dtd share/deadmaterial.xml )
diff --git a/TileCalorimeter/TileG4/TileAncillary/LarCrate/CMakeLists.txt b/TileCalorimeter/TileG4/TileAncillary/LarCrate/CMakeLists.txt
index 14afbd359b59fe7f7914f63f9605861477cc1e5f..e670527a2d5f6adea20335d0f12511e57577bc8f 100644
--- a/TileCalorimeter/TileG4/TileAncillary/LarCrate/CMakeLists.txt
+++ b/TileCalorimeter/TileG4/TileAncillary/LarCrate/CMakeLists.txt
@@ -21,6 +21,7 @@ atlas_add_library( LarCrate
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} ${GEOMODEL_LIBRARIES} StoreGateLib GaudiKernel G4AtlasToolsLib GeoMaterial2G4 GeoModelInterfaces )
+set_target_properties( LarCrate PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_runtime( share/larcrate.dtd share/larcrate.xml share/material.dtd share/Tile_materials.xml share/LArCrate_materials.xml )
diff --git a/TileCalorimeter/TileG4/TileAncillary/MinBiasScintillator/CMakeLists.txt b/TileCalorimeter/TileG4/TileAncillary/MinBiasScintillator/CMakeLists.txt
index 316d561b20d1f5cf07dd9c067e78dcb298f57eab..784e5ac7342a799fc1250fee82ee06b55e1e4da5 100644
--- a/TileCalorimeter/TileG4/TileAncillary/MinBiasScintillator/CMakeLists.txt
+++ b/TileCalorimeter/TileG4/TileAncillary/MinBiasScintillator/CMakeLists.txt
@@ -18,6 +18,7 @@ atlas_add_library( MinBiasScintillator
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} CaloDetDescrLib CaloIdentifier StoreGateLib GaudiKernel G4AtlasToolsLib TileSimEvent )
+set_target_properties( MinBiasScintillator PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/TileCalorimeter/TileG4/TileAncillary/MuonWall/CMakeLists.txt b/TileCalorimeter/TileG4/TileAncillary/MuonWall/CMakeLists.txt
index 6c0d80e496e63dd25be3dd4b2ef69c0cab832770..aa54c9bb927c3c755a6ed7ec482160f15de2a133 100644
--- a/TileCalorimeter/TileG4/TileAncillary/MuonWall/CMakeLists.txt
+++ b/TileCalorimeter/TileG4/TileAncillary/MuonWall/CMakeLists.txt
@@ -21,6 +21,7 @@ atlas_add_library( MuonWall
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} ${GEOMODEL_LIBRARIES} CaloIdentifier StoreGateLib GaudiKernel G4AtlasToolsLib GeoModelInterfaces GeoMaterial2G4 TileSimEvent )
+set_target_properties( MuonWall PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/TileCalorimeter/TileG4/TileAncillary/PhantomCalorimeter/CMakeLists.txt b/TileCalorimeter/TileG4/TileAncillary/PhantomCalorimeter/CMakeLists.txt
index bb4f505969eb490ded349a7005d307c0144fd6b4..4c6a4dbf26545e459e3b0432aedbf6cfff9f598f 100644
--- a/TileCalorimeter/TileG4/TileAncillary/PhantomCalorimeter/CMakeLists.txt
+++ b/TileCalorimeter/TileG4/TileAncillary/PhantomCalorimeter/CMakeLists.txt
@@ -21,6 +21,7 @@ atlas_add_library( PhantomCalorimeter
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} ${GEOMODEL_LIBRARIES} CaloIdentifier StoreGateLib GaudiKernel G4AtlasToolsLib GeoMaterial2G4 GeoModelInterfaces TileSimEvent )
+set_target_properties( PhantomCalorimeter PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_runtime( share/phantombarrel.dtd share/phantombarrel.xml share/TileAncillary.mac share/phantomvis.mac )
diff --git a/TileCalorimeter/TileG4/TileG4Interfaces/CMakeLists.txt b/TileCalorimeter/TileG4/TileG4Interfaces/CMakeLists.txt
index fe6701505f8234f19c6d8571e97eb3d8566e6b4e..70b39d7eed9a111d3626b81a860f93a1dba19b95 100644
--- a/TileCalorimeter/TileG4/TileG4Interfaces/CMakeLists.txt
+++ b/TileCalorimeter/TileG4/TileG4Interfaces/CMakeLists.txt
@@ -12,3 +12,4 @@ atlas_add_library( TileG4InterfacesLib
                    PUBLIC_HEADERS TileG4Interfaces
                    INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS}
                    LINK_LIBRARIES ${GEANT4_LIBRARIES} GaudiKernel Identifier )
+set_target_properties( TileG4InterfacesLib PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
diff --git a/TileCalorimeter/TileG4/TileGeoG4Calib/CMakeLists.txt b/TileCalorimeter/TileG4/TileGeoG4Calib/CMakeLists.txt
index 1f6aa3c05f4ef751b730967d980b11abc3489e2f..fa9623a428960d6906f503898037105d8541f70c 100644
--- a/TileCalorimeter/TileG4/TileGeoG4Calib/CMakeLists.txt
+++ b/TileCalorimeter/TileG4/TileGeoG4Calib/CMakeLists.txt
@@ -19,6 +19,7 @@ atlas_add_library( TileGeoG4Calib
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${CORAL_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${GEANT4_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${CORAL_LIBRARIES} ${XERCESC_LIBRARIES} ${GEANT4_LIBRARIES} ${CLHEP_LIBRARIES} CaloG4SimLib CaloIdentifier CaloSimEvent CxxUtils StoreGateLib GeoModelInterfaces GeoModelUtilities GaudiKernel G4AtlasToolsLib MCTruth TileDetDescr TileGeoG4SDLib TileG4InterfacesLib TileSimEvent TileSimUtilsLib PathResolver )
+set_target_properties( TileGeoG4Calib PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/TileCalorimeter/TileG4/TileGeoG4SD/CMakeLists.txt b/TileCalorimeter/TileG4/TileGeoG4SD/CMakeLists.txt
index c32f15abb3a338c9bc9c257754aa17049a559fdb..1b7371fc24b6e87b6287f6149c213906442bf014 100644
--- a/TileCalorimeter/TileG4/TileGeoG4SD/CMakeLists.txt
+++ b/TileCalorimeter/TileG4/TileGeoG4SD/CMakeLists.txt
@@ -20,6 +20,7 @@ atlas_add_library( TileGeoG4SDLib
                    PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS}
                    LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} G4AtlasToolsLib TileDetDescr TileSimEvent TileG4InterfacesLib
                    PRIVATE_LINK_LIBRARIES ${CLHEP_LIBRARIES} CaloIdentifier CxxUtils GeoModelInterfaces GeoModelUtilities GaudiKernel PathResolver StoreGateLib CaloDetDescrLib TileGeoModelLib )
+set_target_properties( TileGeoG4SDLib PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 atlas_add_library( TileGeoG4SD
                    src/components/*.cxx
@@ -27,6 +28,7 @@ atlas_add_library( TileGeoG4SD
                    NO_PUBLIC_HEADERS
                    INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES TileGeoG4SDLib )
+set_target_properties( TileGeoG4SD PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/Tracking/Acts/ActsGeantFollowing/CMakeLists.txt b/Tracking/Acts/ActsGeantFollowing/CMakeLists.txt
index e7bdf017d3da5d4c08324336d6456e5379d1852e..a73b45a2606a9b0114d3818efc4f2b155f204d96 100644
--- a/Tracking/Acts/ActsGeantFollowing/CMakeLists.txt
+++ b/Tracking/Acts/ActsGeantFollowing/CMakeLists.txt
@@ -34,6 +34,7 @@ atlas_add_library( ActsGeantFollowing
                      TrkExInterfaces
                      TrkParameters
                      TrkSurfaces)       
+set_target_properties( ActsGeantFollowing PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_joboptions( share/*.py )
diff --git a/Tracking/TrkG4Components/TrkG4UserActions/CMakeLists.txt b/Tracking/TrkG4Components/TrkG4UserActions/CMakeLists.txt
index 9c4567075034572b34055558a4db7d0d47cc00de..edb0b57624247621cfafc84017f8ba1d269e3ebf 100644
--- a/Tracking/TrkG4Components/TrkG4UserActions/CMakeLists.txt
+++ b/Tracking/TrkG4Components/TrkG4UserActions/CMakeLists.txt
@@ -16,6 +16,7 @@ atlas_add_library( TrkG4UserActions
                    NO_PUBLIC_HEADERS
                    PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${GEANT4_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
                    PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} ${GEANT4_LIBRARIES} ${CLHEP_LIBRARIES} AthenaBaseComps GaudiKernel G4AtlasToolsLib TrkDetDescrInterfaces TrkGeometry TrkMaterialOnTrack TrkParameters CxxUtils StoreGateLib GeoPrimitives SimHelpers TrkSurfaces TrkExInterfaces TrkExUtils TrkValInterfaces )
+set_target_properties( TrkG4UserActions PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ATLAS_GEANT4_USE_LTO} )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )