From 5c14af14bd59e065a624a9bb1e34a60d26a7b5cd Mon Sep 17 00:00:00 2001 From: ferdymercury Date: Mon, 2 Nov 2026 13:01:39 +0100 Subject: [PATCH 1/2] [geom] add headers to private file_sets --- geom/gdml/CMakeLists.txt | 18 +++- geom/geom/CMakeLists.txt | 142 +++++++++++++++++++------------- geom/geombuilder/CMakeLists.txt | 59 ++++++++----- geom/geomchecker/CMakeLists.txt | 22 ++++- geom/geompainter/CMakeLists.txt | 21 ++++- geom/vecgeom/CMakeLists.txt | 21 ++++- geom/webviewer/CMakeLists.txt | 25 +++++- 7 files changed, 218 insertions(+), 90 deletions(-) diff --git a/geom/gdml/CMakeLists.txt b/geom/gdml/CMakeLists.txt index 5477bb6ffe376..46af861d56c3e 100644 --- a/geom/gdml/CMakeLists.txt +++ b/geom/gdml/CMakeLists.txt @@ -8,10 +8,14 @@ # CMakeLists.txt file for building ROOT geom/gdml package ############################################################################ +set(GDML_HEADERS TGDMLParse.h TGDMLWrite.h) + +set(RELATIVE_INC_HEADERS ${GDML_HEADERS}) +list(TRANSFORM RELATIVE_INC_HEADERS PREPEND inc/) + ROOT_STANDARD_LIBRARY_PACKAGE(Gdml HEADERS - TGDMLParse.h - TGDMLWrite.h + ${GDML_HEADERS} SOURCES src/TGDMLParse.cxx src/TGDMLWrite.cxx @@ -21,3 +25,13 @@ ROOT_STANDARD_LIBRARY_PACKAGE(Gdml Hist RIO ) + +target_sources(Gdml +PRIVATE + FILE_SET private_header_files + TYPE HEADERS + BASE_DIRS inc/ + FILES + ${RELATIVE_INC_HEADERS} + inc/LinkDef.h +) diff --git a/geom/geom/CMakeLists.txt b/geom/geom/CMakeLists.txt index 9bc8b38e10bb0..ea0f678f66bbd 100644 --- a/geom/geom/CMakeLists.txt +++ b/geom/geom/CMakeLists.txt @@ -8,65 +8,80 @@ # CMakeLists.txt file for building ROOT geom/geom package ############################################################################ +set(RELATIVE_RES_HEADERS bvh2_extra_kernels.h bvh2_third_party.h) +list(TRANSFORM RELATIVE_RES_HEADERS PREPEND res/) + +set(GEOM_HEADERS + TGDMLMatrix.h + TGeant4PhysicalConstants.h + TGeant4SystemOfUnits.h + TGeoArb8.h + TGeoAtt.h + TGeoBBox.h + TGeoBoolNode.h + TGeoBranchArray.h + TGeoBuilder.h + TGeoCache.h + TGeoColorScheme.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 + TGeoOverlapCandidate.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 + TGeoTessellated.h + TGeoTorus.h + TGeoTrd1.h + TGeoTrd2.h + TGeoTube.h + TGeoTypedefs.h + TGeoUniformMagField.h + TGeoVector3.h + TGeoVolume.h + TGeoVoxelFinder.h + TGeoVoxelGrid.h + TGeoXtru.h + TVirtualGeoChecker.h + TVirtualGeoConverter.h + TVirtualGeoPainter.h + TVirtualGeoTrack.h + TVirtualMagField.h +) + +set(RELATIVE_INC_HEADERS ${GEOM_HEADERS}) +list(TRANSFORM RELATIVE_INC_HEADERS PREPEND inc/) + ROOT_STANDARD_LIBRARY_PACKAGE(Geom HEADERS - TGDMLMatrix.h - TGeoArb8.h - TGeoAtt.h - TGeoBBox.h - TGeoBoolNode.h - TGeoBranchArray.h - TGeoBuilder.h - TGeoCache.h - TGeoColorScheme.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 - TGeoTessellated.h - TGeoVector3.h - TVirtualGeoConverter.h - TVirtualGeoChecker.h - TVirtualGeoPainter.h - TVirtualGeoTrack.h - TVirtualMagField.h + ${GEOM_HEADERS} SOURCES src/TGDMLMatrix.cxx src/TGeoArb8.cxx @@ -139,3 +154,16 @@ if(CMAKE_COMPILER_IS_GNUCXX) target_compile_options(Geom PRIVATE -O2) endif() endif() + +target_sources(Geom +PRIVATE + FILE_SET private_header_files + TYPE HEADERS + BASE_DIRS inc/ res/ + FILES + ${RELATIVE_INC_HEADERS} + ${RELATIVE_RES_HEADERS} + inc/LinkDef.h + inc/LinkDef1.h + inc/LinkDef2.h +) diff --git a/geom/geombuilder/CMakeLists.txt b/geom/geombuilder/CMakeLists.txt index 00cb3108f6919..be3f2b86960c5 100644 --- a/geom/geombuilder/CMakeLists.txt +++ b/geom/geombuilder/CMakeLists.txt @@ -9,29 +9,33 @@ # @author Pere Mato, CERN ############################################################################ +set (GEOMBUILDER_HEADERS + TGeoBBoxEditor.h + TGeoConeEditor.h + TGeoEltuEditor.h + TGeoGedFrame.h + TGeoHypeEditor.h + TGeoManagerEditor.h + TGeoMaterialEditor.h + TGeoMatrixEditor.h + TGeoMediumEditor.h + TGeoNodeEditor.h + TGeoParaEditor.h + TGeoPconEditor.h + TGeoPgonEditor.h + TGeoSphereEditor.h + TGeoTabManager.h + TGeoTorusEditor.h + TGeoTrapEditor.h + TGeoTrd1Editor.h + TGeoTrd2Editor.h + TGeoTubeEditor.h + TGeoVolumeEditor.h +) + ROOT_STANDARD_LIBRARY_PACKAGE(GeomBuilder HEADERS - TGeoBBoxEditor.h - TGeoConeEditor.h - TGeoEltuEditor.h - TGeoGedFrame.h - TGeoHypeEditor.h - TGeoManagerEditor.h - TGeoMaterialEditor.h - TGeoMatrixEditor.h - TGeoMediumEditor.h - TGeoNodeEditor.h - TGeoParaEditor.h - TGeoPconEditor.h - TGeoPgonEditor.h - TGeoSphereEditor.h - TGeoTabManager.h - TGeoTorusEditor.h - TGeoTrapEditor.h - TGeoTrd1Editor.h - TGeoTrd2Editor.h - TGeoTubeEditor.h - TGeoVolumeEditor.h + ${GEOMBUILDER_HEADERS} SOURCES src/TGeoBBoxEditor.cxx src/TGeoConeEditor.cxx @@ -62,3 +66,16 @@ ROOT_STANDARD_LIBRARY_PACKAGE(GeomBuilder Gui Ged ) + +set(RELATIVE_INC_HEADERS ${GEOMBUILDER_HEADERS}) +list(TRANSFORM RELATIVE_INC_HEADERS PREPEND inc/) + +target_sources(GeomBuilder +PRIVATE + FILE_SET private_header_files + TYPE HEADERS + BASE_DIRS inc/ + FILES + ${RELATIVE_INC_HEADERS} + inc/LinkDef.h +) diff --git a/geom/geomchecker/CMakeLists.txt b/geom/geomchecker/CMakeLists.txt index edf0e19871a62..ef84f09c4f0bc 100644 --- a/geom/geomchecker/CMakeLists.txt +++ b/geom/geomchecker/CMakeLists.txt @@ -9,10 +9,14 @@ # @author Pere Mato, CERN ############################################################################ +set (GEOMCHECKER_HEADERS + TGeoOverlap.h + TGeoChecker.h +) + ROOT_STANDARD_LIBRARY_PACKAGE(GeomChecker HEADERS - TGeoOverlap.h - TGeoChecker.h + ${GEOMCHECKER_HEADERS} SOURCES src/TGeoOverlap.cxx src/TGeoChecker.cxx @@ -24,3 +28,17 @@ ROOT_STANDARD_LIBRARY_PACKAGE(GeomChecker RIO Tree ) + + +set(RELATIVE_INC_HEADERS ${GEOMCHECKER_HEADERS}) +list(TRANSFORM RELATIVE_INC_HEADERS PREPEND inc/) + +target_sources(GeomChecker +PRIVATE + FILE_SET private_header_files + TYPE HEADERS + BASE_DIRS inc/ + FILES + ${RELATIVE_INC_HEADERS} + inc/LinkDef.h +) diff --git a/geom/geompainter/CMakeLists.txt b/geom/geompainter/CMakeLists.txt index fa401c7706b10..4429e40700e77 100644 --- a/geom/geompainter/CMakeLists.txt +++ b/geom/geompainter/CMakeLists.txt @@ -9,10 +9,14 @@ # @author Pere Mato, CERN ############################################################################ +set (GEOMPAINTER_HEADERS + TGeoPainter.h + TGeoTrack.h +) + ROOT_STANDARD_LIBRARY_PACKAGE(GeomPainter HEADERS - TGeoPainter.h - TGeoTrack.h + ${GEOMPAINTER_HEADERS} SOURCES src/TGeoPainter.cxx src/TGeoTrack.cxx @@ -23,3 +27,16 @@ ROOT_STANDARD_LIBRARY_PACKAGE(GeomPainter Graf3d Hist ) + +set(RELATIVE_INC_HEADERS ${GEOMPAINTER_HEADERS}) +list(TRANSFORM RELATIVE_INC_HEADERS PREPEND inc/) + +target_sources(GeomPainter +PRIVATE + FILE_SET private_header_files + TYPE HEADERS + BASE_DIRS inc/ + FILES + ${RELATIVE_INC_HEADERS} + inc/LinkDef.h +) diff --git a/geom/vecgeom/CMakeLists.txt b/geom/vecgeom/CMakeLists.txt index 9fd8078d7e008..a5dc02c2fbc6e 100644 --- a/geom/vecgeom/CMakeLists.txt +++ b/geom/vecgeom/CMakeLists.txt @@ -11,10 +11,14 @@ include_directories(AFTER SYSTEM ${VECGEOM_INCLUDE_DIRS}) -ROOT_STANDARD_LIBRARY_PACKAGE(ConverterVG - HEADERS +set(VECGEOM_HEADERS TGeoVGConverter.h TGeoVGShape.h +) + +ROOT_STANDARD_LIBRARY_PACKAGE(ConverterVG + HEADERS + ${VECGEOM_HEADERS} SOURCES src/TGeoVGConverter.cxx src/TGeoVGShape.cxx @@ -24,3 +28,16 @@ ROOT_STANDARD_LIBRARY_PACKAGE(ConverterVG DEPENDENCIES Geom ) + +set(RELATIVE_INC_HEADERS ${VECGEOM_HEADERS}) +list(TRANSFORM RELATIVE_INC_HEADERS PREPEND inc/) + +target_sources(ConverterVG +PRIVATE + FILE_SET private_header_files + TYPE HEADERS + BASE_DIRS inc/ + FILES + ${RELATIVE_INC_HEADERS} + inc/LinkDef.h +) diff --git a/geom/webviewer/CMakeLists.txt b/geom/webviewer/CMakeLists.txt index 2e1c74b556d8f..49ec55a815505 100644 --- a/geom/webviewer/CMakeLists.txt +++ b/geom/webviewer/CMakeLists.txt @@ -9,12 +9,16 @@ if (runtime_cxxmodules AND WIN32) set (EXTRA_DICT_OPTS NO_CXXMODULE) endif() +set(GEOMVIEWER_HEADERS + ROOT/RGeomData.hxx + ROOT/RGeomHierarchy.hxx + ROOT/RGeomViewer.hxx + ROOT/RGeoPainter.hxx +) + ROOT_STANDARD_LIBRARY_PACKAGE(ROOTGeomViewer HEADERS - ROOT/RGeomData.hxx - ROOT/RGeomHierarchy.hxx - ROOT/RGeomViewer.hxx - ROOT/RGeoPainter.hxx + ${GEOMVIEWER_HEADERS} SOURCES src/RGeomData.cxx src/RGeomHierarchy.cxx @@ -30,3 +34,16 @@ ROOT_STANDARD_LIBRARY_PACKAGE(ROOTGeomViewer ROOTCsg ${EXTRA_DICT_OPTS} ) + +set(RELATIVE_INC_HEADERS ${GEOMVIEWER_HEADERS}) +list(TRANSFORM RELATIVE_INC_HEADERS PREPEND inc/) + +target_sources(ROOTGeomViewer +PRIVATE + FILE_SET private_header_files + TYPE HEADERS + BASE_DIRS inc/ + FILES + ${RELATIVE_INC_HEADERS} + inc/LinkDef.h +) From 629e145cf000a13d877b2433f3c3ddf7804f6da6 Mon Sep 17 00:00:00 2001 From: ferdymercury Date: Mon, 2 Nov 2026 14:51:26 +0100 Subject: [PATCH 2/2] [geom] missing header for std::min --- geom/geom/inc/TGeoVoxelGrid.h | 1 + 1 file changed, 1 insertion(+) diff --git a/geom/geom/inc/TGeoVoxelGrid.h b/geom/geom/inc/TGeoVoxelGrid.h index 5d7401eaef6e2..0e231e3bc6838 100644 --- a/geom/geom/inc/TGeoVoxelGrid.h +++ b/geom/geom/inc/TGeoVoxelGrid.h @@ -12,6 +12,7 @@ #ifndef ROOT_TGeoVoxelGrid #define ROOT_TGeoVoxelGrid +#include #include #include #include