diff --git a/geom/geom/CMakeLists.txt b/geom/geom/CMakeLists.txt
index 70016950bb87ef5accff03f866a3e639005fcc9b..11280e3734be3dea56d2e797dd6e11bc4ea3b80d 100644
--- a/geom/geom/CMakeLists.txt
+++ b/geom/geom/CMakeLists.txt
@@ -2,27 +2,116 @@
 # CMakeLists.txt file for building ROOT geom/geom package
 ############################################################################
 
-set(headers1 TGeoAtt.h TGeoStateInfo.h TGeoBoolNode.h
-             TGeoMedium.h TGeoMaterial.h TGeoOpticalSurface.h
-             TGeoMatrix.h TGeoVolume.h TGeoNode.h
-             TGeoVoxelFinder.h TGeoShape.h TGeoBBox.h
-             TGeoPara.h TGeoTube.h TGeoTorus.h TGeoSphere.h
-             TGeoEltu.h TGeoHype.h TGeoCone.h TGeoPcon.h
-             TGeoPgon.h TGeoArb8.h TGeoTrd1.h TGeoTrd2.h
-             TGeoManager.h TGeoCompositeShape.h TGeoShapeAssembly.h
-             TGeoScaledShape.h TVirtualGeoPainter.h TVirtualGeoTrack.h
-             TVirtualGeoConverter.h TGeoPolygon.h TGeoXtru.h TGeoPhysicalNode.h
-             TGeoHelix.h TGeoParaboloid.h TGeoElement.h TGeoHalfSpace.h
-             TGeoBuilder.h TGeoNavigator.h TGeoRegion.h
-             TGeoPhysicalConstants.h TGeoSystemOfUnits.h TGDMLMatrix.h)
-set(headers2 TGeoPatternFinder.h TGeoCache.h TVirtualMagField.h
-             TGeoUniformMagField.h TGeoGlobalMagField.h TGeoBranchArray.h
-             TGeoExtension.h TGeoParallelWorld.h)
-
-
 ROOT_STANDARD_LIBRARY_PACKAGE(Geom
-                              HEADERS ${headers1} ${headers2}
-                              DEPENDENCIES Thread RIO MathCore)
+  HEADERS
+    TGDMLMatrix.h
+    TGeoArb8.h
+    TGeoAtt.h
+    TGeoBBox.h
+    TGeoBoolNode.h
+    TGeoBranchArray.h
+    TGeoBuilder.h
+    TGeoCache.h
+    TGeoCompositeShape.h
+    TGeoCone.h
+    TGeoElement.h
+    TGeoEltu.h
+    TGeoExtension.h
+    TGeoGlobalMagField.h
+    TGeoHalfSpace.h
+    TGeoHelix.h
+    TGeoHype.h
+    TGeoManager.h
+    TGeoMaterial.h
+    TGeoMatrix.h
+    TGeoMedium.h
+    TGeoNavigator.h
+    TGeoNode.h
+    TGeoOpticalSurface.h
+    TGeoPara.h
+    TGeoParaboloid.h
+    TGeoParallelWorld.h
+    TGeoPatternFinder.h
+    TGeoPcon.h
+    TGeoPgon.h
+    TGeoPhysicalConstants.h
+    TGeoPhysicalNode.h
+    TGeoPolygon.h
+    TGeoRCPtr.h
+    TGeoRegion.h
+    TGeoScaledShape.h
+    TGeoShape.h
+    TGeoShapeAssembly.h
+    TGeoSphere.h
+    TGeoStateInfo.h
+    TGeoSystemOfUnits.h
+    TGeoTorus.h
+    TGeoTrd1.h
+    TGeoTrd2.h
+    TGeoTube.h
+    TGeoUniformMagField.h
+    TGeoVolume.h
+    TGeoVoxelFinder.h
+    TGeoXtru.h
+    TVirtualGeoConverter.h
+    TVirtualGeoPainter.h
+    TVirtualGeoTrack.h
+    TVirtualMagField.h
+  SOURCES
+    src/TGDMLMatrix.cxx
+    src/TGeoArb8.cxx
+    src/TGeoAtt.cxx
+    src/TGeoBBox.cxx
+    src/TGeoBoolNode.cxx
+    src/TGeoBranchArray.cxx
+    src/TGeoBuilder.cxx
+    src/TGeoCache.cxx
+    src/TGeoCompositeShape.cxx
+    src/TGeoCone.cxx
+    src/TGeoElement.cxx
+    src/TGeoEltu.cxx
+    src/TGeoExtension.cxx
+    src/TGeoGlobalMagField.cxx
+    src/TGeoHalfSpace.cxx
+    src/TGeoHelix.cxx
+    src/TGeoHype.cxx
+    src/TGeoManager.cxx
+    src/TGeoMaterial.cxx
+    src/TGeoMatrix.cxx
+    src/TGeoMedium.cxx
+    src/TGeoNavigator.cxx
+    src/TGeoNode.cxx
+    src/TGeoOpticalSurface.cxx
+    src/TGeoPara.cxx
+    src/TGeoParaboloid.cxx
+    src/TGeoParallelWorld.cxx
+    src/TGeoPatternFinder.cxx
+    src/TGeoPcon.cxx
+    src/TGeoPgon.cxx
+    src/TGeoPhysicalNode.cxx
+    src/TGeoPolygon.cxx
+    src/TGeoRegion.cxx
+    src/TGeoScaledShape.cxx
+    src/TGeoShape.cxx
+    src/TGeoShapeAssembly.cxx
+    src/TGeoSphere.cxx
+    src/TGeoStateInfo.cxx
+    src/TGeoTorus.cxx
+    src/TGeoTrd1.cxx
+    src/TGeoTrd2.cxx
+    src/TGeoTube.cxx
+    src/TGeoVolume.cxx
+    src/TGeoVoxelFinder.cxx
+    src/TGeoXtru.cxx
+    src/TVirtualGeoConverter.cxx
+    src/TVirtualGeoPainter.cxx
+    src/TVirtualGeoTrack.cxx
+    src/TVirtualMagField.cxx
+  DEPENDENCIES
+    Thread
+    RIO
+    MathCore
+)
 
 # GCC has bugs with -O3 or -Ofast that break Geom
 if(CMAKE_COMPILER_IS_GNUCXX)