ROOT.modulemap changed from single file to a distributed file set
This Pull request:
Converts ROOT.modulemap from a single file to a set of files where ROOT.modulemap includes per-component modulemaps, this will allow to implement packaging.
Changes or fixes:
CMakeLists.txt, cmake/modules/RootMacros.cmake
Checklist:
- [ X] tested changes locally
- [ ] updated the docs (if necessary)
This PR fixes #
Test Results
0 tests 0 ✅ 0s ⏱️ 0 suites 0 💤 0 files 0 ❌
Results for commit cd631a29.
:recycle: This comment has been updated with latest results.
Can you rebase this PR, @pavlo-svirin?
Can you rebase this PR, @pavlo-svirin?
Done
@pavlo-svirin, can you rebase again?
I checked out your pull request locally and on OSX I get:
find include/
include/
include//ASImageGui.modulemap
include//GCocoa.modulemap
include//GuiHtml.modulemap
include//RooFitRDataFrameHelpers.modulemap
include//CPyCppyy
include//CPyCppyy/CommonDefs.h
include//CPyCppyy/PyResult.h
include//CPyCppyy/DispatchPtr.h
include//CPyCppyy/API.h
include//CPyCppyy/Reflex.h
include//CPyCppyy/PyException.h
include//Html.modulemap
include//Tree.modulemap
include//FitPanel.modulemap
include//ROOTBrowsable.modulemap
include//Spectrum.modulemap
include//Matrix.modulemap
include//Graf.modulemap
include//MLP.modulemap
include//GeomPainter.modulemap
include//MathCore.modulemap
include//RooFitXRooFit.modulemap
include//ROOT.modulemap.d
include//ROOT.modulemap.d/ASImageGui.modulemap
include//ROOT.modulemap.d/GCocoa.modulemap
include//ROOT.modulemap.d/GuiHtml.modulemap
include//ROOT.modulemap.d/RooFitRDataFrameHelpers.modulemap
include//ROOT.modulemap.d/Html.modulemap
include//ROOT.modulemap.d/Tree.modulemap
include//ROOT.modulemap.d/FitPanel.modulemap
include//ROOT.modulemap.d/ROOTBrowsable.modulemap
include//ROOT.modulemap.d/Spectrum.modulemap
include//ROOT.modulemap.d/Matrix.modulemap
include//ROOT.modulemap.d/Graf.modulemap
include//ROOT.modulemap.d/MLP.modulemap
include//ROOT.modulemap.d/GeomPainter.modulemap
include//ROOT.modulemap.d/MathCore.modulemap
include//ROOT.modulemap.d/RooFitXRooFit.modulemap
include//ROOT.modulemap.d/Smatrix.modulemap
include//ROOT.modulemap.d/Eve.modulemap
include//ROOT.modulemap.d/RooFitJSONInterface.modulemap
include//ROOT.modulemap.d/ASImage.modulemap
include//ROOT.modulemap.d/ROOTNTuple.modulemap
include//ROOT.modulemap.d/SpectrumPainter.modulemap
include//ROOT.modulemap.d/NetxNG.modulemap
include//ROOT.modulemap.d/TMVAGui.modulemap
include//ROOT.modulemap.d/Quadp.modulemap
include//ROOT.modulemap.d/Graf3d.modulemap
include//ROOT.modulemap.d/Net.modulemap
include//ROOT.modulemap.d/RooFitHS3.modulemap
include//ROOT.modulemap.d/RIO.modulemap
include//ROOT.modulemap.d/WebGui6.modulemap
include//ROOT.modulemap.d/Gui.modulemap
include//ROOT.modulemap.d/Gpad.modulemap
include//ROOT.modulemap.d/Physics.modulemap
include//ROOT.modulemap.d/HistPainter.modulemap
include//ROOT.modulemap.d/RGL.modulemap
include//ROOT.modulemap.d/Recorder.modulemap
include//ROOT.modulemap.d/GeomBuilder.modulemap
include//ROOT.modulemap.d/RCsg.modulemap
include//ROOT.modulemap.d/RHTTP.modulemap
include//ROOT.modulemap.d/TreePlayer.modulemap
include//ROOT.modulemap.d/Geom.modulemap
include//ROOT.modulemap.d/EG.modulemap
include//ROOT.modulemap.d/HistFactory.modulemap
include//ROOT.modulemap.d/RooStats.modulemap
include//ROOT.modulemap.d/Fumili.modulemap
include//ROOT.modulemap.d/RooFit.modulemap
include//ROOT.modulemap.d/GenVector.modulemap
include//ROOT.modulemap.d/TreeViewer.modulemap
include//ROOT.modulemap.d/Postscript.modulemap
include//ROOT.modulemap.d/Imt.modulemap
include//ROOT.modulemap.d/ROOTHistDraw.modulemap
include//ROOT.modulemap.d/MultiProc.modulemap
include//ROOT.modulemap.d/XMLIO.modulemap
include//ROOT.modulemap.d/ROOTNTupleUtil.modulemap
include//ROOT.modulemap.d/RDAVIX.modulemap
include//ROOT.modulemap.d/RooFitCore.modulemap
include//ROOT.modulemap.d/ROOTEve.modulemap
include//ROOT.modulemap.d/XMLParser.modulemap
include//ROOT.modulemap.d/ROOTVecOps.modulemap
include//ROOT.modulemap.d/ROOTFitPanelv7.modulemap
include//ROOT.modulemap.d/GuiBld.modulemap
include//ROOT.modulemap.d/ROOTTPython.modulemap
include//ROOT.modulemap.d/RSQLite.modulemap
include//ROOT.modulemap.d/TMVA.modulemap
include//ROOT.modulemap.d/Ged.modulemap
include//ROOT.modulemap.d/ROOTGraphicsPrimitives.modulemap
include//ROOT.modulemap.d/ROOTBrowserv7.modulemap
include//ROOT.modulemap.d/Gdml.modulemap
include//ROOT.modulemap.d/Core.modulemap
include//ROOT.modulemap.d/ROOTGpadv7.modulemap
include//ROOT.modulemap.d/Rint.modulemap
include//ROOT.modulemap.d/Foam.modulemap
include//ROOT.modulemap.d/SQLIO.modulemap
include//ROOT.modulemap.d/Hist.modulemap
include//ROOT.modulemap.d/Thread.modulemap
include//ROOT.modulemap.d/ROOTTreeViewer.modulemap
include//ROOT.modulemap.d/RHTTPSniff.modulemap
include//ROOT.modulemap.d/ROOTHist.modulemap
include//ROOT.modulemap.d/Gviz3d.modulemap
include//ROOT.modulemap.d/RootAuth.modulemap
include//ROOT.modulemap.d/Genetic.modulemap
include//ROOT.modulemap.d/Minuit.modulemap
include//ROOT.modulemap.d/Minuit2.modulemap
include//ROOT.modulemap.d/ROOTTMVASofie.modulemap
include//ROOT.modulemap.d/ROOTWebDisplay.modulemap
include//ROOT.modulemap.d/ROOTGeomViewer.modulemap
include//ROOT.modulemap.d/TMVAUtils.modulemap
include//ROOT.modulemap.d/SPlot.modulemap
include//ROOT.modulemap.d/ROOTDataFrame.modulemap
include//Smatrix.modulemap
include//Eve.modulemap
include//RooFitJSONInterface.modulemap
include//ASImage.modulemap
include//ROOTNTuple.modulemap
include//SpectrumPainter.modulemap
include//NetxNG.modulemap
include//TMVAGui.modulemap
include//Quadp.modulemap
include//Graf3d.modulemap
include//Net.modulemap
include//RooFitHS3.modulemap
include//module.modulemap.extra.tmp
include//RIO.modulemap
include//WebGui6.modulemap
include//Gui.modulemap
include//Gpad.modulemap
include//module.modulemap.extra
include//Physics.modulemap
include//HistPainter.modulemap
include//RGL.modulemap
include//Recorder.modulemap
include//module.modulemap.split.extra.tmp
include//GeomBuilder.modulemap
include//RCsg.modulemap
include//RHTTP.modulemap
include//TreePlayer.modulemap
include//Geom.modulemap
include//EG.modulemap
include//xrootd
include//HistFactory.modulemap
include//RooStats.modulemap
include//Fumili.modulemap
include//RooFit.modulemap
include//GenVector.modulemap
include//TreeViewer.modulemap
include//Postscript.modulemap
include//Imt.modulemap
include//ROOTHistDraw.modulemap
include//MultiProc.modulemap
include//XMLIO.modulemap
include//ROOTNTupleUtil.modulemap
include//RDAVIX.modulemap
include//RooFitCore.modulemap
include//ROOTEve.modulemap
include//XMLParser.modulemap
include//ROOTVecOps.modulemap
include//ROOTFitPanelv7.modulemap
include//ROOT
include//ROOT/TPyDispatcher.h
include//GuiBld.modulemap
include//ROOTTPython.modulemap
include//RSQLite.modulemap
include//TMVA.modulemap
include//Ged.modulemap
include//ROOTGraphicsPrimitives.modulemap
include//ROOTBrowserv7.modulemap
include//Gdml.modulemap
include//Core.modulemap
include//ROOTGpadv7.modulemap
include//Rint.modulemap
include//Foam.modulemap
include//SQLIO.modulemap
include//Hist.modulemap
include//Thread.modulemap
include//ROOTTreeViewer.modulemap
include//RHTTPSniff.modulemap
include//ROOTHist.modulemap
include//Gviz3d.modulemap
include//RootAuth.modulemap
include//Genetic.modulemap
include//Minuit.modulemap
include//Minuit2.modulemap
include//ROOTTMVASofie.modulemap
include//ROOTWebDisplay.modulemap
include//ROOTGeomViewer.modulemap
include//TMVAUtils.modulemap
include//module.modulemap.split.extra
include//SPlot.modulemap
include//ROOTDataFrame.modulemap
Do you expect everything to be duplicated many times and to have tmp leftovers?
I checked out your pull request locally and on OSX I get:
find include/ include/ include//ASImageGui.modulemap include//GCocoa.modulemap include//GuiHtml.modulemap include//RooFitRDataFrameHelpers.modulemap include//CPyCppyy include//CPyCppyy/CommonDefs.h include//CPyCppyy/PyResult.h include//CPyCppyy/DispatchPtr.h include//CPyCppyy/API.h include//CPyCppyy/Reflex.h include//CPyCppyy/PyException.h include//Html.modulemap include//Tree.modulemap include//FitPanel.modulemap include//ROOTBrowsable.modulemap include//Spectrum.modulemap include//Matrix.modulemap include//Graf.modulemap include//MLP.modulemap include//GeomPainter.modulemap include//MathCore.modulemap include//RooFitXRooFit.modulemap include//ROOT.modulemap.d include//ROOT.modulemap.d/ASImageGui.modulemap include//ROOT.modulemap.d/GCocoa.modulemap include//ROOT.modulemap.d/GuiHtml.modulemap include//ROOT.modulemap.d/RooFitRDataFrameHelpers.modulemap include//ROOT.modulemap.d/Html.modulemap include//ROOT.modulemap.d/Tree.modulemap include//ROOT.modulemap.d/FitPanel.modulemap include//ROOT.modulemap.d/ROOTBrowsable.modulemap include//ROOT.modulemap.d/Spectrum.modulemap include//ROOT.modulemap.d/Matrix.modulemap include//ROOT.modulemap.d/Graf.modulemap include//ROOT.modulemap.d/MLP.modulemap include//ROOT.modulemap.d/GeomPainter.modulemap include//ROOT.modulemap.d/MathCore.modulemap include//ROOT.modulemap.d/RooFitXRooFit.modulemap include//ROOT.modulemap.d/Smatrix.modulemap include//ROOT.modulemap.d/Eve.modulemap include//ROOT.modulemap.d/RooFitJSONInterface.modulemap include//ROOT.modulemap.d/ASImage.modulemap include//ROOT.modulemap.d/ROOTNTuple.modulemap include//ROOT.modulemap.d/SpectrumPainter.modulemap include//ROOT.modulemap.d/NetxNG.modulemap include//ROOT.modulemap.d/TMVAGui.modulemap include//ROOT.modulemap.d/Quadp.modulemap include//ROOT.modulemap.d/Graf3d.modulemap include//ROOT.modulemap.d/Net.modulemap include//ROOT.modulemap.d/RooFitHS3.modulemap include//ROOT.modulemap.d/RIO.modulemap include//ROOT.modulemap.d/WebGui6.modulemap include//ROOT.modulemap.d/Gui.modulemap include//ROOT.modulemap.d/Gpad.modulemap include//ROOT.modulemap.d/Physics.modulemap include//ROOT.modulemap.d/HistPainter.modulemap include//ROOT.modulemap.d/RGL.modulemap include//ROOT.modulemap.d/Recorder.modulemap include//ROOT.modulemap.d/GeomBuilder.modulemap include//ROOT.modulemap.d/RCsg.modulemap include//ROOT.modulemap.d/RHTTP.modulemap include//ROOT.modulemap.d/TreePlayer.modulemap include//ROOT.modulemap.d/Geom.modulemap include//ROOT.modulemap.d/EG.modulemap include//ROOT.modulemap.d/HistFactory.modulemap include//ROOT.modulemap.d/RooStats.modulemap include//ROOT.modulemap.d/Fumili.modulemap include//ROOT.modulemap.d/RooFit.modulemap include//ROOT.modulemap.d/GenVector.modulemap include//ROOT.modulemap.d/TreeViewer.modulemap include//ROOT.modulemap.d/Postscript.modulemap include//ROOT.modulemap.d/Imt.modulemap include//ROOT.modulemap.d/ROOTHistDraw.modulemap include//ROOT.modulemap.d/MultiProc.modulemap include//ROOT.modulemap.d/XMLIO.modulemap include//ROOT.modulemap.d/ROOTNTupleUtil.modulemap include//ROOT.modulemap.d/RDAVIX.modulemap include//ROOT.modulemap.d/RooFitCore.modulemap include//ROOT.modulemap.d/ROOTEve.modulemap include//ROOT.modulemap.d/XMLParser.modulemap include//ROOT.modulemap.d/ROOTVecOps.modulemap include//ROOT.modulemap.d/ROOTFitPanelv7.modulemap include//ROOT.modulemap.d/GuiBld.modulemap include//ROOT.modulemap.d/ROOTTPython.modulemap include//ROOT.modulemap.d/RSQLite.modulemap include//ROOT.modulemap.d/TMVA.modulemap include//ROOT.modulemap.d/Ged.modulemap include//ROOT.modulemap.d/ROOTGraphicsPrimitives.modulemap include//ROOT.modulemap.d/ROOTBrowserv7.modulemap include//ROOT.modulemap.d/Gdml.modulemap include//ROOT.modulemap.d/Core.modulemap include//ROOT.modulemap.d/ROOTGpadv7.modulemap include//ROOT.modulemap.d/Rint.modulemap include//ROOT.modulemap.d/Foam.modulemap include//ROOT.modulemap.d/SQLIO.modulemap include//ROOT.modulemap.d/Hist.modulemap include//ROOT.modulemap.d/Thread.modulemap include//ROOT.modulemap.d/ROOTTreeViewer.modulemap include//ROOT.modulemap.d/RHTTPSniff.modulemap include//ROOT.modulemap.d/ROOTHist.modulemap include//ROOT.modulemap.d/Gviz3d.modulemap include//ROOT.modulemap.d/RootAuth.modulemap include//ROOT.modulemap.d/Genetic.modulemap include//ROOT.modulemap.d/Minuit.modulemap include//ROOT.modulemap.d/Minuit2.modulemap include//ROOT.modulemap.d/ROOTTMVASofie.modulemap include//ROOT.modulemap.d/ROOTWebDisplay.modulemap include//ROOT.modulemap.d/ROOTGeomViewer.modulemap include//ROOT.modulemap.d/TMVAUtils.modulemap include//ROOT.modulemap.d/SPlot.modulemap include//ROOT.modulemap.d/ROOTDataFrame.modulemap include//Smatrix.modulemap include//Eve.modulemap include//RooFitJSONInterface.modulemap include//ASImage.modulemap include//ROOTNTuple.modulemap include//SpectrumPainter.modulemap include//NetxNG.modulemap include//TMVAGui.modulemap include//Quadp.modulemap include//Graf3d.modulemap include//Net.modulemap include//RooFitHS3.modulemap include//module.modulemap.extra.tmp include//RIO.modulemap include//WebGui6.modulemap include//Gui.modulemap include//Gpad.modulemap include//module.modulemap.extra include//Physics.modulemap include//HistPainter.modulemap include//RGL.modulemap include//Recorder.modulemap include//module.modulemap.split.extra.tmp include//GeomBuilder.modulemap include//RCsg.modulemap include//RHTTP.modulemap include//TreePlayer.modulemap include//Geom.modulemap include//EG.modulemap include//xrootd include//HistFactory.modulemap include//RooStats.modulemap include//Fumili.modulemap include//RooFit.modulemap include//GenVector.modulemap include//TreeViewer.modulemap include//Postscript.modulemap include//Imt.modulemap include//ROOTHistDraw.modulemap include//MultiProc.modulemap include//XMLIO.modulemap include//ROOTNTupleUtil.modulemap include//RDAVIX.modulemap include//RooFitCore.modulemap include//ROOTEve.modulemap include//XMLParser.modulemap include//ROOTVecOps.modulemap include//ROOTFitPanelv7.modulemap include//ROOT include//ROOT/TPyDispatcher.h include//GuiBld.modulemap include//ROOTTPython.modulemap include//RSQLite.modulemap include//TMVA.modulemap include//Ged.modulemap include//ROOTGraphicsPrimitives.modulemap include//ROOTBrowserv7.modulemap include//Gdml.modulemap include//Core.modulemap include//ROOTGpadv7.modulemap include//Rint.modulemap include//Foam.modulemap include//SQLIO.modulemap include//Hist.modulemap include//Thread.modulemap include//ROOTTreeViewer.modulemap include//RHTTPSniff.modulemap include//ROOTHist.modulemap include//Gviz3d.modulemap include//RootAuth.modulemap include//Genetic.modulemap include//Minuit.modulemap include//Minuit2.modulemap include//ROOTTMVASofie.modulemap include//ROOTWebDisplay.modulemap include//ROOTGeomViewer.modulemap include//TMVAUtils.modulemap include//module.modulemap.split.extra include//SPlot.modulemap include//ROOTDataFrame.modulemapDo you expect everything to be duplicated many times and to have tmp leftovers?
I will check whether this can be de-duplicated.
@pavlo-svirin, I think I understand the problem. The errors are because we have to make the headers relative to the modulemap, meaning we have to prefix very header file in every modulemap with ../.
However, I think we should move back to the previous model where the modulemap are in the ROOTSYS/include folder. That'd help us progress with this PR.
On a later stage, when/if we decide to resolve https://github.com/root-project/root/issues/16327
@pavlo-svirin, can you rebase this PR?
@pavlo-svirin, can you rebase this PR?
done
@pavlo-svirin, I think I understand the problem. The errors are because we have to make the headers relative to the modulemap, meaning we have to prefix very header file in every modulemap with
../.However, I think we should move back to the previous model where the modulemap are in the ROOTSYS/include folder. That'd help us progress with this PR.
On a later stage, when/if we decide to resolve #16327
I think we should address this comment...