From 49df60b276ffc685ec8a964df2ebe177805d43d5 Mon Sep 17 00:00:00 2001 From: Raphael Isemann Date: Fri, 7 Jul 2017 13:48:39 +0200 Subject: [PATCH 1/5] Add missing dependencies to ROOT_GENERATE_DICTIONARY ROOT_GENERATE_DICTIONARY allows to specify dependencies, but we currently don't actually specify those. As we need this for getting the module dependencies right (as we can't build missing modules on demand), we should add those dependencies here. Then those dependencies propagate to the rootcling invocation which will in the future also generate the C++ module for the selected dictionary. --- bindings/pyroot/CMakeLists.txt | 2 +- bindings/r/CMakeLists.txt | 2 +- bindings/ruby/CMakeLists.txt | 2 +- cmake/modules/RootNewMacros.cmake | 2 +- core/clingutils/CMakeLists.txt | 2 +- core/imt/CMakeLists.txt | 2 +- core/multiproc/CMakeLists.txt | 2 +- core/rint/CMakeLists.txt | 2 +- core/thread/CMakeLists.txt | 2 +- geom/gdml/CMakeLists.txt | 2 +- geom/geocad/CMakeLists.txt | 2 +- geom/geom/CMakeLists.txt | 2 +- geom/geombuilder/CMakeLists.txt | 2 +- geom/geompainter/CMakeLists.txt | 2 +- geom/vecgeom/CMakeLists.txt | 2 +- graf2d/asimage/CMakeLists.txt | 4 ++-- graf2d/cocoa/CMakeLists.txt | 2 +- graf2d/fitsio/CMakeLists.txt | 2 +- graf2d/gpad/CMakeLists.txt | 2 +- graf2d/graf/CMakeLists.txt | 2 +- graf2d/gviz/CMakeLists.txt | 2 +- graf2d/postscript/CMakeLists.txt | 2 +- graf2d/qt/CMakeLists.txt | 2 +- graf2d/quartz/CMakeLists.txt | 2 +- graf2d/win32gdk/CMakeLists.txt | 2 +- graf2d/x11/CMakeLists.txt | 2 +- graf2d/x11ttf/CMakeLists.txt | 2 +- graf3d/eve/CMakeLists.txt | 2 +- graf3d/g3d/CMakeLists.txt | 2 +- graf3d/gl/CMakeLists.txt | 2 +- graf3d/gviz3d/CMakeLists.txt | 2 +- graf3d/x3d/CMakeLists.txt | 2 +- gui/gui/CMakeLists.txt | 2 +- gui/qtgsi/CMakeLists.txt | 2 +- gui/qtroot/CMakeLists.txt | 2 +- hist/hbook/CMakeLists.txt | 2 +- hist/hist/CMakeLists.txt | 2 +- hist/histpainter/CMakeLists.txt | 2 +- hist/spectrumpainter/CMakeLists.txt | 2 +- io/castor/CMakeLists.txt | 2 +- io/dcache/CMakeLists.txt | 2 +- io/gfal/CMakeLists.txt | 2 +- io/hdfs/CMakeLists.txt | 2 +- io/io/CMakeLists.txt | 2 +- io/rfio/CMakeLists.txt | 2 +- io/sql/CMakeLists.txt | 2 +- io/xml/CMakeLists.txt | 2 +- io/xmlparser/CMakeLists.txt | 2 +- math/fftw/CMakeLists.txt | 2 +- math/genetic/CMakeLists.txt | 2 +- math/genvector/CMakeLists.txt | 4 ++-- math/mathcore/CMakeLists.txt | 2 +- math/mathcore/test/CMakeLists.txt | 2 +- math/mathmore/CMakeLists.txt | 2 +- math/minuit2/CMakeLists.txt | 2 +- math/rtools/CMakeLists.txt | 2 +- math/smatrix/CMakeLists.txt | 6 ++++-- math/unuran/CMakeLists.txt | 2 +- misc/memstat/CMakeLists.txt | 2 +- misc/table/CMakeLists.txt | 2 +- montecarlo/eg/CMakeLists.txt | 2 +- montecarlo/pythia6/CMakeLists.txt | 2 +- montecarlo/pythia8/CMakeLists.txt | 2 +- net/alien/CMakeLists.txt | 2 +- net/auth/CMakeLists.txt | 4 ++-- net/bonjour/CMakeLists.txt | 2 +- net/davix/CMakeLists.txt | 2 +- net/http/CMakeLists.txt | 2 +- net/krb5auth/CMakeLists.txt | 2 +- net/ldap/CMakeLists.txt | 2 +- net/monalisa/CMakeLists.txt | 3 ++- net/net/CMakeLists.txt | 2 +- net/netx/CMakeLists.txt | 2 +- net/netxng/CMakeLists.txt | 2 +- proof/proof/CMakeLists.txt | 2 +- proof/proofbench/CMakeLists.txt | 2 +- proof/proofplayer/CMakeLists.txt | 4 ++-- proof/proofx/CMakeLists.txt | 2 +- roofit/roofit/CMakeLists.txt | 2 +- roofit/roofitcore/CMakeLists.txt | 2 +- roofit/roostats/CMakeLists.txt | 3 ++- sql/mysql/CMakeLists.txt | 2 +- sql/odbc/CMakeLists.txt | 2 +- sql/oracle/CMakeLists.txt | 2 +- sql/pgsql/CMakeLists.txt | 2 +- sql/sqlite/CMakeLists.txt | 2 +- test/CMakeLists.txt | 2 +- tmva/pymva/CMakeLists.txt | 2 +- tmva/rmva/CMakeLists.txt | 2 +- tmva/tmva/CMakeLists.txt | 2 +- tmva/tmvagui/CMakeLists.txt | 2 +- tree/tree/CMakeLists.txt | 2 +- tree/treeplayer/CMakeLists.txt | 2 +- tree/treeviewer/CMakeLists.txt | 2 +- 94 files changed, 103 insertions(+), 99 deletions(-) diff --git a/bindings/pyroot/CMakeLists.txt b/bindings/pyroot/CMakeLists.txt index e07a61f5552e6..663f10e4ecea6 100644 --- a/bindings/pyroot/CMakeLists.txt +++ b/bindings/pyroot/CMakeLists.txt @@ -3,7 +3,7 @@ ############################################################################ include_directories(${PYTHON_INCLUDE_DIRS}) -ROOT_GENERATE_DICTIONARY(G__PyROOT *.h MODULE PyROOT LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM") +ROOT_GENERATE_DICTIONARY(G__PyROOT *.h MODULE PyROOT LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Core MathCore) ROOT_ADD_CXX_FLAG(CMAKE_CXX_FLAGS -fno-strict-aliasing) ROOT_ADD_CXX_FLAG(CMAKE_CXX_FLAGS -Wno-parentheses-equality) diff --git a/bindings/r/CMakeLists.txt b/bindings/r/CMakeLists.txt index ecd41aedbb74a..5b0b684f5bdef 100644 --- a/bindings/r/CMakeLists.txt +++ b/bindings/r/CMakeLists.txt @@ -17,7 +17,7 @@ set(R_HEADERS ${CMAKE_SOURCE_DIR}/bindings/r/inc/TRInterface.h ${CMAKE_SOURCE_DIR}/bindings/r/inc/TRDataFrame.h ${CMAKE_SOURCE_DIR}/bindings/r/inc/RExports.h) -ROOT_GENERATE_DICTIONARY(G__RInterface ${R_HEADERS} MODULE ${libname} LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__RInterface ${R_HEADERS} MODULE ${libname} LINKDEF LinkDef.h DEPENDENCIES Core Matrix Thread RIO) ROOT_LINKER_LIBRARY(RInterface *.cxx G__RInterface.cxx LIBRARIES ${R_LIBRARIES} DEPENDENCIES Core Matrix Thread RIO readline) ROOT_INSTALL_HEADERS() diff --git a/bindings/ruby/CMakeLists.txt b/bindings/ruby/CMakeLists.txt index 95604a47cc9f3..ec73ccb6c7d02 100644 --- a/bindings/ruby/CMakeLists.txt +++ b/bindings/ruby/CMakeLists.txt @@ -3,7 +3,7 @@ ############################################################################ include_directories(${RUBY_INCLUDE_DIRS}) -ROOT_GENERATE_DICTIONARY(G__Ruby *.h MODULE Ruby LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__Ruby *.h MODULE Ruby LINKDEF LinkDef.h DEPENDENCIES Hist MathCore) ROOT_LINKER_LIBRARY(Ruby *.cxx G__Ruby.cxx LIBRARIES ${RUBY_LIBRARY} ${CMAKE_DL_LIBS} DEPENDENCIES Hist MathCore) diff --git a/cmake/modules/RootNewMacros.cmake b/cmake/modules/RootNewMacros.cmake index 83085851290c1..f779ea041acdb 100644 --- a/cmake/modules/RootNewMacros.cmake +++ b/cmake/modules/RootNewMacros.cmake @@ -384,7 +384,7 @@ function(ROOT_GENERATE_DICTIONARY dictionary) COMMAND ${command} ${genverbosity} -f ${dictionary}.cxx ${newargs} ${excludepathsargs} ${rootmapargs} ${ARG_OPTIONS} ${definitions} ${includedirs} ${headerfiles} ${_linkdef} IMPLICIT_DEPENDS ${_implicitdeps} - DEPENDS ${_list_of_header_dependencies} ${_linkdef} ${ROOTCINTDEP}) + DEPENDS ${_list_of_header_dependencies} ${_linkdef} ${ROOTCINTDEP} ${ARG_DEPENDENCIES}) get_filename_component(dictname ${dictionary} NAME) #---roottest compability diff --git a/core/clingutils/CMakeLists.txt b/core/clingutils/CMakeLists.txt index a0d2c76eae0c5..2e53b53e59f02 100644 --- a/core/clingutils/CMakeLists.txt +++ b/core/clingutils/CMakeLists.txt @@ -45,7 +45,7 @@ foreach(dict ${stldicts}) string(REPLACE "2" "" header ${dict}) string(REPLACE "complex" "root_std_complex.h" header ${header}) string(REPLACE "multi" "" header ${header}) - ROOT_GENERATE_DICTIONARY(G__std_${dict} ${header} STAGE1 MODULE ${dict}Dict LINKDEF src/${dict}Linkdef.h) + ROOT_GENERATE_DICTIONARY(G__std_${dict} ${header} STAGE1 MODULE ${dict}Dict LINKDEF src/${dict}Linkdef.h DEPENDENCIES Core) ROOT_LINKER_LIBRARY(${dict}Dict G__std_${dict}.cxx DEPENDENCIES Core) endforeach() diff --git a/core/imt/CMakeLists.txt b/core/imt/CMakeLists.txt index eb894ef0b7004..9d2743fe15b53 100644 --- a/core/imt/CMakeLists.txt +++ b/core/imt/CMakeLists.txt @@ -6,7 +6,7 @@ set(sources base.cxx) if (imt) set(headers ROOT/TPoolManager.hxx ROOT/TThreadExecutor.hxx) - ROOT_GENERATE_DICTIONARY(G__Imt ${headers} STAGE1 MODULE Imt LINKDEF LinkDef.h) # For auto{loading,parsing} + ROOT_GENERATE_DICTIONARY(G__Imt ${headers} STAGE1 MODULE Imt LINKDEF LinkDef.h DEPENDENCIES Core Thread) # For auto{loading,parsing} set(sources ${sources} TImplicitMT.cxx TThreadExecutor.cxx TPoolManager.cxx G__Imt.cxx) endif() diff --git a/core/multiproc/CMakeLists.txt b/core/multiproc/CMakeLists.txt index b66f5674589e3..a40ac8a988b62 100644 --- a/core/multiproc/CMakeLists.txt +++ b/core/multiproc/CMakeLists.txt @@ -6,7 +6,7 @@ set(headers TMPClient.h MPSendRecv.h ROOT/TProcessExecutor.hxx TProcPool.h TMPWo set(sources TMPClient.cxx MPSendRecv.cxx TProcessExecutor.cxx TMPWorker.cxx) -ROOT_GENERATE_DICTIONARY(G__MultiProc ${headers} MODULE MultiProc LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__MultiProc ${headers} MODULE MultiProc LINKDEF LinkDef.h DEPENDENCIES Core Net Tree) ROOT_OBJECT_LIBRARY(MultiProcObjs ${sources} G__MultiProc.cxx) ROOT_LINKER_LIBRARY(MultiProc $ DEPENDENCIES Core Net dl) diff --git a/core/rint/CMakeLists.txt b/core/rint/CMakeLists.txt index 692ea5922793f..f86a887c447da 100644 --- a/core/rint/CMakeLists.txt +++ b/core/rint/CMakeLists.txt @@ -2,7 +2,7 @@ # CMakeLists.txt file for building ROOT core/rint package ############################################################################ -ROOT_GENERATE_DICTIONARY(G__Rint *.h STAGE1 MODULE Rint LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM") +ROOT_GENERATE_DICTIONARY(G__Rint *.h STAGE1 MODULE Rint LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Core) ROOT_LINKER_LIBRARY(Rint *.cxx G__Rint.cxx DEPENDENCIES Core) ROOT_INSTALL_HEADERS() diff --git a/core/thread/CMakeLists.txt b/core/thread/CMakeLists.txt index 1e4e0a48b3880..d7e11ad85effd 100644 --- a/core/thread/CMakeLists.txt +++ b/core/thread/CMakeLists.txt @@ -27,7 +27,7 @@ else() TWin32Thread.cxx TWin32ThreadFactory.cxx) endif() -ROOT_GENERATE_DICTIONARY(G__Thread ${headers} STAGE1 MODULE Thread LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__Thread ${headers} STAGE1 MODULE Thread LINKDEF LinkDef.h DEPENDENCIES Core) ROOT_OBJECT_LIBRARY(ThreadObjs ${sources} G__Thread.cxx) ROOT_LINKER_LIBRARY(Thread $ LIBRARIES ${CMAKE_THREAD_LIBS_INIT} DEPENDENCIES Core BUILTINS) diff --git a/geom/gdml/CMakeLists.txt b/geom/gdml/CMakeLists.txt index 005d880dd7a6a..4841f2a7636b7 100644 --- a/geom/gdml/CMakeLists.txt +++ b/geom/gdml/CMakeLists.txt @@ -2,7 +2,7 @@ # CMakeLists.txt file for building ROOT geom/gdml package ############################################################################ -ROOT_GENERATE_DICTIONARY(G__Gdml *.h MODULE Gdml LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__Gdml *.h MODULE Gdml LINKDEF LinkDef.h DEPENDENCIES Geom XMLIO Hist RIO) ROOT_LINKER_LIBRARY(Gdml *.cxx G__Gdml.cxx DEPENDENCIES Geom XMLIO Hist RIO) ROOT_INSTALL_HEADERS() diff --git a/geom/geocad/CMakeLists.txt b/geom/geocad/CMakeLists.txt index b296b26d0c596..02e93980b76c3 100644 --- a/geom/geocad/CMakeLists.txt +++ b/geom/geocad/CMakeLists.txt @@ -8,7 +8,7 @@ include_directories(${OCC_INCLUDE_DIR}) ROOT_ADD_CXX_FLAG(CMAKE_CXX_FLAGS -Wno-overloaded-virtual) ROOT_ADD_CXX_FLAG(CMAKE_CXX_FLAGS -Wno-ignored-qualifiers) -ROOT_GENERATE_DICTIONARY(G__GeoCad *.h MODULE GeoCad LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__GeoCad *.h MODULE GeoCad LINKDEF LinkDef.h DEPENDENCIES Geom) ROOT_LINKER_LIBRARY(GeoCad *.cxx G__GeoCad.cxx LIBRARIES Core ${OCC_LIBRARIES} DEPENDENCIES Geom) diff --git a/geom/geom/CMakeLists.txt b/geom/geom/CMakeLists.txt index d2d2a21f9c0fc..8ace62db8d65c 100644 --- a/geom/geom/CMakeLists.txt +++ b/geom/geom/CMakeLists.txt @@ -21,7 +21,7 @@ set(headers2 TGeoPatternFinder.h TGeoCache.h TVirtualMagField.h TGeoExtension.h TGeoParallelWorld.h) -ROOT_GENERATE_DICTIONARY(G__${libname} ${headers1} ${headers2} MODULE ${libname} LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__${libname} ${headers1} ${headers2} MODULE ${libname} LINKDEF LinkDef.h DEPENDENCIES Thread RIO MathCore) ROOT_LINKER_LIBRARY(${libname} *.cxx G__${libname}.cxx DEPENDENCIES Thread RIO MathCore) diff --git a/geom/geombuilder/CMakeLists.txt b/geom/geombuilder/CMakeLists.txt index d573242ed2fa7..4222f8dbd8404 100644 --- a/geom/geombuilder/CMakeLists.txt +++ b/geom/geombuilder/CMakeLists.txt @@ -13,7 +13,7 @@ set(headers TGeoVolumeEditor.h TGeoBBoxEditor.h TGeoMediumEditor.h TGeoTorusEditor.h TGeoEltuEditor.h TGeoHypeEditor.h TGeoPgonEditor.h TGeoTrapEditor.h TGeoGedFrame.h ) -ROOT_GENERATE_DICTIONARY(G__${libname} ${headers} MODULE ${libname} LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__${libname} ${headers} MODULE ${libname} LINKDEF LinkDef.h DEPENDENCIES Geom Graf3d Gpad Graf Gui Ged) ROOT_LINKER_LIBRARY(${libname} *.cxx G__${libname}.cxx DEPENDENCIES Geom Graf3d Gpad Graf Gui Ged) diff --git a/geom/geompainter/CMakeLists.txt b/geom/geompainter/CMakeLists.txt index 91c46e30ef23c..06259b95b1884 100644 --- a/geom/geompainter/CMakeLists.txt +++ b/geom/geompainter/CMakeLists.txt @@ -5,7 +5,7 @@ set(libname GeomPainter) -ROOT_GENERATE_DICTIONARY(G__${libname} T*.h MODULE ${libname} LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__${libname} T*.h MODULE ${libname} LINKDEF LinkDef.h DEPENDENCIES Geom Tree Graf3d Hist Gpad RIO) ROOT_LINKER_LIBRARY(${libname} *.cxx G__${libname}.cxx DEPENDENCIES Geom Tree Graf3d Hist Gpad RIO) diff --git a/geom/vecgeom/CMakeLists.txt b/geom/vecgeom/CMakeLists.txt index c453b43d0fa2f..07611cbfe216b 100644 --- a/geom/vecgeom/CMakeLists.txt +++ b/geom/vecgeom/CMakeLists.txt @@ -12,7 +12,7 @@ if ( Vc_FOUND ) endif() endif() -ROOT_GENERATE_DICTIONARY(G__ConverterVG TGeoVGConverter.h TGeoVGShape.h MODULE ConverterVG LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__ConverterVG TGeoVGConverter.h TGeoVGShape.h MODULE ConverterVG LINKDEF LinkDef.h DEPENDENCIES Geom) ROOT_LINKER_LIBRARY(ConverterVG *.cxx G__ConverterVG.cxx LIBRARIES ${VECGEOM_LIBRARIES} -ldl DEPENDENCIES Geom) diff --git a/graf2d/asimage/CMakeLists.txt b/graf2d/asimage/CMakeLists.txt index 44d9d03bcced5..c70c3b0e6aaf3 100644 --- a/graf2d/asimage/CMakeLists.txt +++ b/graf2d/asimage/CMakeLists.txt @@ -10,13 +10,13 @@ endif() #---Build ASImage/ASImageGui libraries--------------------------------------- include_directories(${FREETYPE_INCLUDE_DIRS} ${AFTERIMAGE_INCLUDE_DIR} ${X11_INCLUDE_DIR}) -ROOT_GENERATE_DICTIONARY(G__ASImage TASImage.h TASImagePlugin.h TASPluginGS.h MODULE ASImage LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM") +ROOT_GENERATE_DICTIONARY(G__ASImage TASImage.h TASImagePlugin.h TASPluginGS.h MODULE ASImage LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Graf) ROOT_LINKER_LIBRARY(ASImage TASImage.cxx TASPluginGS.cxx G__ASImage.cxx LIBRARIES Core ${AFTERIMAGE_LIBRARIES} ${FREETYPE_LIBRARIES} ${ASEXTRA_LIBRARIES} ${X11_LIBRARIES} ${ZLIB_LIBRARIES} DEPENDENCIES Graf BUILTINS AFTERIMAGE) -ROOT_GENERATE_DICTIONARY(G__ASImageGui TASPaletteEditor.h MODULE ASImageGui LINKDEF LinkDefGui.h OPTIONS "-writeEmptyRootPCM") +ROOT_GENERATE_DICTIONARY(G__ASImageGui TASPaletteEditor.h MODULE ASImageGui LINKDEF LinkDefGui.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Gui) ROOT_LINKER_LIBRARY(ASImageGui TASPaletteEditor.cxx G__ASImageGui.cxx LIBRARIES ${AFTERIMAGE_LIBRARIES} ${FREETYPE_LIBRARIES} ${ASEXTRA_LIBRARIES} ${X11_LIBRARIES} diff --git a/graf2d/cocoa/CMakeLists.txt b/graf2d/cocoa/CMakeLists.txt index af47d9de4ccf6..8b031da6e25c0 100644 --- a/graf2d/cocoa/CMakeLists.txt +++ b/graf2d/cocoa/CMakeLists.txt @@ -16,7 +16,7 @@ endif(cxxmodules) include_directories(${FREETYPE_INCLUDE_DIRS}) -ROOT_GENERATE_DICTIONARY(G__Cocoa T*.h MODULE GCocoa LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__Cocoa T*.h MODULE GCocoa LINKDEF LinkDef.h DEPENDENCIES Gui GQuartz) ROOT_LINKER_LIBRARY(GCocoa *.mm G__Cocoa.cxx LIBRARIES "-framework Cocoa" "-framework OpenGL" ${FREETYPE_LIBRARIES} DEPENDENCIES Gui GQuartz ) ROOT_INSTALL_HEADERS() diff --git a/graf2d/fitsio/CMakeLists.txt b/graf2d/fitsio/CMakeLists.txt index cf4a4bd2ff2e7..cdb854b23ca5c 100644 --- a/graf2d/fitsio/CMakeLists.txt +++ b/graf2d/fitsio/CMakeLists.txt @@ -5,7 +5,7 @@ include_directories(${CFITSIO_INCLUDE_DIR}) -ROOT_GENERATE_DICTIONARY(G__FITSIO *.h MODULE FITSIO LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM") +ROOT_GENERATE_DICTIONARY(G__FITSIO *.h MODULE FITSIO LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Hist Gpad Graf) ROOT_LINKER_LIBRARY(FITSIO *.cxx G__FITSIO.cxx LIBRARIES ${CFITSIO_LIBRARIES} DEPENDENCIES Hist Gpad Graf Matrix BUILTINS CFITSIO) diff --git a/graf2d/gpad/CMakeLists.txt b/graf2d/gpad/CMakeLists.txt index 84a14c5ff0bbc..8b812f49eb53b 100644 --- a/graf2d/gpad/CMakeLists.txt +++ b/graf2d/gpad/CMakeLists.txt @@ -8,7 +8,7 @@ if(root7) ROOT_GLOB_HEADERS(Gpad_v7_dict_headers ${CMAKE_CURRENT_SOURCE_DIR}/v7/inc/ROOT/T*.hxx) endif() -ROOT_GENERATE_DICTIONARY(G__Gpad *.h ${Gpad_v7_dict_headers} MODULE Gpad LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM") +ROOT_GENERATE_DICTIONARY(G__Gpad *.h ${Gpad_v7_dict_headers} MODULE Gpad LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Graf MultiProc Hist) ROOT_LINKER_LIBRARY(Gpad *.cxx ${root7src} G__Gpad.cxx DEPENDENCIES Graf Hist) ROOT_INSTALL_HEADERS() diff --git a/graf2d/graf/CMakeLists.txt b/graf2d/graf/CMakeLists.txt index fae2fbf19ce42..82a5305d660dc 100644 --- a/graf2d/graf/CMakeLists.txt +++ b/graf2d/graf/CMakeLists.txt @@ -3,7 +3,7 @@ # @author Pere Mato, CERN ############################################################################ -ROOT_GENERATE_DICTIONARY(G__Graf MODULE Graf *.h LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM") +ROOT_GENERATE_DICTIONARY(G__Graf MODULE Graf *.h LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Hist Matrix MathCore RIO) include_directories(${FREETYPE_INCLUDE_DIRS}) diff --git a/graf2d/gviz/CMakeLists.txt b/graf2d/gviz/CMakeLists.txt index ffaea04c542b9..40bef3ca9b9d6 100644 --- a/graf2d/gviz/CMakeLists.txt +++ b/graf2d/gviz/CMakeLists.txt @@ -5,7 +5,7 @@ include_directories(${GRAPHVIZ_INCLUDE_DIR}/graphviz) -ROOT_GENERATE_DICTIONARY(G__Gviz *.h MODULE Gviz LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM") +ROOT_GENERATE_DICTIONARY(G__Gviz *.h MODULE Gviz LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Hist Graf) ROOT_LINKER_LIBRARY(Gviz *.cxx G__Gviz.cxx LIBRARIES ${GRAPHVIZ_LIBRARIES} diff --git a/graf2d/postscript/CMakeLists.txt b/graf2d/postscript/CMakeLists.txt index d97c0a6a708af..0afc7bb000c15 100644 --- a/graf2d/postscript/CMakeLists.txt +++ b/graf2d/postscript/CMakeLists.txt @@ -3,7 +3,7 @@ # @author Pere Mato, CERN ############################################################################ -ROOT_GENERATE_DICTIONARY(G__PostScript *.h MODULE Postscript LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM") +ROOT_GENERATE_DICTIONARY(G__PostScript *.h MODULE Postscript LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Graf) ROOT_LINKER_LIBRARY(Postscript *.cxx G__PostScript.cxx LIBRARIES ${ZLIB_LIBRARIES} mathtext DEPENDENCIES Graf) ROOT_INSTALL_HEADERS() diff --git a/graf2d/qt/CMakeLists.txt b/graf2d/qt/CMakeLists.txt index 53ba55aaeab3f..c77f82a662780 100644 --- a/graf2d/qt/CMakeLists.txt +++ b/graf2d/qt/CMakeLists.txt @@ -17,7 +17,7 @@ QT4_WRAP_CPP(mocfiles inc/TQtWidget.h inc/TQtEmitter.h inc/TQtClientFilter.h inc/TQtClientGuard.h inc/TQtClientWidget.h inc/TQtTimer.h inc/TQtRootSlot.h) -ROOT_GENERATE_DICTIONARY(G__GQt ${headers} MODULE GQt LINKDEF LinkDef.h OPTIONS -Wno-deprecated) +ROOT_GENERATE_DICTIONARY(G__GQt ${headers} MODULE GQt LINKDEF LinkDef.h OPTIONS -Wno-deprecated DEPENDENCIES Gui Gpad Graf Rint) ROOT_LINKER_LIBRARY(GQt *.cxx ${mocfiles} G__GQt.cxx LIBRARIES ${QT_LIBRARIES} DEPENDENCIES Gui Gpad Graf Rint) diff --git a/graf2d/quartz/CMakeLists.txt b/graf2d/quartz/CMakeLists.txt index abc83b42b51d0..0671494368b6d 100644 --- a/graf2d/quartz/CMakeLists.txt +++ b/graf2d/quartz/CMakeLists.txt @@ -14,7 +14,7 @@ if(cxxmodules) string(REPLACE "${ROOT_CXXMODULES_CFLAGS}" "" CMAKE_C_FLAGS ${CMAKE_C_FLAGS}) endif(cxxmodules) -ROOT_GENERATE_DICTIONARY(G__Quartz "" MODULE GQuartz LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__Quartz "" MODULE GQuartz LINKDEF LinkDef.h DEPENDENCIES Core) ROOT_LINKER_LIBRARY(GQuartz *.mm G__Quartz.cxx LIBRARIES "-framework Cocoa" DEPENDENCIES Core) ROOT_INSTALL_HEADERS() diff --git a/graf2d/win32gdk/CMakeLists.txt b/graf2d/win32gdk/CMakeLists.txt index 7ef14d6ae5a2c..0ea251183199c 100644 --- a/graf2d/win32gdk/CMakeLists.txt +++ b/graf2d/win32gdk/CMakeLists.txt @@ -85,7 +85,7 @@ set_target_properties(GDKLIB PROPERTIES FOLDER Builtins) # ROOT Dicts for the win32gdk library # -ROOT_GENERATE_DICTIONARY(G__Win32gdk TGWin32.h TGWin32GL.h MODULE Win32gdk LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__Win32gdk TGWin32.h TGWin32GL.h MODULE Win32gdk LINKDEF LinkDef.h DEPENDENCIES Core Graf) # diff --git a/graf2d/x11/CMakeLists.txt b/graf2d/x11/CMakeLists.txt index a0a3f4db48cde..40b4d49f801a9 100644 --- a/graf2d/x11/CMakeLists.txt +++ b/graf2d/x11/CMakeLists.txt @@ -6,7 +6,7 @@ set(libname GX11) include_directories(${X11_INCLUDE_DIR}) -ROOT_GENERATE_DICTIONARY(G__${libname} T*.h MODULE ${libname} LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM") +ROOT_GENERATE_DICTIONARY(G__${libname} T*.h MODULE ${libname} LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Core) ROOT_LINKER_LIBRARY(${libname} *.cxx *.c G__${libname}.cxx LIBRARIES Core ${X11_LIBRARIES} ${X11_Xpm_LIB} ${CMAKE_THREAD_LIBS_INIT}) diff --git a/graf2d/x11ttf/CMakeLists.txt b/graf2d/x11ttf/CMakeLists.txt index 06a824d6e33c4..cecef1a465b0e 100644 --- a/graf2d/x11ttf/CMakeLists.txt +++ b/graf2d/x11ttf/CMakeLists.txt @@ -6,7 +6,7 @@ set(libname GX11TTF) include_directories(${FREETYPE_INCLUDE_DIRS} ${X11_INCLUDE_DIR}) -ROOT_GENERATE_DICTIONARY(G__${libname} *.h MODULE ${libname} LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM") +ROOT_GENERATE_DICTIONARY(G__${libname} *.h MODULE ${libname} LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES GX11 Graf) ROOT_LINKER_LIBRARY(${libname} *.cxx G__${libname}.cxx diff --git a/graf3d/eve/CMakeLists.txt b/graf3d/eve/CMakeLists.txt index c4fca4dae52ec..364728fa68e14 100644 --- a/graf3d/eve/CMakeLists.txt +++ b/graf3d/eve/CMakeLists.txt @@ -23,7 +23,7 @@ if(MACOSX_GLU_DEPRECATED) add_definitions(-Wno-deprecated-declarations) endif() -ROOT_GENERATE_DICTIONARY(G__Eve ${headers1} ${headers2} MODULE Eve LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__Eve ${headers1} ${headers2} MODULE Eve LINKDEF LinkDef.h DEPENDENCIES Geom Ged RGL Physics EG) ROOT_LINKER_LIBRARY(Eve *.cxx G__Eve.cxx LIBRARIES ${OPENGL_LIBRARIES} GLEW ${FTGL_LIBRARIES} Core DEPENDENCIES Geom Ged RGL Physics EG) diff --git a/graf3d/g3d/CMakeLists.txt b/graf3d/g3d/CMakeLists.txt index 6bfe9c23c1082..1f8cff7dcf2b2 100644 --- a/graf3d/g3d/CMakeLists.txt +++ b/graf3d/g3d/CMakeLists.txt @@ -8,7 +8,7 @@ ROOT_GLOB_HEADERS(headers1 ${CMAKE_CURRENT_SOURCE_DIR}/inc/*.h) list(REMOVE_ITEM headers1 ${CMAKE_CURRENT_SOURCE_DIR}/inc/X3DBuffer.h) set(headers2 X3DBuffer.h ) -ROOT_GENERATE_DICTIONARY(G__${libname} ${headers1} MODULE ${libname} LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__${libname} ${headers1} MODULE ${libname} LINKDEF LinkDef.h DEPENDENCIES Graf Hist Gpad MathCore) ROOT_LINKER_LIBRARY(${libname} *.cxx *.c G__${libname}.cxx DEPENDENCIES Graf Hist Gpad MathCore) ROOT_INSTALL_HEADERS() diff --git a/graf3d/gl/CMakeLists.txt b/graf3d/gl/CMakeLists.txt index d2bc562156457..75315c2412797 100644 --- a/graf3d/gl/CMakeLists.txt +++ b/graf3d/gl/CMakeLists.txt @@ -37,7 +37,7 @@ endif() set_source_files_properties(src/TGLFontManager.cxx PROPERTIES COMPILE_FLAGS "${FTGL_CFLAGS}") set_source_files_properties(src/TGLText.cxx PROPERTIES COMPILE_FLAGS "${FTGL_CFLAGS}") -ROOT_GENERATE_DICTIONARY(G__GL ${headers} MODULE RGL LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM") +ROOT_GENERATE_DICTIONARY(G__GL ${headers} MODULE RGL LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Hist Gui Ged) ROOT_LINKER_LIBRARY(RGL ${sources} G__GL.cxx LIBRARIES ${gllibs} ${GL2PS_LIBRARIES} GLEW ${FTGL_LIBRARIES} DEPENDENCIES Hist Gui Ged) diff --git a/graf3d/gviz3d/CMakeLists.txt b/graf3d/gviz3d/CMakeLists.txt index 31355631724fa..e2ea14b43f1ca 100644 --- a/graf3d/gviz3d/CMakeLists.txt +++ b/graf3d/gviz3d/CMakeLists.txt @@ -2,7 +2,7 @@ # CMakeLists.txt file for building ROOT graf3d/gviz3d package ############################################################################ -ROOT_GENERATE_DICTIONARY(G__Gviz3d *.h MODULE Gviz3d LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__Gviz3d *.h MODULE Gviz3d LINKDEF LinkDef.h DEPENDENCIES Gui Ged Geom RGL) ROOT_LINKER_LIBRARY(Gviz3d *.cxx G__Gviz3d.cxx LIBRARIES GLEW ${FTGL_LIBRARIES} DEPENDENCIES Gui Ged Geom RGL) ROOT_INSTALL_HEADERS() diff --git a/graf3d/x3d/CMakeLists.txt b/graf3d/x3d/CMakeLists.txt index de55fc2930eb3..f4c1d77f1e205 100644 --- a/graf3d/x3d/CMakeLists.txt +++ b/graf3d/x3d/CMakeLists.txt @@ -6,7 +6,7 @@ set(libname X3d) include_directories(${X11_INCLUDE_DIR}) -ROOT_GENERATE_DICTIONARY(G__X3D TViewerX3D.h TX3DFrame.h MODULE ${libname} LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__X3D TViewerX3D.h TX3DFrame.h MODULE ${libname} LINKDEF LinkDef.h DEPENDENCIES Graf3d Gui) ROOT_LINKER_LIBRARY(${libname} *.cxx *.c G__X3D.cxx LIBRARIES ${X11_LIBRARIES} DEPENDENCIES Graf3d Gui) ROOT_INSTALL_HEADERS() diff --git a/gui/gui/CMakeLists.txt b/gui/gui/CMakeLists.txt index e496881722753..2a5b87a141d72 100644 --- a/gui/gui/CMakeLists.txt +++ b/gui/gui/CMakeLists.txt @@ -33,7 +33,7 @@ set(headers3 TRootGuiFactory.h TRootApplication.h TRootCanvas.h TRootBrowser.h TGSplitFrame.h TGShapedFrame.h TGEventHandler.h TGTextViewStream.h) -ROOT_GENERATE_DICTIONARY(G__Gui ${headers1} ${headers2} ${headers3} MODULE ${libname} LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM") +ROOT_GENERATE_DICTIONARY(G__Gui ${headers1} ${headers2} ${headers3} MODULE ${libname} LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Gpad Graf MathCore) ROOT_LINKER_LIBRARY(${libname} *.cxx G__Gui.cxx LIBRARIES Core DEPENDENCIES Gpad Graf MathCore) #Use 1 big dict diff --git a/gui/qtgsi/CMakeLists.txt b/gui/qtgsi/CMakeLists.txt index 5aa5b4effe793..2524a6ef52154 100644 --- a/gui/qtgsi/CMakeLists.txt +++ b/gui/qtgsi/CMakeLists.txt @@ -17,7 +17,7 @@ ROOT_ADD_CXX_FLAG(CMAKE_CXX_FLAGS -Wno-shadow) QT4_WRAP_CPP(mocfiles inc/TQCanvasMenu.h inc/TQRootApplication.h inc/TQRootCanvas.h inc/TQRootDialog.h) -ROOT_GENERATE_DICTIONARY(G__QtGSI *.h MODULE QtGSI LINKDEF LinkDef.h OPTIONS -DQTVERS=0x${QT_VERSION_NUM} -Wno-deprecated) +ROOT_GENERATE_DICTIONARY(G__QtGSI *.h MODULE QtGSI LINKDEF LinkDef.h OPTIONS -DQTVERS=0x${QT_VERSION_NUM} -Wno-deprecated DEPENDENCIES Gui Gpad) ROOT_LINKER_LIBRARY(QtGSI *.cxx ${mocfiles} G__QtGSI.cxx LIBRARIES ${QT_LIBRARIES} ${QT_QT3SUPPORT_LIBRARY} DEPENDENCIES Gui Gpad) diff --git a/gui/qtroot/CMakeLists.txt b/gui/qtroot/CMakeLists.txt index 8f27b689dfc32..d663adc4252f1 100644 --- a/gui/qtroot/CMakeLists.txt +++ b/gui/qtroot/CMakeLists.txt @@ -9,7 +9,7 @@ ROOT_ADD_CXX_FLAG(CMAKE_CXX_FLAGS -Wno-deprecated-register) ROOT_ADD_CXX_FLAG(CMAKE_CXX_FLAGS -Wno-deprecated) ROOT_ADD_CXX_FLAG(CMAKE_CXX_FLAGS -Wno-uninitialized) -ROOT_GENERATE_DICTIONARY(G__QtRoot *.h MODULE QtRoot LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__QtRoot *.h MODULE QtRoot LINKDEF LinkDef.h DEPENDENCIES Gui GQt) ROOT_LINKER_LIBRARY(QtRoot *.cxx G__QtRoot.cxx LIBRARIES Core DEPENDENCIES Gui GQt) diff --git a/hist/hbook/CMakeLists.txt b/hist/hbook/CMakeLists.txt index c78b44a277112..532d1bf0770a1 100644 --- a/hist/hbook/CMakeLists.txt +++ b/hist/hbook/CMakeLists.txt @@ -4,7 +4,7 @@ set(libname Hbook) -ROOT_GENERATE_DICTIONARY(G__${libname} *.h MODULE ${libname} LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM") +ROOT_GENERATE_DICTIONARY(G__${libname} *.h MODULE ${libname} LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Hist Matrix Tree Graf TreePlayer RIO) ROOT_LINKER_LIBRARY(${libname} *.cxx G__${libname}.cxx DEPENDENCIES Hist Matrix Tree Graf TreePlayer RIO minicern ) ROOT_INSTALL_HEADERS() diff --git a/hist/hist/CMakeLists.txt b/hist/hist/CMakeLists.txt index cab21763a60bb..6e500a48f5c0a 100644 --- a/hist/hist/CMakeLists.txt +++ b/hist/hist/CMakeLists.txt @@ -9,7 +9,7 @@ if(root7) ROOT_GLOB_HEADERS(Hist_v7_dict_headers ${CMAKE_CURRENT_SOURCE_DIR}/v7/inc/ROOT/T*.hxx) endif() -ROOT_GENERATE_DICTIONARY(G__${libname} *.h Math/*.h v5/*.h ${Hist_v7_dict_headers} MODULE ${libname} LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM") +ROOT_GENERATE_DICTIONARY(G__${libname} *.h Math/*.h v5/*.h ${Hist_v7_dict_headers} MODULE ${libname} LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Matrix MathCore RIO) ROOT_LINKER_LIBRARY(${libname} *.cxx ${root7src} G__${libname}.cxx DEPENDENCIES Matrix MathCore RIO) ROOT_INSTALL_HEADERS() diff --git a/hist/histpainter/CMakeLists.txt b/hist/histpainter/CMakeLists.txt index af5a0970b38c3..b2cccbad97b3a 100644 --- a/hist/histpainter/CMakeLists.txt +++ b/hist/histpainter/CMakeLists.txt @@ -4,7 +4,7 @@ set(libname HistPainter) -ROOT_GENERATE_DICTIONARY(G__${libname} *.h MODULE ${libname} LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM") +ROOT_GENERATE_DICTIONARY(G__${libname} *.h MODULE ${libname} LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Graf Hist Matrix MathCore Gpad) if(root7) ROOT_GLOB_SOURCES(root7src RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} v7/src/*.cxx) diff --git a/hist/spectrumpainter/CMakeLists.txt b/hist/spectrumpainter/CMakeLists.txt index 8be9e941934c1..f51cea2f67d8d 100644 --- a/hist/spectrumpainter/CMakeLists.txt +++ b/hist/spectrumpainter/CMakeLists.txt @@ -4,7 +4,7 @@ set(libname SpectrumPainter) -ROOT_GENERATE_DICTIONARY(G__Spectrum2Painter *.h MODULE ${libname} LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM") +ROOT_GENERATE_DICTIONARY(G__Spectrum2Painter *.h MODULE ${libname} LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Graf Hist) ROOT_LINKER_LIBRARY(${libname} *.cxx G__Spectrum2Painter.cxx DEPENDENCIES Graf Hist ) diff --git a/io/castor/CMakeLists.txt b/io/castor/CMakeLists.txt index 8f69ae879c95a..9f9ab0a52e2f6 100644 --- a/io/castor/CMakeLists.txt +++ b/io/castor/CMakeLists.txt @@ -8,7 +8,7 @@ if(CASTOR_VERSION VERSION_GREATER "2.0.0") add_definitions(-DR__CASTOR2) endif() -ROOT_GENERATE_DICTIONARY(G__CASTOR *.h MODULE RCastor LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__CASTOR *.h MODULE RCastor LINKDEF LinkDef.h DEPENDENCIES Net RIO) ROOT_ADD_CXX_FLAG(CMAKE_CXX_FLAGS -Wno-shadow) ROOT_LINKER_LIBRARY(RCastor *.cxx G__CASTOR.cxx LIBRARIES Core ${CASTOR_LIBRARIES} ${CASTOR_rfio_LIBRARY} diff --git a/io/dcache/CMakeLists.txt b/io/dcache/CMakeLists.txt index a6462f3e16ad5..6244ca2214802 100644 --- a/io/dcache/CMakeLists.txt +++ b/io/dcache/CMakeLists.txt @@ -7,7 +7,7 @@ add_definitions(-pthread) ROOT_ADD_CXX_FLAG(CMAKE_CXX_FLAGS -Wno-ignored-qualifiers) -ROOT_GENERATE_DICTIONARY(G__DCache *.h MODULE DCache LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__DCache *.h MODULE DCache LINKDEF LinkDef.h DEPENDENCIES Net RIO) ROOT_LINKER_LIBRARY(DCache *.cxx G__DCache.cxx LIBRARIES Core ${DCAP_LIBRARIES} DEPENDENCIES Net RIO) ROOT_INSTALL_HEADERS() diff --git a/io/gfal/CMakeLists.txt b/io/gfal/CMakeLists.txt index 08f82582e4b9a..ee403eae81dc6 100644 --- a/io/gfal/CMakeLists.txt +++ b/io/gfal/CMakeLists.txt @@ -6,7 +6,7 @@ include_directories(${GFAL_INCLUDE_DIRS}) add_definitions(-D_FILE_OFFSET_BITS=64) -ROOT_GENERATE_DICTIONARY(G__GFAL *.h MODULE GFAL LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__GFAL *.h MODULE GFAL LINKDEF LinkDef.h DEPENDENCIES Net RIO) ROOT_LINKER_LIBRARY(GFAL *.cxx G__GFAL.cxx LIBRARIES Core ${GFAL_LIBRARIES} DEPENDENCIES Net RIO) ROOT_INSTALL_HEADERS() diff --git a/io/hdfs/CMakeLists.txt b/io/hdfs/CMakeLists.txt index 06e71e1248f34..6fcd28545e64c 100644 --- a/io/hdfs/CMakeLists.txt +++ b/io/hdfs/CMakeLists.txt @@ -6,7 +6,7 @@ include_directories(${HDFS_INCLUDE_DIRS}) add_definitions(-D_FILE_OFFSET_BITS=64) -ROOT_GENERATE_DICTIONARY(G__HDFS *.h MODULE HDFS LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__HDFS *.h MODULE HDFS LINKDEF LinkDef.h DEPENDENCIES Net RIO) ROOT_LINKER_LIBRARY(HDFS *.cxx G__HDFS.cxx LIBRARIES Core ${HDFS_LIBRARIES} DEPENDENCIES Net RIO) ROOT_INSTALL_HEADERS() diff --git a/io/io/CMakeLists.txt b/io/io/CMakeLists.txt index d4b3a663f075a..3827d2b632662 100644 --- a/io/io/CMakeLists.txt +++ b/io/io/CMakeLists.txt @@ -6,7 +6,7 @@ set(libname RIO) include_directories(${CMAKE_SOURCE_DIR}/core/clib/res) -ROOT_GENERATE_DICTIONARY(G__IO *.h ROOT/*.hxx STAGE1 MODULE ${libname} LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__IO *.h ROOT/*.hxx STAGE1 MODULE ${libname} LINKDEF LinkDef.h DEPENDENCIES Core Thread) if(root7) ROOT_GLOB_SOURCES(root7src RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} v7/src/*.cxx) diff --git a/io/rfio/CMakeLists.txt b/io/rfio/CMakeLists.txt index 4d9b6919a5d58..0071b80e2f1ae 100644 --- a/io/rfio/CMakeLists.txt +++ b/io/rfio/CMakeLists.txt @@ -2,7 +2,7 @@ # CMakeLists.txt file for building ROOT io/rfio package ############################################################################ -ROOT_GENERATE_DICTIONARY(G__RFIO *.h MODULE RFIO LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__RFIO *.h MODULE RFIO LINKDEF LinkDef.h DEPENDENCIES Net RIO) ROOT_ADD_CXX_FLAG(CMAKE_CXX_FLAGS -Wno-shadow) diff --git a/io/sql/CMakeLists.txt b/io/sql/CMakeLists.txt index 74ef6578d4b32..dc19cd43f8459 100644 --- a/io/sql/CMakeLists.txt +++ b/io/sql/CMakeLists.txt @@ -2,7 +2,7 @@ # CMakeLists.txt file for building ROOT io/sql package ############################################################################ -ROOT_GENERATE_DICTIONARY(G__SQL *.h MODULE SQLIO LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__SQL *.h MODULE SQLIO LINKDEF LinkDef.h DEPENDENCIES Net RIO ) ROOT_LINKER_LIBRARY(SQLIO *.cxx G__SQL.cxx DEPENDENCIES Net RIO ) ROOT_INSTALL_HEADERS() diff --git a/io/xml/CMakeLists.txt b/io/xml/CMakeLists.txt index cae4d4c30d632..bd1c2071ed1be 100644 --- a/io/xml/CMakeLists.txt +++ b/io/xml/CMakeLists.txt @@ -2,7 +2,7 @@ # CMakeLists.txt file for building ROOT io/xml package ############################################################################ -ROOT_GENERATE_DICTIONARY(G__XML *.h MODULE XMLIO LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__XML *.h MODULE XMLIO LINKDEF LinkDef.h DEPENDENCIES RIO ) ROOT_LINKER_LIBRARY(XMLIO *.cxx G__XML.cxx DEPENDENCIES RIO ) diff --git a/io/xmlparser/CMakeLists.txt b/io/xmlparser/CMakeLists.txt index c59bfab71e28d..56f36c7c97bdd 100644 --- a/io/xmlparser/CMakeLists.txt +++ b/io/xmlparser/CMakeLists.txt @@ -6,7 +6,7 @@ include_directories(${LIBXML2_INCLUDE_DIR}) add_definitions(${LIBXML2_DEFINITIONS}) -ROOT_GENERATE_DICTIONARY(G__XMLParser *.h MODULE XMLParser LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__XMLParser *.h MODULE XMLParser LINKDEF LinkDef.h DEPENDENCIES Core) if(WIN32) set(LIBXML2_LIBRARIES ${LIBXML2_LIBRARIES} ws2_32.lib) diff --git a/math/fftw/CMakeLists.txt b/math/fftw/CMakeLists.txt index 92c8e4df202eb..711a8b4ec488c 100644 --- a/math/fftw/CMakeLists.txt +++ b/math/fftw/CMakeLists.txt @@ -5,7 +5,7 @@ include_directories(${FFTW_INCLUDE_DIR}) -ROOT_GENERATE_DICTIONARY(G__FFTW *.h MODULE FFTW LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__FFTW *.h MODULE FFTW LINKDEF LinkDef.h DEPENDENCIES Core) ROOT_LINKER_LIBRARY(FFTW *.cxx G__FFTW.cxx LIBRARIES Core ${FFTW_LIBRARIES} BUILTINS FFTW3) diff --git a/math/genetic/CMakeLists.txt b/math/genetic/CMakeLists.txt index a1007e6480f41..71b93b2bee96b 100644 --- a/math/genetic/CMakeLists.txt +++ b/math/genetic/CMakeLists.txt @@ -3,7 +3,7 @@ # @author Pere Mato, CERN ############################################################################ -ROOT_GENERATE_DICTIONARY(G__Genetic Math/GeneticMinimizer.h MODULE Genetic LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM") +ROOT_GENERATE_DICTIONARY(G__Genetic Math/GeneticMinimizer.h MODULE Genetic LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Core MathCore TMVA) ROOT_LINKER_LIBRARY(Genetic *.cxx G__Genetic.cxx LIBRARIES Core DEPENDENCIES MathCore TMVA) diff --git a/math/genvector/CMakeLists.txt b/math/genvector/CMakeLists.txt index c4479116fce74..715dac1c3a887 100644 --- a/math/genvector/CMakeLists.txt +++ b/math/genvector/CMakeLists.txt @@ -16,8 +16,8 @@ set(headers Math/Vector2D.h Math/Point2D.h set(headers32 Math/Vector2D.h Math/Point2D.h Math/Vector3D.h Math/Point3D.h Math/Vector4D.h) -ROOT_GENERATE_DICTIONARY(G__${libname} ${headers} MODULE ${libname} LINKDEF Math/LinkDef_GenVector.h OPTIONS "-writeEmptyRootPCM") -ROOT_GENERATE_DICTIONARY(G__${libname}32 ${headers32} MULTIDICT MODULE ${libname} LINKDEF Math/LinkDef_GenVector32.h OPTIONS "-writeEmptyRootPCM") +ROOT_GENERATE_DICTIONARY(G__${libname} ${headers} MODULE ${libname} LINKDEF Math/LinkDef_GenVector.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Core) +ROOT_GENERATE_DICTIONARY(G__${libname}32 ${headers32} MULTIDICT MODULE ${libname} LINKDEF Math/LinkDef_GenVector32.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Core) ROOT_LINKER_LIBRARY(${libname} *.cxx G__${libname}.cxx G__${libname}32.cxx LIBRARIES Core) ROOT_INSTALL_HEADERS() diff --git a/math/mathcore/CMakeLists.txt b/math/mathcore/CMakeLists.txt index 34b59f3fb0098..c25807de19e95 100644 --- a/math/mathcore/CMakeLists.txt +++ b/math/mathcore/CMakeLists.txt @@ -17,7 +17,7 @@ set(MATHCORE_HEADERS TRandom.h Math/MersenneTwisterEngine.h Math/MixMaxEngine.h TRandomGen.h Math/LCGEngine.h ) -ROOT_GENERATE_DICTIONARY(G__MathCore TComplex.h TMath.h ${MATHCORE_HEADERS} Fit/*.h MODULE MathCore LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM") +ROOT_GENERATE_DICTIONARY(G__MathCore TComplex.h TMath.h ${MATHCORE_HEADERS} Fit/*.h MODULE MathCore LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Core Imt) add_definitions(-DUSE_ROOT_ERROR) ROOT_ADD_C_FLAG(_flags -Wno-strict-overflow) # Avoid what it seems a compiler false positive warning diff --git a/math/mathcore/test/CMakeLists.txt b/math/mathcore/test/CMakeLists.txt index a2c0af27d30be..f12d873a1cb93 100644 --- a/math/mathcore/test/CMakeLists.txt +++ b/math/mathcore/test/CMakeLists.txt @@ -68,7 +68,7 @@ foreach(file ${TestSource}) endforeach() -ROOT_GENERATE_DICTIONARY(TrackMathCoreUnitDictionary ${CMAKE_CURRENT_SOURCE_DIR}/stress/TrackMathCore.h MODULE TrackMathCoreUnitDict LINKDEF stress/TrackMathCoreLinkDef.h) +ROOT_GENERATE_DICTIONARY(TrackMathCoreUnitDictionary ${CMAKE_CURRENT_SOURCE_DIR}/stress/TrackMathCore.h MODULE TrackMathCoreUnitDict LINKDEF stress/TrackMathCoreLinkDef.h DEPENDENCIES Core MathCore RIO GenVector) ROOT_LINKER_LIBRARY(TrackMathCoreUnitDict TrackMathCoreUnitDictionary.cxx LIBRARIES Core MathCore RIO GenVector) ROOT_ADD_GTEST(stressMathCoreUnit stress/testSMatrix.cxx stress/testGenVector.cxx diff --git a/math/mathmore/CMakeLists.txt b/math/mathmore/CMakeLists.txt index 57d4a4c38899f..bcc8a05b88277 100644 --- a/math/mathmore/CMakeLists.txt +++ b/math/mathmore/CMakeLists.txt @@ -19,7 +19,7 @@ set(headers Math/DistFuncMathMore.h Math/SpecFuncMathMore.h Math/PdfFuncMathMore Math/VavilovAccurateCdf.h Math/VavilovAccurateQuantile.h Math/VavilovFast.h ) set(linkdefs Math/LinkDef.h Math/LinkDef_Func.h Math/LinkDef_RootFinding.h) -ROOT_GENERATE_DICTIONARY(G__MathMore ${headers} MODULE MathMore LINKDEF Math/LinkDef.h OPTIONS "-writeEmptyRootPCM") +ROOT_GENERATE_DICTIONARY(G__MathMore ${headers} MODULE MathMore LINKDEF Math/LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES MathCore) ROOT_LINKER_LIBRARY(MathMore *.cxx G__MathMore.cxx LIBRARIES ${GSL_LIBRARIES} DEPENDENCIES MathCore BUILTINS GSL) diff --git a/math/minuit2/CMakeLists.txt b/math/minuit2/CMakeLists.txt index 9e83d11a78df3..266eb32b0d600 100644 --- a/math/minuit2/CMakeLists.txt +++ b/math/minuit2/CMakeLists.txt @@ -18,7 +18,7 @@ if($ENV{USE_PARALLEL_MINUIT2}) endif() endif() -ROOT_GENERATE_DICTIONARY(G__Minuit2 *.h Minuit2/*.h MODULE Minuit2 LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM") +ROOT_GENERATE_DICTIONARY(G__Minuit2 *.h Minuit2/*.h MODULE Minuit2 LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES MathCore Hist) ROOT_LINKER_LIBRARY(Minuit2 *.cxx G__Minuit2.cxx DEPENDENCIES MathCore Hist) ROOT_INSTALL_HEADERS() diff --git a/math/rtools/CMakeLists.txt b/math/rtools/CMakeLists.txt index ce7b171f1853b..e6684fa5d6e6a 100644 --- a/math/rtools/CMakeLists.txt +++ b/math/rtools/CMakeLists.txt @@ -7,7 +7,7 @@ include_directories(SYSTEM ${R_INCLUDE_DIRS}) ROOT_ADD_CXX_FLAG(CMAKE_CXX_FLAGS -Wno-overloaded-virtual) -ROOT_GENERATE_DICTIONARY(G__Rtools Math/RMinimizer.h MODULE Rtools LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__Rtools Math/RMinimizer.h MODULE Rtools LINKDEF LinkDef.h DEPENDENCIES MathCore RInterface) ROOT_LINKER_LIBRARY(Rtools *.cxx G__Rtools.cxx LIBRARIES Core ${R_LIBRARIES} DEPENDENCIES MathCore RInterface) ROOT_INSTALL_HEADERS() diff --git a/math/smatrix/CMakeLists.txt b/math/smatrix/CMakeLists.txt index 29da6baa4528c..28613a537049b 100644 --- a/math/smatrix/CMakeLists.txt +++ b/math/smatrix/CMakeLists.txt @@ -7,12 +7,14 @@ set(libname Smatrix) ROOT_GENERATE_DICTIONARY(G__${libname} Math/SMatrix.h Math/SVector.h Math/SMatrixDfwd.h Math/SMatrixFfwd.h MODULE ${libname} - LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM") + LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" + DEPENDENCIES Core) ROOT_GENERATE_DICTIONARY(G__${libname}32 Math/SMatrix.h Math/SVector.h Math/SMatrixDfwd.h Math/SMatrixFfwd.h MULTIDICT MODULE ${libname} - LINKDEF LinkDefD32.h OPTIONS "-writeEmptyRootPCM") + LINKDEF LinkDefD32.h OPTIONS "-writeEmptyRootPCM" + DEPENDENCIES Core) ROOT_LINKER_LIBRARY(${libname} G__${libname}.cxx G__${libname}32.cxx LIBRARIES Core) ROOT_INSTALL_HEADERS() diff --git a/math/unuran/CMakeLists.txt b/math/unuran/CMakeLists.txt index 7c884dc186281..7bc5a1b9b14fb 100644 --- a/math/unuran/CMakeLists.txt +++ b/math/unuran/CMakeLists.txt @@ -75,7 +75,7 @@ set(unrconfig) endif() -ROOT_GENERATE_DICTIONARY(G__Unuran *.h MODULE Unuran LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__Unuran *.h MODULE Unuran LINKDEF LinkDef.h DEPENDENCIES Hist MathCore) ROOT_LINKER_LIBRARY(Unuran *.cxx ${unrsources} G__Unuran.cxx ${unrconfig} LIBRARIES Core ${UNURAN_LIBRARIES} DEPENDENCIES Hist MathCore) ROOT_INSTALL_HEADERS() diff --git a/misc/memstat/CMakeLists.txt b/misc/memstat/CMakeLists.txt index c6825cb37792a..a9eca03a9c0ad 100644 --- a/misc/memstat/CMakeLists.txt +++ b/misc/memstat/CMakeLists.txt @@ -8,7 +8,7 @@ ROOT_ADD_CXX_FLAG(CMAKE_CXX_FLAGS -Wno-deprecated-declarations) set(sources TMemStat.cxx TMemStatMng.cxx TMemStatBacktrace.cxx TMemStatHelpers.cxx TMemStatHook.cxx) set(headers TMemStatHelpers.h TMemStat.h TMemStatBacktrace.h TMemStatDef.h TMemStatMng.h TMemStatHook.h ) -ROOT_GENERATE_DICTIONARY(G__MemStat ${headers} MODULE MemStat LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__MemStat ${headers} MODULE MemStat LINKDEF LinkDef.h DEPENDENCIES Tree Gpad Graf) ROOT_LINKER_LIBRARY(MemStat ${sources} G__MemStat.cxx LIBRARIES Core ${CMAKE_DL_LIBS} DEPENDENCIES Tree Gpad Graf) diff --git a/misc/table/CMakeLists.txt b/misc/table/CMakeLists.txt index eb93187a4b3fb..e2f7b59bfb18e 100644 --- a/misc/table/CMakeLists.txt +++ b/misc/table/CMakeLists.txt @@ -3,7 +3,7 @@ # @author Pere Mato, CERN ############################################################################ -ROOT_GENERATE_DICTIONARY(G__Table *.h MODULE Table LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__Table *.h MODULE Table LINKDEF LinkDef.h) DEPENDENCIES Tree Gpad Graf3d Graf Hist RIO MathCore ROOT_LINKER_LIBRARY(Table *.cxx G__Table.cxx LIBRARIES Core DEPENDENCIES Tree Gpad Graf3d Graf Hist RIO MathCore) ROOT_INSTALL_HEADERS() diff --git a/montecarlo/eg/CMakeLists.txt b/montecarlo/eg/CMakeLists.txt index f5277f638dffb..e1ba7f6f44a34 100644 --- a/montecarlo/eg/CMakeLists.txt +++ b/montecarlo/eg/CMakeLists.txt @@ -5,7 +5,7 @@ set(libname EG) -ROOT_GENERATE_DICTIONARY(G__${libname} T*.h MODULE ${libname} LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__${libname} T*.h MODULE ${libname} LINKDEF LinkDef.h DEPENDENCIES Graf3d Graf Gpad MathCore ) ROOT_LINKER_LIBRARY(${libname} *.cxx G__${libname}.cxx DEPENDENCIES Graf3d Graf Gpad MathCore ) diff --git a/montecarlo/pythia6/CMakeLists.txt b/montecarlo/pythia6/CMakeLists.txt index e0f3c48daf05d..c1b9ad651d117 100644 --- a/montecarlo/pythia6/CMakeLists.txt +++ b/montecarlo/pythia6/CMakeLists.txt @@ -3,7 +3,7 @@ # @author Pere Mato, CERN ############################################################################ -ROOT_GENERATE_DICTIONARY(G__Pythia6 *.h MODULE EGPythia6 LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__Pythia6 *.h MODULE EGPythia6 LINKDEF LinkDef.h DEPENDENCIES EG Graf VMC Physics) if(pythia6_nolink) set(PYTHIA6_LIBRARIES) diff --git a/montecarlo/pythia8/CMakeLists.txt b/montecarlo/pythia8/CMakeLists.txt index db7d868834645..37148da8eb22e 100644 --- a/montecarlo/pythia8/CMakeLists.txt +++ b/montecarlo/pythia8/CMakeLists.txt @@ -5,7 +5,7 @@ include_directories(${PYTHIA8_INCLUDE_DIR}) -ROOT_GENERATE_DICTIONARY(G__Pythia8 *.h MODULE EGPythia8 LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__Pythia8 *.h MODULE EGPythia8 LINKDEF LinkDef.h DEPENDENCIES EG Graf VMC Physics) ROOT_ADD_CXX_FLAG(CMAKE_CXX_FLAGS -Wno-overloaded-virtual) ROOT_ADD_CXX_FLAG(CMAKE_CXX_FLAGS -Wno-misleading-indentation) diff --git a/net/alien/CMakeLists.txt b/net/alien/CMakeLists.txt index a9c91720af919..b9a1581e6cf5b 100644 --- a/net/alien/CMakeLists.txt +++ b/net/alien/CMakeLists.txt @@ -6,7 +6,7 @@ include_directories(${ALIEN_INCLUDE_DIR}) -ROOT_GENERATE_DICTIONARY(G__Alien *.h MODULE RAliEn LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__Alien *.h MODULE RAliEn LINKDEF LinkDef.h DEPENDENCIES XMLIO Netx Tree Proof) ROOT_LINKER_LIBRARY(RAliEn *.cxx G__Alien.cxx LIBRARIES ${ALIEN_LIBRARIES} DEPENDENCIES XMLIO Netx Tree Proof) diff --git a/net/auth/CMakeLists.txt b/net/auth/CMakeLists.txt index 1a4b5ddcecacd..c23df51a3941d 100644 --- a/net/auth/CMakeLists.txt +++ b/net/auth/CMakeLists.txt @@ -31,11 +31,11 @@ if(ssl) include_directories(${OPENSSL_INCLUDE_DIR}) endif() -ROOT_GENERATE_DICTIONARY(G__RootAuth ${headers} MODULE RootAuth LINKDEF LinkDefRoot.h) +ROOT_GENERATE_DICTIONARY(G__RootAuth ${headers} MODULE RootAuth LINKDEF LinkDefRoot.h DEPENDENCIES Net RIO ) ROOT_LINKER_LIBRARY(RootAuth ${sources} G__RootAuth.cxx LIBRARIES ${CRYPTLIBS} DEPENDENCIES Net RIO ) if(afs) - ROOT_GENERATE_DICTIONARY(G__AFSAuth AFSAuth.h AFSAuthTypes.h TAFS.h MODULE AFSAuth LINKDEF LinkDefAFS.h) + ROOT_GENERATE_DICTIONARY(G__AFSAuth AFSAuth.h AFSAuthTypes.h TAFS.h MODULE AFSAuth LINKDEF LinkDefAFS.h DEPENDENCIES Net RIO ) ROOT_LINKER_LIBRARY(AFSAuth AFSAuth.cxx TAFS.cxx G__AFSAuth.cxx LIBRARIES ${CRYPTLIBS} DEPENDENCIES Net RIO ) else() set(installoptions FILTER "AFS") diff --git a/net/bonjour/CMakeLists.txt b/net/bonjour/CMakeLists.txt index 7ba06e30b6e22..4f09ea6e2585b 100644 --- a/net/bonjour/CMakeLists.txt +++ b/net/bonjour/CMakeLists.txt @@ -5,7 +5,7 @@ include_directories(${BONJOUR_INCLUDE_DIR}) -ROOT_GENERATE_DICTIONARY(G__BONJ *.h MODULE Bonjour LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__BONJ *.h MODULE Bonjour LINKDEF LinkDef.h DEPENDENCIES Core) ROOT_LINKER_LIBRARY(Bonjour *.cxx G__BONJ.cxx LIBRARIES ${BONJOUR_LIBRARIES} DEPENDENCIES Core) diff --git a/net/davix/CMakeLists.txt b/net/davix/CMakeLists.txt index 100a3af9e7975..e30991b907e2e 100644 --- a/net/davix/CMakeLists.txt +++ b/net/davix/CMakeLists.txt @@ -11,7 +11,7 @@ ROOT_ADD_CXX_FLAG(CMAKE_CXX_FLAGS -Wno-unused-parameter) ROOT_ADD_CXX_FLAG(CMAKE_CXX_FLAGS -Wno-deprecated-declarations) # Davix getAllReplicas -ROOT_GENERATE_DICTIONARY(G__DAVIX *.h MODULE RDAVIX LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__DAVIX *.h MODULE RDAVIX LINKDEF LinkDef.h DEPENDENCIES RIO Net) ROOT_LINKER_LIBRARY(RDAVIX *.cxx G__DAVIX.cxx LIBRARIES ${DAVIX_LIBRARIES} ${OPENSSL_LIBRARIES} ${LIBXML2_LIBRARIES} ${SYSLIBS} DEPENDENCIES RIO Net BUILTINS DAVIX) diff --git a/net/http/CMakeLists.txt b/net/http/CMakeLists.txt index 75773adff8c2c..231ac7d030dbf 100644 --- a/net/http/CMakeLists.txt +++ b/net/http/CMakeLists.txt @@ -52,7 +52,7 @@ if(RT_LIBRARY) set(RT_LIBRARIES ${RT_LIBRARY}) endif() -ROOT_GENERATE_DICTIONARY(G__RHTTP ${headers} MODULE RHTTP LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__RHTTP ${headers} MODULE RHTTP LINKDEF LinkDef.h DEPENDENCIES Tree Hist Gpad Graf RIO XMLIO) ROOT_LINKER_LIBRARY(RHTTP ${sources} G__RHTTP.cxx LIBRARIES ${SYSLIBS} ${ZLIB_LIBRARIES} ${RT_LIBRARIES} ${FASTCGI_LIBRARY} ${OPENSSL_LIBRARIES} ${CMAKE_DL_LIBS} DEPENDENCIES Thread Tree Hist Gpad Graf RIO XMLIO) diff --git a/net/krb5auth/CMakeLists.txt b/net/krb5auth/CMakeLists.txt index 84e797f4d129c..26bbe88035641 100644 --- a/net/krb5auth/CMakeLists.txt +++ b/net/krb5auth/CMakeLists.txt @@ -10,7 +10,7 @@ if(MACOSX_KRB5_DEPRECATED) add_definitions(-Wno-deprecated-declarations) endif() -ROOT_GENERATE_DICTIONARY(G__Krb5Auth TKSocket.h MODULE Krb5Auth LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__Krb5Auth TKSocket.h MODULE Krb5Auth LINKDEF LinkDef.h DEPENDENCIES RootAuth Net ) ROOT_LINKER_LIBRARY(Krb5Auth *.cxx G__Krb5Auth.cxx LIBRARIES ${KRB5_LIBRARIES} ${COMERR_LIBRARIES} DEPENDENCIES RootAuth Net ) diff --git a/net/ldap/CMakeLists.txt b/net/ldap/CMakeLists.txt index f11d2ebce4775..420c7fc475bfa 100644 --- a/net/ldap/CMakeLists.txt +++ b/net/ldap/CMakeLists.txt @@ -9,7 +9,7 @@ if(MACOSX_LDAP_DEPRECATED) add_definitions(-Wno-deprecated-declarations) endif() -ROOT_GENERATE_DICTIONARY(G__LDAP *.h MODULE RLDAP LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__LDAP *.h MODULE RLDAP LINKDEF LinkDef.h DEPENDENCIES Net) ROOT_LINKER_LIBRARY(RLDAP *.cxx G__LDAP.cxx LIBRARIES Core ${LDAP_LIBRARIES} DEPENDENCIES Net) ROOT_INSTALL_HEADERS() diff --git a/net/monalisa/CMakeLists.txt b/net/monalisa/CMakeLists.txt index ea2cbc9bb30d3..10b2bee72c989 100644 --- a/net/monalisa/CMakeLists.txt +++ b/net/monalisa/CMakeLists.txt @@ -7,7 +7,8 @@ include_directories(${MONALISA_INCLUDE_DIR}) #set_directory_properties(PROPERTIES COMPILE_DEFINITIONS R__KRB5INIT="${KRB5_INIT}") -ROOT_GENERATE_DICTIONARY(G__Monalisa *.h MODULE Monalisa LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__Monalisa *.h MODULE Monalisa LINKDEF LinkDef.h + DEPENDENCIES Net RIO) ROOT_LINKER_LIBRARY(Monalisa *.cxx G__Monalisa.cxx LIBRARIES ${MONALISA_LIBRARIES} DEPENDENCIES Net RIO ) diff --git a/net/net/CMakeLists.txt b/net/net/CMakeLists.txt index c4f2c9f60dbf8..4ad3e41f5c9b5 100644 --- a/net/net/CMakeLists.txt +++ b/net/net/CMakeLists.txt @@ -27,7 +27,7 @@ if(MACOSX_SSL_DEPRECATED) set_source_files_properties(src/TSSLSocket.cxx COMPILE_FLAGS "-Wno-deprecated-declarations" ) endif() -ROOT_GENERATE_DICTIONARY(G__Net ${headers} MODULE Net LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM") +ROOT_GENERATE_DICTIONARY(G__Net ${headers} MODULE Net LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES RIO) ROOT_LINKER_LIBRARY(Net ${sources} G__Net.cxx LIBRARIES ${ssllib} ${CRYPTLIBS} DEPENDENCIES RIO BUILTINS OPENSSL) diff --git a/net/netx/CMakeLists.txt b/net/netx/CMakeLists.txt index a1065bd6d37bb..a5023d97bf81d 100644 --- a/net/netx/CMakeLists.txt +++ b/net/netx/CMakeLists.txt @@ -8,7 +8,7 @@ include_directories(${CMAKE_SOURCE_DIR}/proof/proofd/inc) add_definitions(${XROOTD_CFLAGS}) #--------------------------------------------------------------------------- -ROOT_GENERATE_DICTIONARY(G__Netx *.h MODULE Netx LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__Netx *.h MODULE Netx LINKDEF LinkDef.h DEPENDENCIES Net RIO Thread) ROOT_LINKER_LIBRARY(Netx *.cxx G__Netx.cxx LIBRARIES ${XROOTD_LIBRARIES} DEPENDENCIES Net RIO Thread BUILTINS XROOTD) diff --git a/net/netxng/CMakeLists.txt b/net/netxng/CMakeLists.txt index 900caa7bdde1d..98d6a1037fbea 100644 --- a/net/netxng/CMakeLists.txt +++ b/net/netxng/CMakeLists.txt @@ -6,7 +6,7 @@ include_directories(${XROOTD_INCLUDE_DIRS}) add_definitions(${XROOTD_CFLAGS}) -ROOT_GENERATE_DICTIONARY(G__NetxNG *.h MODULE NetxNG LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__NetxNG *.h MODULE NetxNG LINKDEF LinkDef.h DEPENDENCIES Net RIO Thread) ROOT_ADD_CXX_FLAG(CMAKE_CXX_FLAGS -Wno-shadow) ROOT_LINKER_LIBRARY(NetxNG *.cxx G__NetxNG.cxx LIBRARIES ${XROOTD_LIBRARIES} DEPENDENCIES Net RIO Thread BUILTINS XROOTD) diff --git a/proof/proof/CMakeLists.txt b/proof/proof/CMakeLists.txt index a50aa3aa8e6d4..ab061eca277a3 100644 --- a/proof/proof/CMakeLists.txt +++ b/proof/proof/CMakeLists.txt @@ -14,7 +14,7 @@ else() list(REMOVE_ITEM sources TDataSetManagerAliEn.cxx) endif() -ROOT_GENERATE_DICTIONARY(G__Proof ${headers} MODULE Proof LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__Proof ${headers} MODULE Proof LINKDEF LinkDef.h DEPENDENCIES Net Tree Thread RIO MathCore) ROOT_LINKER_LIBRARY(Proof ${sources} G__Proof.cxx DEPENDENCIES Net Tree Thread RIO MathCore) ROOT_INSTALL_HEADERS() diff --git a/proof/proofbench/CMakeLists.txt b/proof/proofbench/CMakeLists.txt index 5f473d1edf1fd..9674ea1cb88b1 100644 --- a/proof/proofbench/CMakeLists.txt +++ b/proof/proofbench/CMakeLists.txt @@ -6,7 +6,7 @@ ROOT_GLOB_HEADERS(headers inc/TProof*.h) ROOT_GLOB_SOURCES(sources src/TProof*.cxx) -ROOT_GENERATE_DICTIONARY(G__ProofBench ${headers} MODULE ProofBench LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__ProofBench ${headers} MODULE ProofBench LINKDEF LinkDef.h DEPENDENCIES Hist Gpad ProofPlayer) ROOT_LINKER_LIBRARY(ProofBench ${sources} G__ProofBench.cxx LIBRARIES Core DEPENDENCIES Hist Gpad ProofPlayer) ROOT_INSTALL_HEADERS(FILTER "TSel") diff --git a/proof/proofplayer/CMakeLists.txt b/proof/proofplayer/CMakeLists.txt index 0dd889e613efb..7e447032b4191 100644 --- a/proof/proofplayer/CMakeLists.txt +++ b/proof/proofplayer/CMakeLists.txt @@ -12,11 +12,11 @@ ROOT_GLOB_SOURCES(sources src/*.cxx) list(REMOVE_ITEM sources ${CMAKE_CURRENT_SOURCE_DIR}/src/TProofDraw.cxx) -ROOT_GENERATE_DICTIONARY(G__ProofPlayer ${headers} MODULE ProofPlayer LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__ProofPlayer ${headers} MODULE ProofPlayer LINKDEF LinkDef.h DEPENDENCIES Proof Hist RIO Tree Net Thread MathCore) ROOT_LINKER_LIBRARY(ProofPlayer ${sources} G__ProofPlayer.cxx DEPENDENCIES Proof Hist RIO Tree Net Thread MathCore) -ROOT_GENERATE_DICTIONARY(G__ProofDraw TProofDraw.h MODULE ProofDraw LINKDEF LinkDefDraw.h) +ROOT_GENERATE_DICTIONARY(G__ProofDraw TProofDraw.h MODULE ProofDraw LINKDEF LinkDefDraw.h DEPENDENCIES ProofPlayer TreePlayer) ROOT_LINKER_LIBRARY(ProofDraw TProofDraw.cxx G__ProofDraw.cxx DEPENDENCIES ProofPlayer TreePlayer) diff --git a/proof/proofx/CMakeLists.txt b/proof/proofx/CMakeLists.txt index 8a3d86ba33287..a47d66f6ea0fc 100644 --- a/proof/proofx/CMakeLists.txt +++ b/proof/proofx/CMakeLists.txt @@ -21,6 +21,6 @@ if(GCC_MAJOR GREATER 3) set_source_files_properties(src/TXSocket.cxx COMPILE_FLAGS -Wno-address) endif() -ROOT_GENERATE_DICTIONARY(G__Proofx ${headers} MODULE Proofx LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__Proofx ${headers} MODULE Proofx LINKDEF LinkDef.h DEPENDENCIES Net Proof Thread ) ROOT_LINKER_LIBRARY(Proofx ${sources} G__Proofx.cxx LIBRARIES ${XROOTD_LIBRARIES} XrdProofd DEPENDENCIES Net Proof Thread ) ROOT_INSTALL_HEADERS() diff --git a/roofit/roofit/CMakeLists.txt b/roofit/roofit/CMakeLists.txt index 64f618e9f74fb..a0e80e4a7004d 100644 --- a/roofit/roofit/CMakeLists.txt +++ b/roofit/roofit/CMakeLists.txt @@ -3,7 +3,7 @@ # @author Pere Mato, CERN ############################################################################ -ROOT_GENERATE_DICTIONARY(G__RooFit *.h MODULE RooFit LINKDEF LinkDef1.h OPTIONS "-writeEmptyRootPCM") +ROOT_GENERATE_DICTIONARY(G__RooFit *.h MODULE RooFit LINKDEF LinkDef1.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES RooFitCore Tree RIO Matrix MathCore) ROOT_LINKER_LIBRARY(RooFit *.cxx G__RooFit.cxx LIBRARIES Core DEPENDENCIES RooFitCore Tree RIO Matrix MathCore ${ROOT_MATHMORE_LIBRARY} ) diff --git a/roofit/roofitcore/CMakeLists.txt b/roofit/roofitcore/CMakeLists.txt index ec3443936bea1..35de24a888cb7 100644 --- a/roofit/roofitcore/CMakeLists.txt +++ b/roofit/roofitcore/CMakeLists.txt @@ -44,7 +44,7 @@ set(headers4 RooConstraintSum.h RooRecursiveFraction.h RooDataWeightedAverage.h RooGenFitStudy.h RooProofDriverSelector.h RooStudyPackage.h RooCompositeDataStore.h RooRangeBoolean.h RooVectorDataStore.h RooUnitTest.h RooExtendedBinding.h RooAbsMoment.h RooFirstMoment.h RooSecondMoment.h) -ROOT_GENERATE_DICTIONARY(G__RooFitCore MODULE RooFitCore ${headers1} ${headers2} ${headers3} ${headers4} LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM") +ROOT_GENERATE_DICTIONARY(G__RooFitCore MODULE RooFitCore ${headers1} ${headers2} ${headers3} ${headers4} LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Hist Graf Matrix Tree Minuit RIO MathCore Foam) ROOT_LINKER_LIBRARY(RooFitCore *.cxx G__RooFitCore.cxx LIBRARIES Core DEPENDENCIES Hist Graf Matrix Tree Minuit RIO MathCore Foam) diff --git a/roofit/roostats/CMakeLists.txt b/roofit/roostats/CMakeLists.txt index 2434418a1bcea..ed6f0fb8b627b 100644 --- a/roofit/roostats/CMakeLists.txt +++ b/roofit/roostats/CMakeLists.txt @@ -3,7 +3,8 @@ # @author Pere Mato, CERN ############################################################################ -ROOT_GENERATE_DICTIONARY(G__RooStats RooStats/*.h MODULE RooStats LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM") +ROOT_GENERATE_DICTIONARY(G__RooStats RooStats/*.h MODULE RooStats LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" + DEPENDENCIES RooFit RooFitCore Tree RIO Hist Matrix MathCore Minuit Foam Graf Gpad ) ROOT_LINKER_LIBRARY(RooStats *.cxx G__RooStats.cxx LIBRARIES Core DEPENDENCIES RooFit RooFitCore Tree RIO Hist Matrix MathCore Minuit Foam Graf Gpad ) diff --git a/sql/mysql/CMakeLists.txt b/sql/mysql/CMakeLists.txt index 74af28e2af8e5..c39f28ef0bb2f 100644 --- a/sql/mysql/CMakeLists.txt +++ b/sql/mysql/CMakeLists.txt @@ -4,7 +4,7 @@ include_directories(${MYSQL_INCLUDE_DIR}) -ROOT_GENERATE_DICTIONARY(G__MySQL *.h MODULE RMySQL LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__MySQL *.h MODULE RMySQL LINKDEF LinkDef.h DEPENDENCIES Net RIO) ROOT_LINKER_LIBRARY(RMySQL *.cxx G__MySQL.cxx LIBRARIES Core ${MYSQL_LIBRARIES} DEPENDENCIES Net RIO) ROOT_INSTALL_HEADERS() diff --git a/sql/odbc/CMakeLists.txt b/sql/odbc/CMakeLists.txt index eb03bf66250bc..4dff041c75ab0 100644 --- a/sql/odbc/CMakeLists.txt +++ b/sql/odbc/CMakeLists.txt @@ -7,7 +7,7 @@ if(MACOSX_ODBC_DEPRECATED) add_definitions(-Wno-deprecated-declarations) endif() -ROOT_GENERATE_DICTIONARY(G__ODBC *.h MODULE RODBC LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__ODBC *.h MODULE RODBC LINKDEF LinkDef.h DEPENDENCIES Net RIO) ROOT_LINKER_LIBRARY(RODBC *.cxx G__ODBC.cxx LIBRARIES Core ${ODBC_LIBRARIES} DEPENDENCIES Net RIO) ROOT_INSTALL_HEADERS() diff --git a/sql/oracle/CMakeLists.txt b/sql/oracle/CMakeLists.txt index bf52b9356cb97..1d4b64b7d4ec7 100644 --- a/sql/oracle/CMakeLists.txt +++ b/sql/oracle/CMakeLists.txt @@ -5,7 +5,7 @@ include_directories(${ORACLE_INCLUDE_DIR}) add_definitions(${ORACLE_DEFINITIONS}) -ROOT_GENERATE_DICTIONARY(G__Oracle *.h MODULE Oracle LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__Oracle *.h MODULE Oracle LINKDEF LinkDef.h DEPENDENCIES Net RIO) ROOT_LINKER_LIBRARY(Oracle *.cxx G__Oracle.cxx LIBRARIES Core ${ORACLE_LIBRARIES} DEPENDENCIES Net RIO) diff --git a/sql/pgsql/CMakeLists.txt b/sql/pgsql/CMakeLists.txt index 663ec08c0a0af..4189edb328315 100644 --- a/sql/pgsql/CMakeLists.txt +++ b/sql/pgsql/CMakeLists.txt @@ -4,7 +4,7 @@ include_directories(${POSTGRESQL_INCLUDE_DIR}) -ROOT_GENERATE_DICTIONARY(G__PgSQL *.h MODULE PgSQL LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__PgSQL *.h MODULE PgSQL LINKDEF LinkDef.h DEPENDENCIES Net RIO) ROOT_LINKER_LIBRARY(PgSQL *.cxx G__PgSQL.cxx LIBRARIES Core ${POSTGRESQL_LIBRARIES} DEPENDENCIES Net RIO) ROOT_INSTALL_HEADERS() diff --git a/sql/sqlite/CMakeLists.txt b/sql/sqlite/CMakeLists.txt index 1488e5647a581..9156c80928beb 100644 --- a/sql/sqlite/CMakeLists.txt +++ b/sql/sqlite/CMakeLists.txt @@ -4,7 +4,7 @@ include_directories(${SQLITE_INCLUDE_DIR}) -ROOT_GENERATE_DICTIONARY(G__SQLite *.h MODULE RSQLite LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__SQLite *.h MODULE RSQLite LINKDEF LinkDef.h DEPENDENCIES Net RIO) ROOT_LINKER_LIBRARY(RSQLite *.cxx G__SQLite.cxx LIBRARIES Core ${SQLITE_LIBRARIES} DEPENDENCIES Net RIO) ROOT_INSTALL_HEADERS() diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index e86e9f9c7fffd..b36e0a9581427 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -35,7 +35,7 @@ ROOT_ADD_TEST(show-environment COMMAND ${CMAKE_COMMAND} -E environment) ROOT_EXECUTABLE(hworld hworld.cxx LIBRARIES Gpad) #---event------------------------------------------------------------------------------------- -ROOT_GENERATE_DICTIONARY(EventDict ${CMAKE_CURRENT_SOURCE_DIR}/Event.h MODULE Event LINKDEF EventLinkDef.h) +ROOT_GENERATE_DICTIONARY(EventDict ${CMAKE_CURRENT_SOURCE_DIR}/Event.h MODULE Event LINKDEF EventLinkDef.h DEPENDENCIES Hist MathCore) ROOT_LINKER_LIBRARY(Event Event.cxx EventDict.cxx LIBRARIES Hist MathCore) ROOT_EXECUTABLE(eventexe MainEvent.cxx LIBRARIES Event RIO Tree TreePlayer Hist Net) diff --git a/tmva/pymva/CMakeLists.txt b/tmva/pymva/CMakeLists.txt index 132aecb73bfbb..6847da8008de3 100644 --- a/tmva/pymva/CMakeLists.txt +++ b/tmva/pymva/CMakeLists.txt @@ -17,7 +17,7 @@ set(PY_HEADERS ${CMAKE_SOURCE_DIR}/tmva/pymva/inc/TMVA/PyMethodBase.h ${CMAKE_SOURCE_DIR}/tmva/pymva/inc/TMVA/MethodPyGTB.h ${CMAKE_SOURCE_DIR}/tmva/pymva/inc/TMVA/MethodPyKeras.h) -ROOT_GENERATE_DICTIONARY(G__PyMVA ${PY_HEADERS} MODULE ${libname} LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__PyMVA ${PY_HEADERS} MODULE ${libname} LINKDEF LinkDef.h DEPENDENCIES Core Matrix Thread RIO TMVA) # ROOT_GENERATE_ROOTMAP(RInterface LINKDEF LinkDef.h) diff --git a/tmva/rmva/CMakeLists.txt b/tmva/rmva/CMakeLists.txt index 96f881a10b17b..8f9b8e539260f 100644 --- a/tmva/rmva/CMakeLists.txt +++ b/tmva/rmva/CMakeLists.txt @@ -15,7 +15,7 @@ set(R_HEADERS ${CMAKE_SOURCE_DIR}/tmva/rmva/inc/TMVA/RMethodBase.h ) ROOT_ADD_CXX_FLAG(CMAKE_CXX_FLAGS -Wno-overloaded-virtual) -ROOT_GENERATE_DICTIONARY(G__RMVA ${R_HEADERS} MODULE ${libname} LINKDEF LinkDef.h) +ROOT_GENERATE_DICTIONARY(G__RMVA ${R_HEADERS} MODULE ${libname} LINKDEF LinkDef.h DEPENDENCIES Core Matrix Thread RIO RInterface TMVA) ROOT_LINKER_LIBRARY(RMVA *.cxx G__RMVA.cxx LIBRARIES ${R_LIBRARIES} DEPENDENCIES Core Matrix Thread RIO RInterface TMVA) ROOT_INSTALL_HEADERS() diff --git a/tmva/tmva/CMakeLists.txt b/tmva/tmva/CMakeLists.txt index d71aaf8271dbc..60db1fd24b702 100644 --- a/tmva/tmva/CMakeLists.txt +++ b/tmva/tmva/CMakeLists.txt @@ -77,7 +77,7 @@ else() set(installoptions ${installoptions} FILTER "Cpu") endif() -ROOT_GENERATE_DICTIONARY(G__TMVA ${theaders1} ${theaders2} ${theaders3} ${theaders4} ${theaders5} MODULE TMVA LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM") +ROOT_GENERATE_DICTIONARY(G__TMVA ${theaders1} ${theaders2} ${theaders3} ${theaders4} ${theaders5} MODULE TMVA LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES RIO Hist Tree TreePlayer MLP Minuit XMLIO) ROOT_LINKER_LIBRARY(TMVA *.cxx G__TMVA.cxx ${DNN_FILES} ${DNN_CPU_FILES} LIBRARIES Core ${DNN_CUDA_LIBRARIES} ${DNN_CPU_LIBRARIES} diff --git a/tmva/tmvagui/CMakeLists.txt b/tmva/tmvagui/CMakeLists.txt index 9540cc0f8d919..e721866351da7 100644 --- a/tmva/tmvagui/CMakeLists.txt +++ b/tmva/tmvagui/CMakeLists.txt @@ -26,7 +26,7 @@ foreach(hs headers1) endforeach() endforeach() -ROOT_GENERATE_DICTIONARY(G__TMVAGui ${theaders1} MODULE TMVAGui LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM") +ROOT_GENERATE_DICTIONARY(G__TMVAGui ${theaders1} MODULE TMVAGui LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES RIO Hist Tree TreeViewer MLP Minuit XMLIO TMVA Gui) ROOT_LINKER_LIBRARY(TMVAGui *.cxx G__TMVAGui.cxx LIBRARIES Core DEPENDENCIES RIO Hist Tree TreeViewer MLP Minuit XMLIO TMVA Gui) diff --git a/tree/tree/CMakeLists.txt b/tree/tree/CMakeLists.txt index a9a453b8240b9..9ea232557f371 100644 --- a/tree/tree/CMakeLists.txt +++ b/tree/tree/CMakeLists.txt @@ -7,7 +7,7 @@ set(libname Tree) include_directories(SYSTEM ${TBB_INCLUDE_DIRS}) -ROOT_GENERATE_DICTIONARY(G__${libname} *.h MODULE ${libname} LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM") +ROOT_GENERATE_DICTIONARY(G__${libname} *.h MODULE ${libname} LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Net RIO Thread Imt) #ROOT_GENERATE_DICTIONARY(ManualTree TTree.h LINKDEF LinkDef2.h) ROOT_LINKER_LIBRARY(${libname} *.cxx G__${libname}.cxx LIBRARIES ${TBB_LIBRARIES} DEPENDENCIES Net RIO Thread Imt) diff --git a/tree/treeplayer/CMakeLists.txt b/tree/treeplayer/CMakeLists.txt index 112c09bbf9b49..2fc3cf27aa5db 100644 --- a/tree/treeplayer/CMakeLists.txt +++ b/tree/treeplayer/CMakeLists.txt @@ -20,7 +20,7 @@ else() include_directories(SYSTEM ${TBB_INCLUDE_DIRS}) endif() -ROOT_GENERATE_DICTIONARY(G__${libname} ${dictHeaders} MODULE ${libname} LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM") +ROOT_GENERATE_DICTIONARY(G__${libname} ${dictHeaders} MODULE ${libname} LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Tree Graf3d Graf Hist Gpad RIO MathCore MultiProc Imt) ROOT_LINKER_LIBRARY(${libname} ${sources} G__${libname}.cxx LIBRARIES ${TBB_LIBRARIES} DEPENDENCIES Tree Graf3d Graf Hist Gpad RIO MathCore MultiProc Imt) ROOT_INSTALL_HEADERS() diff --git a/tree/treeviewer/CMakeLists.txt b/tree/treeviewer/CMakeLists.txt index 92a93c385dcf3..da6aaba42ea72 100644 --- a/tree/treeviewer/CMakeLists.txt +++ b/tree/treeviewer/CMakeLists.txt @@ -19,7 +19,7 @@ else() endif() -ROOT_GENERATE_DICTIONARY(G__${libname} ${headers} MODULE ${libname} LINKDEF ${linkdef} OPTIONS "-writeEmptyRootPCM") +ROOT_GENERATE_DICTIONARY(G__${libname} ${headers} MODULE ${libname} LINKDEF ${linkdef} OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Gui Ged) ROOT_LINKER_LIBRARY(${libname} ${sources} G__${libname}.cxx LIBRARIES TreePlayer DEPENDENCIES Gui Ged) From 922ac7327fb981e82859a8b36b443472b85fe9d8 Mon Sep 17 00:00:00 2001 From: Raphael Isemann Date: Tue, 11 Jul 2017 08:10:51 +0200 Subject: [PATCH 2/5] Use pid in temp. file names to mitigate race conditions. In case CMake spawns multiple instances of a rootcling invocation (which can happen as CMake doesn't have a good mechanism for ensuring that we only spawn one when using the make build system), we now choose process-unique file names for the temporaries to prevent the build errors when multiple rootcling invocations try to work on the same temporary file. This isn't a real fix, but as renaming files from temporary to the real name is usually FS atomic, this will mitigate any future race conditions we have in this problematic part of the building process on obscure build systems. Those systems possible don't strictly follow the order in which they are supposed to build those targets, so this hopefully makes the consequences of any race conditions less intrusive (e.g. Visual Studio also seems to suffer from this problem according to the mailing list). --- core/dictgen/src/rootcling_impl.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/dictgen/src/rootcling_impl.cxx b/core/dictgen/src/rootcling_impl.cxx index bcfaa506318fd..01f0ff7128c20 100644 --- a/core/dictgen/src/rootcling_impl.cxx +++ b/core/dictgen/src/rootcling_impl.cxx @@ -3218,7 +3218,7 @@ class tempFileNamesCatalog { tempFileNamesCatalog(): m_size(0), m_emptyString("") {}; std::string getTmpFileName(const std::string &filename) { - return filename + "_tmp"; + return filename + "_tmp_" + std::to_string(getpid()); } ///////////////////////////////////////////////////////////////////////////// /// Adds the name and the associated temp name to the catalog. From 510f29bb17f1645290f92a7f3e531da5086fbe19 Mon Sep 17 00:00:00 2001 From: Raphael Isemann Date: Tue, 11 Jul 2017 14:07:59 +0200 Subject: [PATCH 3/5] Fixed dependencies between rootcling invocations and linking. The naming of the library in the two function calls ROOT_GENERATE_DICTIONARY and ROOT_LINKER_LIBRARY was often not matching. This causes that ROOT_LINKER_LIBRARY couldn't correctly set its dependencies to the output file of ROOT_GENERATE_DICTIONARY and therefore causes race conditions in the build system. Note: We're attached all dependencies to a custom target, and NOT to the output files generated by rootcling. This should mitigate the race conditions we experience when multiple targets in different Make jobs request the same output file as a dependency and then suffer from this Make problem that is described here: https://cmake.org/Bug/view.php?id=10082 This patch also adds a (commented out) piece of code that can print warnings if we don't have a fitting G__*.cxx file for a ROOT_LINKER_LIBRARY call. This is sometimes intended, so I didn't enable this warning by default. We should enable this code by default in the future once we have a way to express if we intentionally don't provide the G__*.cxx file when calling ROOT_LINKER_LIBRARY. --- cmake/modules/RootNewMacros.cmake | 6 ++++++ core/clingutils/CMakeLists.txt | 4 ++-- graf2d/postscript/CMakeLists.txt | 4 ++-- graf3d/x3d/CMakeLists.txt | 4 ++-- hist/spectrumpainter/CMakeLists.txt | 4 ++-- io/io/CMakeLists.txt | 4 ++-- io/sql/CMakeLists.txt | 4 ++-- io/xml/CMakeLists.txt | 4 ++-- math/mathcore/test/CMakeLists.txt | 4 ++-- misc/table/CMakeLists.txt | 2 +- montecarlo/pythia8/CMakeLists.txt | 4 ++-- net/bonjour/CMakeLists.txt | 4 ++-- net/ldap/CMakeLists.txt | 4 ++-- sql/sqlite/CMakeLists.txt | 4 ++-- test/CMakeLists.txt | 20 ++++++++++---------- 15 files changed, 41 insertions(+), 35 deletions(-) diff --git a/cmake/modules/RootNewMacros.cmake b/cmake/modules/RootNewMacros.cmake index f779ea041acdb..37c0f1a9b59fc 100644 --- a/cmake/modules/RootNewMacros.cmake +++ b/cmake/modules/RootNewMacros.cmake @@ -560,6 +560,12 @@ function(ROOT_LINKER_LIBRARY library) endif() if(TARGET G__${library}) add_dependencies(${library} G__${library}) + else() + # Uncomment to see if we maybe forgot to add a dependency between linking + # a dictionary and generating the G__*.cxx file. We can't have this by + # default because right now quite few dictionaries don't have the associated + # ROOT_GENERATE_DICTIONARY call that prevents this warning. + #message(AUTHOR_WARNING "Couldn't find target: " ${library} "\n Forgot to call ROOT_GENERATE_DICTIONARY?") endif() add_dependencies(${library} move_headers) set_property(GLOBAL APPEND PROPERTY ROOT_EXPORTED_TARGETS ${library}) diff --git a/core/clingutils/CMakeLists.txt b/core/clingutils/CMakeLists.txt index 2e53b53e59f02..d37668d097c8a 100644 --- a/core/clingutils/CMakeLists.txt +++ b/core/clingutils/CMakeLists.txt @@ -45,8 +45,8 @@ foreach(dict ${stldicts}) string(REPLACE "2" "" header ${dict}) string(REPLACE "complex" "root_std_complex.h" header ${header}) string(REPLACE "multi" "" header ${header}) - ROOT_GENERATE_DICTIONARY(G__std_${dict} ${header} STAGE1 MODULE ${dict}Dict LINKDEF src/${dict}Linkdef.h DEPENDENCIES Core) - ROOT_LINKER_LIBRARY(${dict}Dict G__std_${dict}.cxx DEPENDENCIES Core) + ROOT_GENERATE_DICTIONARY(G__${dict}Dict ${header} STAGE1 MODULE ${dict}Dict LINKDEF src/${dict}Linkdef.h DEPENDENCIES Core) + ROOT_LINKER_LIBRARY(${dict}Dict G__${dict}Dict.cxx DEPENDENCIES Core) endforeach() #---Deal with LLVM resource here---------------------------------------------- diff --git a/graf2d/postscript/CMakeLists.txt b/graf2d/postscript/CMakeLists.txt index 0afc7bb000c15..879354b287e68 100644 --- a/graf2d/postscript/CMakeLists.txt +++ b/graf2d/postscript/CMakeLists.txt @@ -3,7 +3,7 @@ # @author Pere Mato, CERN ############################################################################ -ROOT_GENERATE_DICTIONARY(G__PostScript *.h MODULE Postscript LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Graf) +ROOT_GENERATE_DICTIONARY(G__Postscript *.h MODULE Postscript LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Graf) -ROOT_LINKER_LIBRARY(Postscript *.cxx G__PostScript.cxx LIBRARIES ${ZLIB_LIBRARIES} mathtext DEPENDENCIES Graf) +ROOT_LINKER_LIBRARY(Postscript *.cxx G__Postscript.cxx LIBRARIES ${ZLIB_LIBRARIES} mathtext DEPENDENCIES Graf) ROOT_INSTALL_HEADERS() diff --git a/graf3d/x3d/CMakeLists.txt b/graf3d/x3d/CMakeLists.txt index f4c1d77f1e205..dd5d67db4a438 100644 --- a/graf3d/x3d/CMakeLists.txt +++ b/graf3d/x3d/CMakeLists.txt @@ -6,7 +6,7 @@ set(libname X3d) include_directories(${X11_INCLUDE_DIR}) -ROOT_GENERATE_DICTIONARY(G__X3D TViewerX3D.h TX3DFrame.h MODULE ${libname} LINKDEF LinkDef.h DEPENDENCIES Graf3d Gui) +ROOT_GENERATE_DICTIONARY(G__X3d TViewerX3D.h TX3DFrame.h MODULE ${libname} LINKDEF LinkDef.h DEPENDENCIES Graf3d Gui) -ROOT_LINKER_LIBRARY(${libname} *.cxx *.c G__X3D.cxx LIBRARIES ${X11_LIBRARIES} DEPENDENCIES Graf3d Gui) +ROOT_LINKER_LIBRARY(${libname} *.cxx *.c G__X3d.cxx LIBRARIES ${X11_LIBRARIES} DEPENDENCIES Graf3d Gui) ROOT_INSTALL_HEADERS() diff --git a/hist/spectrumpainter/CMakeLists.txt b/hist/spectrumpainter/CMakeLists.txt index f51cea2f67d8d..0bc4ff4d23952 100644 --- a/hist/spectrumpainter/CMakeLists.txt +++ b/hist/spectrumpainter/CMakeLists.txt @@ -4,9 +4,9 @@ set(libname SpectrumPainter) -ROOT_GENERATE_DICTIONARY(G__Spectrum2Painter *.h MODULE ${libname} LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Graf Hist) +ROOT_GENERATE_DICTIONARY(G__SpectrumPainter *.h MODULE ${libname} LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Graf Hist) -ROOT_LINKER_LIBRARY(${libname} *.cxx G__Spectrum2Painter.cxx DEPENDENCIES Graf Hist ) +ROOT_LINKER_LIBRARY(${libname} *.cxx G__SpectrumPainter.cxx DEPENDENCIES Graf Hist ) ROOT_INSTALL_HEADERS() diff --git a/io/io/CMakeLists.txt b/io/io/CMakeLists.txt index 3827d2b632662..7ca110428768e 100644 --- a/io/io/CMakeLists.txt +++ b/io/io/CMakeLists.txt @@ -6,13 +6,13 @@ set(libname RIO) include_directories(${CMAKE_SOURCE_DIR}/core/clib/res) -ROOT_GENERATE_DICTIONARY(G__IO *.h ROOT/*.hxx STAGE1 MODULE ${libname} LINKDEF LinkDef.h DEPENDENCIES Core Thread) +ROOT_GENERATE_DICTIONARY(G__RIO *.h ROOT/*.hxx STAGE1 MODULE ${libname} LINKDEF LinkDef.h DEPENDENCIES Core Thread) if(root7) ROOT_GLOB_SOURCES(root7src RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} v7/src/*.cxx) endif() -ROOT_OBJECT_LIBRARY(RIOObjs G__IO.cxx ${root7src} *.cxx) +ROOT_OBJECT_LIBRARY(RIOObjs G__RIO.cxx ${root7src} *.cxx) ROOT_LINKER_LIBRARY(${libname} $ $ LIBRARIES ${CMAKE_DL_LIBS} DEPENDENCIES Core Thread) diff --git a/io/sql/CMakeLists.txt b/io/sql/CMakeLists.txt index dc19cd43f8459..72c74518775a5 100644 --- a/io/sql/CMakeLists.txt +++ b/io/sql/CMakeLists.txt @@ -2,8 +2,8 @@ # CMakeLists.txt file for building ROOT io/sql package ############################################################################ -ROOT_GENERATE_DICTIONARY(G__SQL *.h MODULE SQLIO LINKDEF LinkDef.h DEPENDENCIES Net RIO ) +ROOT_GENERATE_DICTIONARY(G__SQLIO *.h MODULE SQLIO LINKDEF LinkDef.h DEPENDENCIES Net RIO ) -ROOT_LINKER_LIBRARY(SQLIO *.cxx G__SQL.cxx DEPENDENCIES Net RIO ) +ROOT_LINKER_LIBRARY(SQLIO *.cxx G__SQLIO.cxx DEPENDENCIES Net RIO ) ROOT_INSTALL_HEADERS() diff --git a/io/xml/CMakeLists.txt b/io/xml/CMakeLists.txt index bd1c2071ed1be..d47f13a3cb853 100644 --- a/io/xml/CMakeLists.txt +++ b/io/xml/CMakeLists.txt @@ -2,9 +2,9 @@ # CMakeLists.txt file for building ROOT io/xml package ############################################################################ -ROOT_GENERATE_DICTIONARY(G__XML *.h MODULE XMLIO LINKDEF LinkDef.h DEPENDENCIES RIO ) +ROOT_GENERATE_DICTIONARY(G__XMLIO *.h MODULE XMLIO LINKDEF LinkDef.h DEPENDENCIES RIO ) -ROOT_LINKER_LIBRARY(XMLIO *.cxx G__XML.cxx DEPENDENCIES RIO ) +ROOT_LINKER_LIBRARY(XMLIO *.cxx G__XMLIO.cxx DEPENDENCIES RIO ) ROOT_INSTALL_HEADERS() diff --git a/math/mathcore/test/CMakeLists.txt b/math/mathcore/test/CMakeLists.txt index f12d873a1cb93..3164280ab0d57 100644 --- a/math/mathcore/test/CMakeLists.txt +++ b/math/mathcore/test/CMakeLists.txt @@ -68,8 +68,8 @@ foreach(file ${TestSource}) endforeach() -ROOT_GENERATE_DICTIONARY(TrackMathCoreUnitDictionary ${CMAKE_CURRENT_SOURCE_DIR}/stress/TrackMathCore.h MODULE TrackMathCoreUnitDict LINKDEF stress/TrackMathCoreLinkDef.h DEPENDENCIES Core MathCore RIO GenVector) -ROOT_LINKER_LIBRARY(TrackMathCoreUnitDict TrackMathCoreUnitDictionary.cxx LIBRARIES Core MathCore RIO GenVector) +ROOT_GENERATE_DICTIONARY(G__TrackMathCoreUnitDict ${CMAKE_CURRENT_SOURCE_DIR}/stress/TrackMathCore.h MODULE TrackMathCoreUnitDict LINKDEF stress/TrackMathCoreLinkDef.h DEPENDENCIES Core MathCore RIO GenVector) +ROOT_LINKER_LIBRARY(TrackMathCoreUnitDict G__TrackMathCoreUnitDict.cxx LIBRARIES Core MathCore RIO GenVector) ROOT_ADD_GTEST(stressMathCoreUnit stress/testSMatrix.cxx stress/testGenVector.cxx stress/testStat.cxx stress/testSVector.cxx stress/testVector.cxx stress/testVector34.cxx diff --git a/misc/table/CMakeLists.txt b/misc/table/CMakeLists.txt index e2f7b59bfb18e..625f50f658098 100644 --- a/misc/table/CMakeLists.txt +++ b/misc/table/CMakeLists.txt @@ -3,7 +3,7 @@ # @author Pere Mato, CERN ############################################################################ -ROOT_GENERATE_DICTIONARY(G__Table *.h MODULE Table LINKDEF LinkDef.h) DEPENDENCIES Tree Gpad Graf3d Graf Hist RIO MathCore +ROOT_GENERATE_DICTIONARY(G__Table *.h MODULE Table LINKDEF LinkDef.h DEPENDENCIES Tree Gpad Graf3d Graf Hist RIO MathCore) ROOT_LINKER_LIBRARY(Table *.cxx G__Table.cxx LIBRARIES Core DEPENDENCIES Tree Gpad Graf3d Graf Hist RIO MathCore) ROOT_INSTALL_HEADERS() diff --git a/montecarlo/pythia8/CMakeLists.txt b/montecarlo/pythia8/CMakeLists.txt index 37148da8eb22e..bb99f139e4351 100644 --- a/montecarlo/pythia8/CMakeLists.txt +++ b/montecarlo/pythia8/CMakeLists.txt @@ -5,10 +5,10 @@ include_directories(${PYTHIA8_INCLUDE_DIR}) -ROOT_GENERATE_DICTIONARY(G__Pythia8 *.h MODULE EGPythia8 LINKDEF LinkDef.h DEPENDENCIES EG Graf VMC Physics) +ROOT_GENERATE_DICTIONARY(G__EGPythia8 *.h MODULE EGPythia8 LINKDEF LinkDef.h DEPENDENCIES EG Graf VMC Physics) ROOT_ADD_CXX_FLAG(CMAKE_CXX_FLAGS -Wno-overloaded-virtual) ROOT_ADD_CXX_FLAG(CMAKE_CXX_FLAGS -Wno-misleading-indentation) -ROOT_LINKER_LIBRARY(EGPythia8 *.cxx G__Pythia8.cxx LIBRARIES Core ${PYTHIA8_LIBRARIES} DEPENDENCIES EG Graf VMC Physics) +ROOT_LINKER_LIBRARY(EGPythia8 *.cxx G__EGPythia8.cxx LIBRARIES Core ${PYTHIA8_LIBRARIES} DEPENDENCIES EG Graf VMC Physics) ROOT_INSTALL_HEADERS() diff --git a/net/bonjour/CMakeLists.txt b/net/bonjour/CMakeLists.txt index 4f09ea6e2585b..4c638ad2d9339 100644 --- a/net/bonjour/CMakeLists.txt +++ b/net/bonjour/CMakeLists.txt @@ -5,9 +5,9 @@ include_directories(${BONJOUR_INCLUDE_DIR}) -ROOT_GENERATE_DICTIONARY(G__BONJ *.h MODULE Bonjour LINKDEF LinkDef.h DEPENDENCIES Core) +ROOT_GENERATE_DICTIONARY(G__Bonjour *.h MODULE Bonjour LINKDEF LinkDef.h DEPENDENCIES Core) -ROOT_LINKER_LIBRARY(Bonjour *.cxx G__BONJ.cxx LIBRARIES ${BONJOUR_LIBRARIES} DEPENDENCIES Core) +ROOT_LINKER_LIBRARY(Bonjour *.cxx G__Bonjour.cxx LIBRARIES ${BONJOUR_LIBRARIES} DEPENDENCIES Core) ROOT_INSTALL_HEADERS() diff --git a/net/ldap/CMakeLists.txt b/net/ldap/CMakeLists.txt index 420c7fc475bfa..ba9ee5cf5ae75 100644 --- a/net/ldap/CMakeLists.txt +++ b/net/ldap/CMakeLists.txt @@ -9,7 +9,7 @@ if(MACOSX_LDAP_DEPRECATED) add_definitions(-Wno-deprecated-declarations) endif() -ROOT_GENERATE_DICTIONARY(G__LDAP *.h MODULE RLDAP LINKDEF LinkDef.h DEPENDENCIES Net) +ROOT_GENERATE_DICTIONARY(G__RLDAP *.h MODULE RLDAP LINKDEF LinkDef.h DEPENDENCIES Net) -ROOT_LINKER_LIBRARY(RLDAP *.cxx G__LDAP.cxx LIBRARIES Core ${LDAP_LIBRARIES} DEPENDENCIES Net) +ROOT_LINKER_LIBRARY(RLDAP *.cxx G__RLDAP.cxx LIBRARIES Core ${LDAP_LIBRARIES} DEPENDENCIES Net) ROOT_INSTALL_HEADERS() diff --git a/sql/sqlite/CMakeLists.txt b/sql/sqlite/CMakeLists.txt index 9156c80928beb..f969e5dd1926f 100644 --- a/sql/sqlite/CMakeLists.txt +++ b/sql/sqlite/CMakeLists.txt @@ -4,7 +4,7 @@ include_directories(${SQLITE_INCLUDE_DIR}) -ROOT_GENERATE_DICTIONARY(G__SQLite *.h MODULE RSQLite LINKDEF LinkDef.h DEPENDENCIES Net RIO) +ROOT_GENERATE_DICTIONARY(G__RSQLite *.h MODULE RSQLite LINKDEF LinkDef.h DEPENDENCIES Net RIO) -ROOT_LINKER_LIBRARY(RSQLite *.cxx G__SQLite.cxx LIBRARIES Core ${SQLITE_LIBRARIES} DEPENDENCIES Net RIO) +ROOT_LINKER_LIBRARY(RSQLite *.cxx G__RSQLite.cxx LIBRARIES Core ${SQLITE_LIBRARIES} DEPENDENCIES Net RIO) ROOT_INSTALL_HEADERS() diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index b36e0a9581427..3e6907d56de73 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -35,8 +35,8 @@ ROOT_ADD_TEST(show-environment COMMAND ${CMAKE_COMMAND} -E environment) ROOT_EXECUTABLE(hworld hworld.cxx LIBRARIES Gpad) #---event------------------------------------------------------------------------------------- -ROOT_GENERATE_DICTIONARY(EventDict ${CMAKE_CURRENT_SOURCE_DIR}/Event.h MODULE Event LINKDEF EventLinkDef.h DEPENDENCIES Hist MathCore) -ROOT_LINKER_LIBRARY(Event Event.cxx EventDict.cxx LIBRARIES Hist MathCore) +ROOT_GENERATE_DICTIONARY(G__Event ${CMAKE_CURRENT_SOURCE_DIR}/Event.h MODULE Event LINKDEF EventLinkDef.h DEPENDENCIES Hist MathCore) +ROOT_LINKER_LIBRARY(Event Event.cxx G__Event.cxx LIBRARIES Hist MathCore) ROOT_EXECUTABLE(eventexe MainEvent.cxx LIBRARIES Event RIO Tree TreePlayer Hist Net) ROOT_ADD_TEST(test-event COMMAND eventexe) @@ -75,16 +75,16 @@ ROOT_EXECUTABLE(vlazy vlazy.cxx LIBRARIES Core Matrix) ROOT_ADD_TEST(test-vlazy COMMAND vlazy) #--helloso------------------------------------------------------------------------------------ -ROOT_GENERATE_DICTIONARY(HelloDict ${CMAKE_CURRENT_SOURCE_DIR}/Hello.h MODULE Hello) -ROOT_LINKER_LIBRARY(Hello Hello.cxx HelloDict.cxx LIBRARIES Graf Gpad) +ROOT_GENERATE_DICTIONARY(G__Hello ${CMAKE_CURRENT_SOURCE_DIR}/Hello.h MODULE Hello) +ROOT_LINKER_LIBRARY(Hello Hello.cxx G__Hello.cxx LIBRARIES Graf Gpad) #--Aclockso------------------------------------------------------------------------------------ -ROOT_GENERATE_DICTIONARY(AclockDict ${CMAKE_CURRENT_SOURCE_DIR}/Aclock.h MODULE Aclock) -ROOT_LINKER_LIBRARY(Aclock Aclock.cxx AclockDict.cxx LIBRARIES Graf Gpad) +ROOT_GENERATE_DICTIONARY(G__Aclock ${CMAKE_CURRENT_SOURCE_DIR}/Aclock.h MODULE Aclock) +ROOT_LINKER_LIBRARY(Aclock Aclock.cxx G__Aclock.cxx LIBRARIES Graf Gpad) #--bench------------------------------------------------------------------------------------ -ROOT_GENERATE_DICTIONARY(TBenchDict ${CMAKE_CURRENT_SOURCE_DIR}/TBench.h MODULE TBench LINKDEF benchLinkDef.h) -ROOT_LINKER_LIBRARY(TBench TBench.cxx TBenchDict.cxx LIBRARIES Core MathCore RIO Tree) +ROOT_GENERATE_DICTIONARY(G__TBench ${CMAKE_CURRENT_SOURCE_DIR}/TBench.h MODULE TBench LINKDEF benchLinkDef.h) +ROOT_LINKER_LIBRARY(TBench TBench.cxx G__TBench.cxx LIBRARIES Core MathCore RIO Tree) ROOT_EXECUTABLE(bench bench.cxx LIBRARIES Core TBench) ROOT_ADD_TEST(test-bench COMMAND bench LABELS longtest) @@ -168,8 +168,8 @@ if(ROOT_mathmore_FOUND) endif() #--stressMathCore---------------------------------------------------------------------------------- -ROOT_GENERATE_DICTIONARY(TrackMathCoreDictionary ${CMAKE_CURRENT_SOURCE_DIR}/TrackMathCore.h MODULE TrackMathCoreDict LINKDEF TrackMathCoreLinkDef.h) -ROOT_LINKER_LIBRARY(TrackMathCoreDict TrackMathCoreDictionary.cxx LIBRARIES Core MathCore RIO GenVector) +ROOT_GENERATE_DICTIONARY(G__TrackMathCoreDict ${CMAKE_CURRENT_SOURCE_DIR}/TrackMathCore.h MODULE TrackMathCoreDict LINKDEF TrackMathCoreLinkDef.h) +ROOT_LINKER_LIBRARY(TrackMathCoreDict G__TrackMathCoreDict.cxx LIBRARIES Core MathCore RIO GenVector) ROOT_EXECUTABLE(stressMathCore stressMathCore.cxx LIBRARIES MathCore Hist RIO Tree GenVector) ROOT_ADD_TEST(test-stressmathcore COMMAND stressMathCore FAILREGEX "FAILED|Error in") ROOT_ADD_TEST(test-stressmathcore-interpreted COMMAND ${ROOT_root_CMD} -b -q -l ${CMAKE_CURRENT_SOURCE_DIR}/stressMathCore.cxx From 8dd8abcfb054504a4510bdbf7ec51722507927d9 Mon Sep 17 00:00:00 2001 From: Raphael Isemann Date: Tue, 11 Jul 2017 16:14:35 +0200 Subject: [PATCH 4/5] Add BUILTINS arg to ROOT_GENERATE_DICTIONARY Right now rootcling doesn't know if the headers depend on a target that is provided by a BUILTIN. This patch adds a new parameter that allows expressing if thie rootcling invocation depends on a certain BUILTIN in a way that is identical to the ROOT_LINKER_LIBRARY way of handling this. --- cmake/modules/RootNewMacros.cmake | 11 ++++++++++- core/imt/CMakeLists.txt | 2 +- graf2d/asimage/CMakeLists.txt | 2 +- graf2d/fitsio/CMakeLists.txt | 2 +- graf2d/graf/CMakeLists.txt | 2 +- math/fftw/CMakeLists.txt | 2 +- math/mathcore/CMakeLists.txt | 12 ++++++------ math/mathmore/CMakeLists.txt | 2 +- net/davix/CMakeLists.txt | 2 +- net/net/CMakeLists.txt | 2 +- net/netx/CMakeLists.txt | 2 +- roofit/histfactory/CMakeLists.txt | 2 +- 12 files changed, 26 insertions(+), 17 deletions(-) diff --git a/cmake/modules/RootNewMacros.cmake b/cmake/modules/RootNewMacros.cmake index 37c0f1a9b59fc..629487a6b6292 100644 --- a/cmake/modules/RootNewMacros.cmake +++ b/cmake/modules/RootNewMacros.cmake @@ -207,10 +207,11 @@ endmacro() #--------------------------------------------------------------------------------------------------- #---ROOT_GENERATE_DICTIONARY( dictionary headerfiles MODULE module DEPENDENCIES dep1 dep2 +# BUILTINS dep1 dep2 # STAGE1 LINKDEF linkdef OPTIONS opt1 opt2 ...) #--------------------------------------------------------------------------------------------------- function(ROOT_GENERATE_DICTIONARY dictionary) - CMAKE_PARSE_ARGUMENTS(ARG "STAGE1;MULTIDICT;NOINSTALL" "MODULE" "LINKDEF;OPTIONS;DEPENDENCIES" ${ARGN}) + CMAKE_PARSE_ARGUMENTS(ARG "STAGE1;MULTIDICT;NOINSTALL" "MODULE" "LINKDEF;OPTIONS;DEPENDENCIES;BUILTINS" ${ARGN}) # Check if OPTIONS start with a dash. if (ARG_OPTIONS) @@ -404,6 +405,14 @@ function(ROOT_GENERATE_DICTIONARY dictionary) DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries) endif() endif() + + if(ARG_BUILTINS) + foreach(arg1 ${ARG_BUILTINS}) + if(${arg1}_TARGET) + add_dependencies(${dictname} ${${arg1}_TARGET}) + endif() + endforeach() + endif() # FIXME: Support mulptiple dictionaries. In some cases (libSMatrix and # libGenVector) we have to have two or more dictionaries (eg. for math, # we need the two for double vs Double32_t template specializations). diff --git a/core/imt/CMakeLists.txt b/core/imt/CMakeLists.txt index 9d2743fe15b53..394af0d0fcfa0 100644 --- a/core/imt/CMakeLists.txt +++ b/core/imt/CMakeLists.txt @@ -6,7 +6,7 @@ set(sources base.cxx) if (imt) set(headers ROOT/TPoolManager.hxx ROOT/TThreadExecutor.hxx) - ROOT_GENERATE_DICTIONARY(G__Imt ${headers} STAGE1 MODULE Imt LINKDEF LinkDef.h DEPENDENCIES Core Thread) # For auto{loading,parsing} + ROOT_GENERATE_DICTIONARY(G__Imt ${headers} STAGE1 MODULE Imt LINKDEF LinkDef.h DEPENDENCIES Core Thread BUILTINS TBB) # For auto{loading,parsing} set(sources ${sources} TImplicitMT.cxx TThreadExecutor.cxx TPoolManager.cxx G__Imt.cxx) endif() diff --git a/graf2d/asimage/CMakeLists.txt b/graf2d/asimage/CMakeLists.txt index c70c3b0e6aaf3..95965c736e9a0 100644 --- a/graf2d/asimage/CMakeLists.txt +++ b/graf2d/asimage/CMakeLists.txt @@ -10,7 +10,7 @@ endif() #---Build ASImage/ASImageGui libraries--------------------------------------- include_directories(${FREETYPE_INCLUDE_DIRS} ${AFTERIMAGE_INCLUDE_DIR} ${X11_INCLUDE_DIR}) -ROOT_GENERATE_DICTIONARY(G__ASImage TASImage.h TASImagePlugin.h TASPluginGS.h MODULE ASImage LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Graf) +ROOT_GENERATE_DICTIONARY(G__ASImage TASImage.h TASImagePlugin.h TASPluginGS.h MODULE ASImage LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Graf BUILTINS AFTERIMAGE) ROOT_LINKER_LIBRARY(ASImage TASImage.cxx TASPluginGS.cxx G__ASImage.cxx LIBRARIES Core ${AFTERIMAGE_LIBRARIES} ${FREETYPE_LIBRARIES} ${ASEXTRA_LIBRARIES} ${X11_LIBRARIES} diff --git a/graf2d/fitsio/CMakeLists.txt b/graf2d/fitsio/CMakeLists.txt index cdb854b23ca5c..bb0cfeb334a8d 100644 --- a/graf2d/fitsio/CMakeLists.txt +++ b/graf2d/fitsio/CMakeLists.txt @@ -5,7 +5,7 @@ include_directories(${CFITSIO_INCLUDE_DIR}) -ROOT_GENERATE_DICTIONARY(G__FITSIO *.h MODULE FITSIO LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Hist Gpad Graf) +ROOT_GENERATE_DICTIONARY(G__FITSIO *.h MODULE FITSIO LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Hist Gpad Graf BUILTINS CFITSIO) ROOT_LINKER_LIBRARY(FITSIO *.cxx G__FITSIO.cxx LIBRARIES ${CFITSIO_LIBRARIES} DEPENDENCIES Hist Gpad Graf Matrix BUILTINS CFITSIO) diff --git a/graf2d/graf/CMakeLists.txt b/graf2d/graf/CMakeLists.txt index 82a5305d660dc..725c015d02891 100644 --- a/graf2d/graf/CMakeLists.txt +++ b/graf2d/graf/CMakeLists.txt @@ -3,7 +3,7 @@ # @author Pere Mato, CERN ############################################################################ -ROOT_GENERATE_DICTIONARY(G__Graf MODULE Graf *.h LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Hist Matrix MathCore RIO) +ROOT_GENERATE_DICTIONARY(G__Graf MODULE Graf *.h LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Hist Matrix MathCore RIO BUILTINS FREETYPE) include_directories(${FREETYPE_INCLUDE_DIRS}) diff --git a/math/fftw/CMakeLists.txt b/math/fftw/CMakeLists.txt index 711a8b4ec488c..f4113c42fe3d7 100644 --- a/math/fftw/CMakeLists.txt +++ b/math/fftw/CMakeLists.txt @@ -5,7 +5,7 @@ include_directories(${FFTW_INCLUDE_DIR}) -ROOT_GENERATE_DICTIONARY(G__FFTW *.h MODULE FFTW LINKDEF LinkDef.h DEPENDENCIES Core) +ROOT_GENERATE_DICTIONARY(G__FFTW *.h MODULE FFTW LINKDEF LinkDef.h DEPENDENCIES Core BUILTINS FFTW3) ROOT_LINKER_LIBRARY(FFTW *.cxx G__FFTW.cxx LIBRARIES Core ${FFTW_LIBRARIES} BUILTINS FFTW3) diff --git a/math/mathcore/CMakeLists.txt b/math/mathcore/CMakeLists.txt index c25807de19e95..4683204e8c13c 100644 --- a/math/mathcore/CMakeLists.txt +++ b/math/mathcore/CMakeLists.txt @@ -17,7 +17,12 @@ set(MATHCORE_HEADERS TRandom.h Math/MersenneTwisterEngine.h Math/MixMaxEngine.h TRandomGen.h Math/LCGEngine.h ) -ROOT_GENERATE_DICTIONARY(G__MathCore TComplex.h TMath.h ${MATHCORE_HEADERS} Fit/*.h MODULE MathCore LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Core Imt) +if(veccore) + set(MATHCORE_LIBRARIES ${VecCore_LIBRARIES}) + set(MATHCORE_BUILTINS VECCORE) +endif() + +ROOT_GENERATE_DICTIONARY(G__MathCore TComplex.h TMath.h ${MATHCORE_HEADERS} Fit/*.h MODULE MathCore LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES Core Imt BUILTINS ${MATHCORE_BUILTINS}) add_definitions(-DUSE_ROOT_ERROR) ROOT_ADD_C_FLAG(_flags -Wno-strict-overflow) # Avoid what it seems a compiler false positive warning @@ -30,11 +35,6 @@ if(imt) set(MATHCORE_DEPENDENCIES Imt) endif() -if(veccore) - set(MATHCORE_LIBRARIES ${VecCore_LIBRARIES}) - set(MATHCORE_BUILTINS VECCORE) -endif() - ROOT_LINKER_LIBRARY(MathCore *.cxx *.c G__MathCore.cxx LIBRARIES ${CMAKE_THREAD_LIBS_INIT} ${MATHCORE_LIBRARIES} DEPENDENCIES Core ${MATHCORE_DEPENDENCIES} BUILTINS ${MATHCORE_BUILTINS}) if(veccore) diff --git a/math/mathmore/CMakeLists.txt b/math/mathmore/CMakeLists.txt index bcc8a05b88277..38976d5940294 100644 --- a/math/mathmore/CMakeLists.txt +++ b/math/mathmore/CMakeLists.txt @@ -19,7 +19,7 @@ set(headers Math/DistFuncMathMore.h Math/SpecFuncMathMore.h Math/PdfFuncMathMore Math/VavilovAccurateCdf.h Math/VavilovAccurateQuantile.h Math/VavilovFast.h ) set(linkdefs Math/LinkDef.h Math/LinkDef_Func.h Math/LinkDef_RootFinding.h) -ROOT_GENERATE_DICTIONARY(G__MathMore ${headers} MODULE MathMore LINKDEF Math/LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES MathCore) +ROOT_GENERATE_DICTIONARY(G__MathMore ${headers} MODULE MathMore LINKDEF Math/LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES MathCore BUILTINS GSL) ROOT_LINKER_LIBRARY(MathMore *.cxx G__MathMore.cxx LIBRARIES ${GSL_LIBRARIES} DEPENDENCIES MathCore BUILTINS GSL) diff --git a/net/davix/CMakeLists.txt b/net/davix/CMakeLists.txt index e30991b907e2e..8409ce56f9efb 100644 --- a/net/davix/CMakeLists.txt +++ b/net/davix/CMakeLists.txt @@ -11,7 +11,7 @@ ROOT_ADD_CXX_FLAG(CMAKE_CXX_FLAGS -Wno-unused-parameter) ROOT_ADD_CXX_FLAG(CMAKE_CXX_FLAGS -Wno-deprecated-declarations) # Davix getAllReplicas -ROOT_GENERATE_DICTIONARY(G__DAVIX *.h MODULE RDAVIX LINKDEF LinkDef.h DEPENDENCIES RIO Net) +ROOT_GENERATE_DICTIONARY(G__DAVIX *.h MODULE RDAVIX LINKDEF LinkDef.h DEPENDENCIES RIO Net BUILTINS DAVIX) ROOT_LINKER_LIBRARY(RDAVIX *.cxx G__DAVIX.cxx LIBRARIES ${DAVIX_LIBRARIES} ${OPENSSL_LIBRARIES} ${LIBXML2_LIBRARIES} ${SYSLIBS} DEPENDENCIES RIO Net BUILTINS DAVIX) diff --git a/net/net/CMakeLists.txt b/net/net/CMakeLists.txt index 4ad3e41f5c9b5..1632ceb8aaf36 100644 --- a/net/net/CMakeLists.txt +++ b/net/net/CMakeLists.txt @@ -27,7 +27,7 @@ if(MACOSX_SSL_DEPRECATED) set_source_files_properties(src/TSSLSocket.cxx COMPILE_FLAGS "-Wno-deprecated-declarations" ) endif() -ROOT_GENERATE_DICTIONARY(G__Net ${headers} MODULE Net LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES RIO) +ROOT_GENERATE_DICTIONARY(G__Net ${headers} MODULE Net LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" DEPENDENCIES RIO BUILTINS OPENSSL) ROOT_LINKER_LIBRARY(Net ${sources} G__Net.cxx LIBRARIES ${ssllib} ${CRYPTLIBS} DEPENDENCIES RIO BUILTINS OPENSSL) diff --git a/net/netx/CMakeLists.txt b/net/netx/CMakeLists.txt index a5023d97bf81d..fbab60c0adcf1 100644 --- a/net/netx/CMakeLists.txt +++ b/net/netx/CMakeLists.txt @@ -8,7 +8,7 @@ include_directories(${CMAKE_SOURCE_DIR}/proof/proofd/inc) add_definitions(${XROOTD_CFLAGS}) #--------------------------------------------------------------------------- -ROOT_GENERATE_DICTIONARY(G__Netx *.h MODULE Netx LINKDEF LinkDef.h DEPENDENCIES Net RIO Thread) +ROOT_GENERATE_DICTIONARY(G__Netx *.h MODULE Netx LINKDEF LinkDef.h DEPENDENCIES Net RIO Thread BUILTINS XROOTD) ROOT_LINKER_LIBRARY(Netx *.cxx G__Netx.cxx LIBRARIES ${XROOTD_LIBRARIES} DEPENDENCIES Net RIO Thread BUILTINS XROOTD) diff --git a/roofit/histfactory/CMakeLists.txt b/roofit/histfactory/CMakeLists.txt index 5fc204d4cd66b..0566fa5194c74 100644 --- a/roofit/histfactory/CMakeLists.txt +++ b/roofit/histfactory/CMakeLists.txt @@ -3,7 +3,7 @@ # @author Pere Mato, CERN ############################################################################ -ROOT_GENERATE_DICTIONARY(G__HistFactory RooStats/HistFactory/*.h MODULE HistFactory LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM") +ROOT_GENERATE_DICTIONARY(G__HistFactory RooStats/HistFactory/*.h MODULE HistFactory LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM" BUILTINS GSL) ROOT_GLOB_SOURCES(sources src/*.cxx) From 56c8e47d668883805a9e1269d67a335ad475a7de Mon Sep 17 00:00:00 2001 From: Raphael Isemann Date: Wed, 12 Jul 2017 08:37:07 +0200 Subject: [PATCH 5/5] Add ROOTCLING_ targets that allow more parallel rootcling invocations. So far GENERATE_DICTIONARY depends on all the targets passed to its DEPENDENCIES argument. However, this means for some targets not only the generation of PCMs, rootmaps etc, but also the linking of this target (as for example the target `Hist` generates Hist.pcm and then also links libHist.so). We only care about the files generated by rootcling when we specify the dependencies here, so we can improve build performance here. This patch creates a new target for each dictionary generation command called ROOTCLING_{MODULE} which can be refernced by other rootcling invocations to state that they depend on the rootcling files (PCMs, rootmap, root-PCMs) of this module, but not on a fully built module. We then start checking for each dependency passed to GENERATE_DICTIONARY if there is a ROOTCLING_MODULE target and depend on this if possible. This should cause that all the rootcling invocations can be started earlier and the linking of modules and rootcling invocations of its dependencies now run in parallel. --- cmake/modules/RootNewMacros.cmake | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/cmake/modules/RootNewMacros.cmake b/cmake/modules/RootNewMacros.cmake index 629487a6b6292..5e8069a992e0c 100644 --- a/cmake/modules/RootNewMacros.cmake +++ b/cmake/modules/RootNewMacros.cmake @@ -380,6 +380,16 @@ function(ROOT_GENERATE_DICTIONARY dictionary) if (cxxmodules) set(genverbosity "-v2") endif(cxxmodules) + + set(module_dependencies "") + foreach(dep ${ARG_DEPENDENCIES}) + if(TARGET ROOTCLING_${dep}) + set(module_dependencies ${module_dependencies} ROOTCLING_${dep}) + else() + set(module_dependencies ${module_dependencies} ${dep}) + endif() + endforeach() + #---call rootcint------------------------------------------ add_custom_command(OUTPUT ${dictionary}.cxx ${pcm_name} ${rootmap_name} COMMAND ${command} ${genverbosity} -f ${dictionary}.cxx ${newargs} ${excludepathsargs} ${rootmapargs} @@ -405,6 +415,20 @@ function(ROOT_GENERATE_DICTIONARY dictionary) DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries) endif() endif() + # Create a target for this rootcling invocation based on the module name. + # We can use this in other ROOT_GENERATE_DICTIONARY that only care about + # the generation of PCMs without waiting on the whole module. + if(ARG_MODULE) + # If we have multiple modules with the same name, let's just attach the + # generation of this dictionary to the ROOTCLING_X target of the existing + # module. This happens for example with ROOTCLING_Smatrix which also comes + # in a "Smatrix32" version. + if (TARGET ROOTCLING_${ARG_MODULE}) + add_dependencies(ROOTCLING_${ARG_MODULE} ${dictname}) + else() + add_custom_target(ROOTCLING_${ARG_MODULE} DEPENDS ${dictname}) + endif() + endif() if(ARG_BUILTINS) foreach(arg1 ${ARG_BUILTINS})