From 437f61859abdf11eb2db7780b821d943c4226418 Mon Sep 17 00:00:00 2001 From: ferdymercury Date: Wed, 4 Nov 2026 09:14:06 +0100 Subject: [PATCH 01/12] [xroofit] experimental use of file sets for library generation --- cmake/modules/RootMacros.cmake | 41 ++++++++++++++++- roofit/xroofit/CMakeLists.txt | 83 ++++++++++++++++++++-------------- 2 files changed, 88 insertions(+), 36 deletions(-) diff --git a/cmake/modules/RootMacros.cmake b/cmake/modules/RootMacros.cmake index fbf71b6c2321b..90c4ccd3e2066 100644 --- a/cmake/modules/RootMacros.cmake +++ b/cmake/modules/RootMacros.cmake @@ -288,11 +288,50 @@ function(ROOT_REPLACE_BUILD_INTERFACE include_dir_var include_dir) set(${include_dir_var} ${include_dir} PARENT_SCOPE) endfunction(ROOT_REPLACE_BUILD_INTERFACE) +#--------------------------------------------------------------------------------------------------- +#---ROOT_GENERATE_TARGET_DICTIONARY( target OPTIONS opt1 opt2 ...) +# +# Creates the dictionary of a predefined CMake target +# is the CMake target on which header file sets and link libraries have been defined +# The output dictionary will be another CMake target called G__ prepended.; +# the macro creates (among other files) the dictionary source as G__.cxx +#--------------------------------------------------------------------------------------------------- +function(ROOT_GENERATE_TARGET_DICTIONARY target options) + # Check if OPTIONS start with a dash. + if (options) + foreach(ARG_O ${options}) + if (NOT ARG_O MATCHES "^-*") + message(FATAL_ERROR "Wrong rootcling option: ${options}") + endif() + endforeach() + endif(options) + + get_target_property(type ${target} TYPE) + if(NOT ${type} STREQUAL "INTERFACE_LIBRARY") + get_target_property(SrcList ${target} SOURCES) + get_target_property(SrcDir ${target} SOURCE_DIR) + list(TRANSFORM SrcList PREPEND ${SrcDir}/) + endif() + get_target_property(HeaderList ${target} HEADER_SET) + get_target_property(LinkdefList ${target} HEADER_SET_linkDefs) + # get_target_property(ModuleList ${target} CXX_MODULE_SET) needs 3.28 + if("HeaderList-NOTFOUND" IN_LIST HeaderList) + message(SEND_ERROR "ROOT_GENERATE_TARGET_DICTIONARY: Missing header file set in ${target}") + endif() + if("LinkdefList-NOTFOUND" IN_LIST LinkdefList) + message(SEND_ERROR "ROOT_GENERATE_TARGET_DICTIONARY: Missing Linkdef file set in ${target}") + endif() + get_target_property(LinkedLibraries ${target} LINK_LIBRARIES) + ROOT_GENERATE_DICTIONARY(G__${target} ${HeaderList} LINKDEF ${LinkdefList} DEPENDENCIES ${LinkedLibraries} OPTIONS ${options}) + # TODO: Probably one could directly call rootcling without all the shenanigan inside ROOT_GENERATE_DICTIONARY with include dirs, now that file_sets are used +endfunction(ROOT_GENERATE_TARGET_DICTIONARY) + #--------------------------------------------------------------------------------------------------- #---ROOT_GENERATE_DICTIONARY( dictionary headerfiles NODEPHEADERS ghdr1 ghdr2 ... # MODULE module DEPENDENCIES dep1 dep2 +# EXTRA_DEPENDENCIES # BUILTINS dep1 dep2 -# STAGE1 LINKDEF linkdef OPTIONS opt1 opt2 ...) +# STAGE1 LINKDEF linkdef OPTIONS opt1 opt2 ... NO_CXXMODULE MULTIDICT NOINSTALL) # # is the dictionary stem; the macro creates (among other files) the dictionary source as # .cxx diff --git a/roofit/xroofit/CMakeLists.txt b/roofit/xroofit/CMakeLists.txt index 375a2cf0f4744..3839b438b4cbf 100644 --- a/roofit/xroofit/CMakeLists.txt +++ b/roofit/xroofit/CMakeLists.txt @@ -1,17 +1,7 @@ -set (XROOFIT_HEADERS - RooBrowser.h - XRooFit.h - RooFit/xRooFit/xRooFit.h - RooFit/xRooFit/xRooNode.h - RooFit/xRooFit/xRooNLLVar.h - RooFit/xRooFit/xRooHypoSpace.h - RooFit/xRooFit/xRooBrowser.h -) - -ROOT_STANDARD_LIBRARY_PACKAGE(RooFitXRooFit - HEADERS - ${XROOFIT_HEADERS} - SOURCES +add_library(RooFitXRooFit SHARED) +target_sources( + RooFitXRooFit + PRIVATE src/Asymptotics.cxx src/xRooBrowser.cxx src/xRooFit.cxx @@ -20,9 +10,36 @@ ROOT_STANDARD_LIBRARY_PACKAGE(RooFitXRooFit src/xRooNode.cxx src/xRooNode_interactive.cxx src/PythonInterface.cxx - DICTIONARY_OPTIONS - "-writeEmptyRootPCM" - DEPENDENCIES + # These below could be also a PRIVATE header file_set if wanted + src/PythonInterface.h + src/coutCapture.h + src/xRooFitVersion.h + PUBLIC + FILE_SET HEADERS + TYPE HEADERS + BASE_DIRS inc/RooFit + FILES + inc/RooFit/xRooFit/xRooFit.h + inc/RooFit/xRooFit/xRooNode.h + inc/RooFit/xRooFit/xRooNLLVar.h + inc/RooFit/xRooFit/xRooHypoSpace.h + inc/RooFit/xRooFit/xRooBrowser.h + inc/RooFit/xRooFit/Config.h # was not part of XROOFIT_HEADERS earlier + PUBLIC + FILE_SET extraHEADERS + TYPE HEADERS + BASE_DIRS inc/ + FILES + inc/RooBrowser.h + inc/XRooFit.h + FILE_SET linkDefs + TYPE HEADERS + BASE_DIRS inc/ + FILES + inc/LinkDef.h +) +target_link_libraries(RooFitXRooFit + PUBLIC HistFactory RooFit RooFitHS3 @@ -32,27 +49,23 @@ ROOT_STANDARD_LIBRARY_PACKAGE(RooFitXRooFit Ged RooFitCore FitPanel - LINKDEF - inc/LinkDef.h ) +ROOT_GENERATE_TARGET_DICTIONARY(RooFitXRooFit "-writeEmptyRootPCM") +install(TARGETS RooFitXRooFit # This could go to another macro if wanted + EXPORT ${CMAKE_PROJECT_NAME}Exports + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + COMPONENT applications -target_include_directories(RooFitXRooFit PRIVATE inc/RooFit) + # with this we no longer need the moveheader target etc + FILE_SET HEADERS + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} # add /ROOT to make Debian happy -set(RELATIVE_INC_HEADERS ${XROOFIT_HEADERS}) -list(TRANSFORM RELATIVE_INC_HEADERS PREPEND inc/) -target_sources( - RooFitXRooFit - PRIVATE - FILE_SET private_header_files - TYPE HEADERS - BASE_DIRS inc/ src/ - FILES - ${RELATIVE_INC_HEADERS} - inc/LinkDef.h - inc/RooFit/xRooFit/Config.h # was not part of XROOFIT_HEADERS - src/PythonInterface.h - src/coutCapture.h - src/xRooFitVersion.h + FILE_SET extraHEADERS + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} # add /ROOT to make Debian happy + + FILE_SET linkDefs + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} # add /ROOT to make Debian happy ) ROOT_ADD_TEST_SUBDIRECTORY(test) From 252394dc4204e145e5cc2f726e0920bd78987505 Mon Sep 17 00:00:00 2001 From: ferdymercury Date: Thu, 5 Nov 2026 13:20:09 +0100 Subject: [PATCH 02/12] [cmake] make headerlist passed to gendict relative --- cmake/modules/RootMacros.cmake | 59 +++++++++++++++++++++++++++++++--- 1 file changed, 55 insertions(+), 4 deletions(-) diff --git a/cmake/modules/RootMacros.cmake b/cmake/modules/RootMacros.cmake index 90c4ccd3e2066..48fb8174d2d37 100644 --- a/cmake/modules/RootMacros.cmake +++ b/cmake/modules/RootMacros.cmake @@ -291,9 +291,10 @@ endfunction(ROOT_REPLACE_BUILD_INTERFACE) #--------------------------------------------------------------------------------------------------- #---ROOT_GENERATE_TARGET_DICTIONARY( target OPTIONS opt1 opt2 ...) # -# Creates the dictionary of a predefined CMake target +# Creates the dictionary of a predefined CMake target defined following FILE_SET naming conventions: +# linkDefs for Linkdef.h, HEADERS for public headers # is the CMake target on which header file sets and link libraries have been defined -# The output dictionary will be another CMake target called G__ prepended.; +# The output dictionary will be another CMake target called G__, ie with G__ prepended.; # the macro creates (among other files) the dictionary source as G__.cxx #--------------------------------------------------------------------------------------------------- function(ROOT_GENERATE_TARGET_DICTIONARY target options) @@ -313,16 +314,39 @@ function(ROOT_GENERATE_TARGET_DICTIONARY target options) list(TRANSFORM SrcList PREPEND ${SrcDir}/) endif() get_target_property(HeaderList ${target} HEADER_SET) + get_target_property(HeaderBaseDirs ${target} HEADER_DIRS) get_target_property(LinkdefList ${target} HEADER_SET_linkDefs) - # get_target_property(ModuleList ${target} CXX_MODULE_SET) needs 3.28 + # get_target_property(ModuleList ${target} CXX_MODULE_SET) needs CMake 3.28 if("HeaderList-NOTFOUND" IN_LIST HeaderList) message(SEND_ERROR "ROOT_GENERATE_TARGET_DICTIONARY: Missing header file set in ${target}") endif() if("LinkdefList-NOTFOUND" IN_LIST LinkdefList) message(SEND_ERROR "ROOT_GENERATE_TARGET_DICTIONARY: Missing Linkdef file set in ${target}") endif() + + # Transform absolute header paths to relative paths based on BASE_DIRS + set(RelativeHeaderList "") + foreach(header_file ${HeaderList}) + set(resolved_path "") + foreach(base_dir ${HeaderBaseDirs}) + file(RELATIVE_PATH rel_path "${base_dir}" "${header_file}") + # If the path doesn't start with "../", it means it's under this base directory + if(NOT "${rel_path}" MATCHES "^\\.\\./") + set(resolved_path "${rel_path}") + break() + endif() + endforeach() + + if(resolved_path) + list(APPEND RelativeHeaderList "${resolved_path}") + else() + # Fallback to absolute if it couldn't be resolved relative to any base dir + list(APPEND RelativeHeaderList "${header_file}") + endif() + endforeach() + get_target_property(LinkedLibraries ${target} LINK_LIBRARIES) - ROOT_GENERATE_DICTIONARY(G__${target} ${HeaderList} LINKDEF ${LinkdefList} DEPENDENCIES ${LinkedLibraries} OPTIONS ${options}) + ROOT_GENERATE_DICTIONARY(G__${target} ${RelativeHeaderList} LINKDEF ${LinkdefList} MODULE ${target} DEPENDENCIES ${LinkedLibraries} OPTIONS ${options}) # TODO: Probably one could directly call rootcling without all the shenanigan inside ROOT_GENERATE_DICTIONARY with include dirs, now that file_sets are used endfunction(ROOT_GENERATE_TARGET_DICTIONARY) @@ -1343,6 +1367,33 @@ function(ROOT_FIND_DIRS_WITH_HEADERS result_dirs) set(${result_dirs} ${dirs} PARENT_SCOPE) endfunction() +#--------------------------------------------------------------------------------------------------- +#---ROOT_INSTALL_TARGET(target) +# Declare the install command for CMake target defined according to the following naming conventions +# for FILE_SETS: +# - linkDefs for LinkDef*.h files +# - HEADERS for public headers +# - extraHEADERS for public headers purposely excluded from dictionaries +#--------------------------------------------------------------------------------------------------- +function(ROOT_INSTALL_TARGET target) + install(TARGETS ${target} + EXPORT ${CMAKE_PROJECT_NAME}Exports + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + COMPONENT applications + + # with this we no longer need the moveheader target etc + FILE_SET HEADERS + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} # add /ROOT to make Debian happy + + FILE_SET extraHEADERS + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} # add /ROOT to make Debian happy + + FILE_SET linkDefs + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} # add /ROOT to make Debian happy + ) +endfunction(ROOT_INSTALL_TARGET) + #--------------------------------------------------------------------------------------------------- #---ROOT_INSTALL_HEADERS([dir1 dir2 ...] [FILTER ] [HEADERS ...]) # Declare the install command for headers and copy them into /include. From 8211d745bb5570dcd5227ba9efe17dafd783e0ad Mon Sep 17 00:00:00 2001 From: ferdymercury Date: Thu, 5 Nov 2026 13:22:45 +0100 Subject: [PATCH 03/12] [cmake] try compact layout --- roofit/xroofit/CMakeLists.txt | 98 +++++++++++++---------------------- 1 file changed, 37 insertions(+), 61 deletions(-) diff --git a/roofit/xroofit/CMakeLists.txt b/roofit/xroofit/CMakeLists.txt index 3839b438b4cbf..680aa69c97a5e 100644 --- a/roofit/xroofit/CMakeLists.txt +++ b/roofit/xroofit/CMakeLists.txt @@ -1,71 +1,47 @@ add_library(RooFitXRooFit SHARED) -target_sources( - RooFitXRooFit - PRIVATE - src/Asymptotics.cxx - src/xRooBrowser.cxx - src/xRooFit.cxx - src/xRooHypoSpace.cxx - src/xRooNLLVar.cxx - src/xRooNode.cxx - src/xRooNode_interactive.cxx - src/PythonInterface.cxx - # These below could be also a PRIVATE header file_set if wanted +target_sources(RooFitXRooFit +PRIVATE + src/Asymptotics.cxx + src/xRooBrowser.cxx + src/xRooFit.cxx + src/xRooHypoSpace.cxx + src/xRooNLLVar.cxx + src/xRooNode.cxx + src/xRooNode_interactive.cxx + src/PythonInterface.cxx +PRIVATE + FILE_SET privateHEADERS TYPE HEADERS BASE_DIRS src/ FILES src/PythonInterface.h src/coutCapture.h src/xRooFitVersion.h - PUBLIC - FILE_SET HEADERS - TYPE HEADERS - BASE_DIRS inc/RooFit - FILES - inc/RooFit/xRooFit/xRooFit.h - inc/RooFit/xRooFit/xRooNode.h - inc/RooFit/xRooFit/xRooNLLVar.h - inc/RooFit/xRooFit/xRooHypoSpace.h - inc/RooFit/xRooFit/xRooBrowser.h - inc/RooFit/xRooFit/Config.h # was not part of XROOFIT_HEADERS earlier - PUBLIC - FILE_SET extraHEADERS - TYPE HEADERS - BASE_DIRS inc/ - FILES - inc/RooBrowser.h - inc/XRooFit.h - FILE_SET linkDefs - TYPE HEADERS - BASE_DIRS inc/ - FILES - inc/LinkDef.h +PUBLIC + FILE_SET HEADERS TYPE HEADERS BASE_DIRS inc/ FILES + inc/RooFit/xRooFit/xRooFit.h + inc/RooFit/xRooFit/xRooNode.h + inc/RooFit/xRooFit/xRooNLLVar.h + inc/RooFit/xRooFit/xRooHypoSpace.h + inc/RooFit/xRooFit/xRooBrowser.h + inc/RooFit/xRooFit/Config.h + inc/RooBrowser.h + inc/XRooFit.h + FILE_SET linkDefs TYPE HEADERS BASE_DIRS inc/ FILES + inc/LinkDef.h ) +target_include_directories(RooFitXRooFit PRIVATE $) # for easening life in .cxx target_link_libraries(RooFitXRooFit - PUBLIC - HistFactory - RooFit - RooFitHS3 - RooStats - FitPanel - Gui - Ged - RooFitCore - FitPanel +PUBLIC + HistFactory + RooFit + RooFitHS3 + RooStats + FitPanel + Gui + Ged + RooFitCore + FitPanel ) -ROOT_GENERATE_TARGET_DICTIONARY(RooFitXRooFit "-writeEmptyRootPCM") -install(TARGETS RooFitXRooFit # This could go to another macro if wanted - EXPORT ${CMAKE_PROJECT_NAME}Exports - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - COMPONENT applications - - # with this we no longer need the moveheader target etc - FILE_SET HEADERS - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} # add /ROOT to make Debian happy - - FILE_SET extraHEADERS - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} # add /ROOT to make Debian happy - FILE_SET linkDefs - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} # add /ROOT to make Debian happy -) +ROOT_GENERATE_TARGET_DICTIONARY(RooFitXRooFit "-writeEmptyRootPCM") +ROOT_INSTALL_TARGET(RooFitXRooFit) ROOT_ADD_TEST_SUBDIRECTORY(test) From 94e32bf76d5f2264abdd618219fc708ef2adec88 Mon Sep 17 00:00:00 2001 From: ferdymercury Date: Thu, 5 Nov 2026 15:05:16 +0100 Subject: [PATCH 04/12] modules incdirs: different branch when file_sets were used trying to fix 2026-11-05T12:36:40.6393830Z Warning in : after creating module "RooFitXRooFit" the following headers are not part of that module: 2026-11-05T12:36:40.7063250Z /Users/sftnight/ROOT-CI/build/include/ROOT.modulemap:2953:46: error: cannot emit module RooFitXRooFit: size must be explicitly specified for missing header file "RooFit/xRooFit/xRooFit.h" 2026-11-05T12:36:40.7063940Z module "RooFit/xRooFit/xRooFit.h" { header "RooFit/xRooFit/xRooFit.h" export * } 2026-11-05T12:36:40.7064260Z ^ 2026-11-05T12:36:40.7064810Z /Users/sftnight/ROOT-CI/build/include/ROOT.modulemap:2954:47: error: cannot emit module RooFitXRooFit: size must be explicitly specified for missing header file "RooFit/xRooFit/xRooNode.h" 2026-11-05T12:36:40.7065490Z module "RooFit/xRooFit/xRooNode.h" { header "RooFit/xRooFit/xRooNode.h" export * } --- cmake/modules/RootMacros.cmake | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/cmake/modules/RootMacros.cmake b/cmake/modules/RootMacros.cmake index 48fb8174d2d37..ecf5007d5a2e5 100644 --- a/cmake/modules/RootMacros.cmake +++ b/cmake/modules/RootMacros.cmake @@ -346,7 +346,7 @@ function(ROOT_GENERATE_TARGET_DICTIONARY target options) endforeach() get_target_property(LinkedLibraries ${target} LINK_LIBRARIES) - ROOT_GENERATE_DICTIONARY(G__${target} ${RelativeHeaderList} LINKDEF ${LinkdefList} MODULE ${target} DEPENDENCIES ${LinkedLibraries} OPTIONS ${options}) + ROOT_GENERATE_DICTIONARY(G__${target} ${RelativeHeaderList} LINKDEF ${LinkdefList} MODULE ${target} DEPENDENCIES ${LinkedLibraries} OPTIONS ${options} USE_FILE_SETS) # TODO: Probably one could directly call rootcling without all the shenanigan inside ROOT_GENERATE_DICTIONARY with include dirs, now that file_sets are used endfunction(ROOT_GENERATE_TARGET_DICTIONARY) @@ -365,7 +365,7 @@ endfunction(ROOT_GENERATE_TARGET_DICTIONARY) # no error is emitted. The dictionary does not depend on these headers. #--------------------------------------------------------------------------------------------------- function(ROOT_GENERATE_DICTIONARY dictionary) - CMAKE_PARSE_ARGUMENTS(ARG "STAGE1;MULTIDICT;NOINSTALL;NO_CXXMODULE" + CMAKE_PARSE_ARGUMENTS(ARG "STAGE1;MULTIDICT;NOINSTALL;NO_CXXMODULE;USE_FILE_SETS" "MODULE;LINKDEF" "NODEPHEADERS;OPTIONS;DEPENDENCIES;EXTRA_DEPENDENCIES;BUILTINS" ${ARGN}) # Check if OPTIONS start with a dash. @@ -389,8 +389,24 @@ function(ROOT_GENERATE_DICTIONARY dictionary) if((CMAKE_PROJECT_NAME STREQUAL ROOT) AND (TARGET ${ARG_MODULE})) set(headerdirs) - get_target_property(target_incdirs ${ARG_MODULE} INCLUDE_DIRECTORIES) + if(ARG_USE_FILE_SETS) + get_target_property(target_incdirs ${ARG_MODULE} INTERFACE_INCLUDE_DIRECTORIES) + if(NOT target_incdirs) + set(target_incdirs "") + endif() + get_target_property(target_fileset_dirs ${ARG_MODULE} HEADER_DIRS) + if(target_fileset_dirs) + list(APPEND target_incdirs ${target_fileset_dirs}) + endif() + else() + get_target_property(target_incdirs ${ARG_MODULE} INCLUDE_DIRECTORIES) + if(NOT target_incdirs) + set(target_incdirs "") + endif() + endif() + if(target_incdirs) + list(REMOVE_DUPLICATES target_incdirs) foreach(dir ${target_incdirs}) ROOT_REPLACE_BUILD_INTERFACE(dir ${dir}) # check that dir not a empty dir like $ From 1e26aec7d7390d01af38405a7c4ed383e40a2ef8 Mon Sep 17 00:00:00 2001 From: ferdymercury Date: Thu, 5 Nov 2026 16:13:24 +0100 Subject: [PATCH 05/12] [RF] use standard CMake file set code instead of ROOT_LINKER_LIBRARY --- cmake/modules/RootMacros.cmake | 9 ++- roofit/multiprocess/CMakeLists.txt | 95 ++++++++++++++---------------- roofit/roofitcore/CMakeLists.txt | 8 +++ 3 files changed, 59 insertions(+), 53 deletions(-) diff --git a/cmake/modules/RootMacros.cmake b/cmake/modules/RootMacros.cmake index ecf5007d5a2e5..637a764793d50 100644 --- a/cmake/modules/RootMacros.cmake +++ b/cmake/modules/RootMacros.cmake @@ -1394,9 +1394,9 @@ endfunction() function(ROOT_INSTALL_TARGET target) install(TARGETS ${target} EXPORT ${CMAKE_PROJECT_NAME}Exports - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - COMPONENT applications + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT libraries + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries # with this we no longer need the moveheader target etc FILE_SET HEADERS @@ -1408,6 +1408,9 @@ function(ROOT_INSTALL_TARGET target) FILE_SET linkDefs DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} # add /ROOT to make Debian happy ) + export(TARGETS ${target} NAMESPACE ROOT:: + APPEND FILE ${PROJECT_BINARY_DIR}/ROOTConfig-Targets.cmake + ) endfunction(ROOT_INSTALL_TARGET) #--------------------------------------------------------------------------------------------------- diff --git a/roofit/multiprocess/CMakeLists.txt b/roofit/multiprocess/CMakeLists.txt index 09c1920207f84..12454a947e21a 100644 --- a/roofit/multiprocess/CMakeLists.txt +++ b/roofit/multiprocess/CMakeLists.txt @@ -3,58 +3,53 @@ # @author Patrick Bos, Netherlands eScience Center ############################################################################ -ROOT_LINKER_LIBRARY(RooFitMultiProcess - src/worker.cxx - src/Channel.cxx - src/Messenger.cxx - src/ProcessManager.cxx - src/util.cxx - src/Queue.cxx - src/FIFOQueue.cxx - src/PriorityQueue.cxx - src/JobManager.cxx - src/Job.cxx - src/Config.cxx - src/ProcessTimer.cxx - src/HeatmapAnalyzer.cxx - LIBRARIES - Core +add_library(RooFitMultiProcess SHARED) +target_sources(RooFitMultiProcess +PRIVATE + src/worker.cxx + src/Channel.cxx + src/Messenger.cxx + src/ProcessManager.cxx + src/util.cxx + src/Queue.cxx + src/FIFOQueue.cxx + src/PriorityQueue.cxx + src/JobManager.cxx + src/Job.cxx + src/Config.cxx + src/ProcessTimer.cxx + src/HeatmapAnalyzer.cxx +PRIVATE + FILE_SET private_header_files TYPE HEADERS BASE_DIRS src/ FILES + src/FIFOQueue.h + src/PriorityQueue.h + FILE_SET friend_header_files TYPE HEADERS BASE_DIRS res/ FILES # they are private, but we allow calling them from .cxx files within other RF targets + res/RooFit/MultiProcess/Channel.h + res/RooFit/MultiProcess/JobManager.h + res/RooFit/MultiProcess/Job.h + res/RooFit/MultiProcess/Message.h + res/RooFit/MultiProcess/Messenger.h + res/RooFit/MultiProcess/Messenger_decl.h + res/RooFit/MultiProcess/Poller.h + res/RooFit/MultiProcess/ProcessManager.h + res/RooFit/MultiProcess/ProcessTimer.h + res/RooFit/MultiProcess/Queue.h + res/RooFit/MultiProcess/util.h + res/RooFit/MultiProcess/worker.h +PUBLIC + FILE_SET HEADERS TYPE HEADERS BASE_DIRS inc/ FILES + inc/RooFit/MultiProcess/Config.h + inc/RooFit/MultiProcess/HeatmapAnalyzer.h + inc/RooFit/MultiProcess/types.h ) - -target_link_libraries(RooFitMultiProcess PUBLIC Hist) -set(RooFitMultiProcess_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/res") -target_include_directories(RooFitMultiProcess - PRIVATE ${RooFitMultiProcess_INCLUDE_DIR} - INTERFACE $) - -target_link_libraries(RooFitMultiProcess PRIVATE nlohmann_json::nlohmann_json) - -target_sources( - RooFitMultiProcess - PRIVATE - FILE_SET private_header_files - TYPE HEADERS - BASE_DIRS inc/ res/ src/ - FILES - inc/RooFit/MultiProcess/Config.h - inc/RooFit/MultiProcess/HeatmapAnalyzer.h - inc/RooFit/MultiProcess/types.h - res/RooFit/MultiProcess/Channel.h - res/RooFit/MultiProcess/JobManager.h - res/RooFit/MultiProcess/Job.h - res/RooFit/MultiProcess/Message.h - res/RooFit/MultiProcess/Messenger.h - res/RooFit/MultiProcess/Messenger_decl.h - res/RooFit/MultiProcess/Poller.h - res/RooFit/MultiProcess/ProcessManager.h - res/RooFit/MultiProcess/ProcessTimer.h - res/RooFit/MultiProcess/Queue.h - res/RooFit/MultiProcess/util.h - res/RooFit/MultiProcess/worker.h - src/FIFOQueue.h - src/PriorityQueue.h +target_link_libraries(RooFitMultiProcess +PRIVATE + Core + nlohmann_json::nlohmann_json +PUBLIC + Hist ) ROOT_ADD_TEST_SUBDIRECTORY(test) -ROOT_INSTALL_HEADERS() +ROOT_INSTALL_TARGET(RooFitMultiProcess) diff --git a/roofit/roofitcore/CMakeLists.txt b/roofit/roofitcore/CMakeLists.txt index 72c3c030be679..02957c93d6963 100644 --- a/roofit/roofitcore/CMakeLists.txt +++ b/roofit/roofitcore/CMakeLists.txt @@ -573,4 +573,12 @@ target_sources( res/RooUnitTest.h ) +if (NOT WIN32) + # we include privately headers that are not public, from a "friend" target + get_target_property(RooFitMultiProcess_Friend_Dirs RooFitMultiProcess HEADER_DIRS_friend_header_files) + if(RooFitMultiProcess_Friend_Dirs) + target_include_directories(RooFitCore PRIVATE ${RooFitMultiProcess_Friend_Dirs}) + endif() +endif() + ROOT_ADD_TEST_SUBDIRECTORY(test) From 235db7583548f35399f4f0669ae6e387da51f690 Mon Sep 17 00:00:00 2001 From: ferdymercury Date: Thu, 5 Nov 2026 16:38:16 +0100 Subject: [PATCH 06/12] [RF] use also protected header dir in test --- roofit/multiprocess/test/CMakeLists.txt | 19 ++++++++++++------- roofit/roofitcore/CMakeLists.txt | 2 +- roofit/roofitcore/test/CMakeLists.txt | 5 +++++ 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/roofit/multiprocess/test/CMakeLists.txt b/roofit/multiprocess/test/CMakeLists.txt index 1c080fc00d94f..44035a957723f 100644 --- a/roofit/multiprocess/test/CMakeLists.txt +++ b/roofit/multiprocess/test/CMakeLists.txt @@ -2,19 +2,24 @@ add_library(RooFit_multiprocess_testing_utils INTERFACE) target_link_libraries(RooFit_multiprocess_testing_utils INTERFACE RooFitCore) -target_include_directories(RooFit_multiprocess_testing_utils INTERFACE ${RooFitMultiProcess_INCLUDE_DIR}) +# workaround to include privately headers that are not public, from a "friend" target +add_library(RooFit_multiprocess_friend_utils INTERFACE) +get_target_property(RooFitMultiProcess_Friend_Dirs RooFitMultiProcess HEADER_DIRS_friend_header_files) +if(RooFitMultiProcess_Friend_Dirs) + target_include_directories(RooFit_multiprocess_friend_utils INTERFACE ${RooFitMultiProcess_Friend_Dirs}) +endif() ROOT_ADD_GTEST(test_RooFit_MultiProcess_Job test_Job.cxx LIBRARIES RooFitMultiProcess Core) # link to the INTERFACE library separately, ROOT_EXECUTABLE cannot handle INTERFACE library properties: -target_link_libraries(test_RooFit_MultiProcess_Job PUBLIC RooFit_multiprocess_testing_utils) +target_link_libraries(test_RooFit_MultiProcess_Job PUBLIC RooFit_multiprocess_testing_utils RooFit_multiprocess_friend_utils) -ROOT_ADD_GTEST(test_RooFit_MultiProcess_Channel test_Channel.cxx LIBRARIES RooFitMultiProcess) -ROOT_ADD_GTEST(test_RooFit_MultiProcess_ProcessManager test_ProcessManager.cxx LIBRARIES RooFitMultiProcess) -ROOT_ADD_GTEST(test_RooFit_MultiProcess_Messenger test_Messenger.cxx LIBRARIES RooFitMultiProcess) +ROOT_ADD_GTEST(test_RooFit_MultiProcess_Channel test_Channel.cxx LIBRARIES RooFitMultiProcess RooFit_multiprocess_friend_utils) +ROOT_ADD_GTEST(test_RooFit_MultiProcess_ProcessManager test_ProcessManager.cxx LIBRARIES RooFitMultiProcess RooFit_multiprocess_friend_utils) +ROOT_ADD_GTEST(test_RooFit_MultiProcess_Messenger test_Messenger.cxx LIBRARIES RooFitMultiProcess RooFit_multiprocess_friend_utils) -ROOT_ADD_GTEST(test_RooFit_MultiProcess_Queue test_Queue.cxx LIBRARIES RooFitMultiProcess) +ROOT_ADD_GTEST(test_RooFit_MultiProcess_Queue test_Queue.cxx LIBRARIES RooFitMultiProcess RooFit_multiprocess_friend_utils) #nlohmann is only a private dependency of RF_MP, but this test includes a header in res/ -ROOT_ADD_GTEST(test_RooFit_MultiProcess_ProcessTimer test_ProcessTimer.cxx LIBRARIES RooFitMultiProcess nlohmann_json::nlohmann_json) +ROOT_ADD_GTEST(test_RooFit_MultiProcess_ProcessTimer test_ProcessTimer.cxx LIBRARIES RooFitMultiProcess RooFit_multiprocess_friend_utils nlohmann_json::nlohmann_json) ROOT_ADD_GTEST(test_RooFit_MultiProcess_HeatmapAnalyzer test_HeatmapAnalyzer.cxx LIBRARIES RooFitMultiProcess COPY_TO_BUILDDIR ${CMAKE_CURRENT_SOURCE_DIR}/test_logs/p_0.json COPY_TO_BUILDDIR ${CMAKE_CURRENT_SOURCE_DIR}/test_logs/p_1.json diff --git a/roofit/roofitcore/CMakeLists.txt b/roofit/roofitcore/CMakeLists.txt index 02957c93d6963..4ad5dbc65cec8 100644 --- a/roofit/roofitcore/CMakeLists.txt +++ b/roofit/roofitcore/CMakeLists.txt @@ -574,7 +574,7 @@ target_sources( ) if (NOT WIN32) - # we include privately headers that are not public, from a "friend" target + # workaround to include privately headers that are not public, from a "friend" target get_target_property(RooFitMultiProcess_Friend_Dirs RooFitMultiProcess HEADER_DIRS_friend_header_files) if(RooFitMultiProcess_Friend_Dirs) target_include_directories(RooFitCore PRIVATE ${RooFitMultiProcess_Friend_Dirs}) diff --git a/roofit/roofitcore/test/CMakeLists.txt b/roofit/roofitcore/test/CMakeLists.txt index 0a1268a4d05aa..22de9af8c2bef 100644 --- a/roofit/roofitcore/test/CMakeLists.txt +++ b/roofit/roofitcore/test/CMakeLists.txt @@ -96,6 +96,11 @@ ROOT_ADD_GTEST(testRooTruthModel testRooTruthModel.cxx LIBRARIES RooFitCore RooF COPY_TO_BUILDDIR ${CMAKE_CURRENT_SOURCE_DIR}/rooAbsAnaConvPdf_classV3.root) if(NOT WIN32) + # workaround to include privately headers that are not public, from a "friend" target + get_target_property(RooFitMultiProcess_Friend_Dirs RooFitMultiProcess HEADER_DIRS_friend_header_files) + if(RooFitMultiProcess_Friend_Dirs) + list(APPEND RooFitCore_MultiProcess_TestStatistics_INCLUDE_DIR ${RooFitMultiProcess_Friend_Dirs}) + endif() ROOT_ADD_GTEST(testTestStatisticsPlot TestStatistics/testPlot.cxx LIBRARIES RooFitMultiProcess RooFitCore RooFit) ROOT_ADD_GTEST(testLikelihoodGradientJob TestStatistics/testLikelihoodGradientJob.cxx LIBRARIES RooFitMultiProcess RooFitCore m ROOT::TestSupport) target_include_directories(testLikelihoodGradientJob PRIVATE ${RooFitCore_MultiProcess_TestStatistics_INCLUDE_DIR}) From 4a2366914f8f91c0c59a251e0255fa273bf7a8db Mon Sep 17 00:00:00 2001 From: ferdymercury Date: Thu, 5 Nov 2026 17:51:21 +0100 Subject: [PATCH 07/12] [tree] use standard CMake rather than ROOT_OBJECT_LIBRARY --- main/CMakeLists.txt | 2 +- tree/readspeed/CMakeLists.txt | 20 +++++++++++++------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index e7c447f54cd95..3a158a6e8e37e 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -43,7 +43,7 @@ endif() ROOT_EXECUTABLE(rootnb.exe nbmain.cxx LIBRARIES Core CMAKENOEXPORT) #---ReadSpeed------------------------------------------------------------------------------------- -ROOT_EXECUTABLE(rootreadspeed src/readspeed.cxx LIBRARIES RIO Tree TreePlayer ReadSpeed CMAKENOEXPORT) +ROOT_EXECUTABLE(rootreadspeed src/readspeed.cxx LIBRARIES ReadSpeed CMAKENOEXPORT) #---CreateHaddCommandLineOptions------------------------------------------------------------------ generateHeader(hadd diff --git a/tree/readspeed/CMakeLists.txt b/tree/readspeed/CMakeLists.txt index 123957246b447..4001cdbd41993 100644 --- a/tree/readspeed/CMakeLists.txt +++ b/tree/readspeed/CMakeLists.txt @@ -9,16 +9,22 @@ # @author Bertrand Bellenot CERN ############################################################################ -ROOT_OBJECT_LIBRARY(ReadSpeed +add_library(ReadSpeed OBJECT) +target_sources(ReadSpeed +PRIVATE src/ReadSpeed.cxx src/ReadSpeedCLI.cxx +PUBLIC + FILE_SET HEADERS TYPE HEADERS BASE_DIRS inc/ FILES + inc/ReadSpeedCLI.hxx + inc/ReadSpeed.hxx ) - -target_include_directories(ReadSpeed PRIVATE - ${CMAKE_SOURCE_DIR}/io/io/inc - ${CMAKE_SOURCE_DIR}/tree/tree/inc - ${CMAKE_SOURCE_DIR}/tree/treeplayer/inc - ${CMAKE_SOURCE_DIR}/core/imt/inc +target_sources(ReadSpeed INTERFACE $) +target_link_libraries(ReadSpeed PUBLIC + RIO + Tree + TreePlayer + Imt ) ROOT_ADD_TEST_SUBDIRECTORY(test) From 807ecec031644676e46a262f689038ac96917e18 Mon Sep 17 00:00:00 2001 From: ferdymercury Date: Thu, 5 Nov 2026 18:55:24 +0100 Subject: [PATCH 08/12] [RF] roofitcore use standard CMake --- roofit/CMakeLists.txt | 2 +- roofit/codegen/CMakeLists.txt | 6 + roofit/histfactory/CMakeLists.txt | 6 + roofit/hs3/CMakeLists.txt | 6 + roofit/roofit/CMakeLists.txt | 6 + .../roofit/test/vectorisedPDFs/CMakeLists.txt | 4 +- roofit/roofitcore/CMakeLists.txt | 947 +++++++++--------- roofit/roofitcore/test/CMakeLists.txt | 5 + 8 files changed, 498 insertions(+), 484 deletions(-) diff --git a/roofit/CMakeLists.txt b/roofit/CMakeLists.txt index 7357c4e531f93..0b6791f99e9ee 100644 --- a/roofit/CMakeLists.txt +++ b/roofit/CMakeLists.txt @@ -7,7 +7,6 @@ set(roofit_legacy_eval_backend ON CACHE BOOL "" FORCE) add_subdirectory(batchcompute) -add_subdirectory(codegen) if(NOT WIN32) add_subdirectory(multiprocess) endif() @@ -18,6 +17,7 @@ if(mathmore) endif() add_subdirectory(roostats) add_subdirectory(histfactory) +add_subdirectory(codegen) add_subdirectory(hs3) if(roofit_legacy_eval_backend AND NOT MSVC) add_subdirectory(xroofit) diff --git a/roofit/codegen/CMakeLists.txt b/roofit/codegen/CMakeLists.txt index e41588ede82cd..799c4f26c2ac3 100644 --- a/roofit/codegen/CMakeLists.txt +++ b/roofit/codegen/CMakeLists.txt @@ -33,4 +33,10 @@ target_sources( inc/RooFit/CodegenImpl.h ) +# workaround to include privately headers that are not public, from a "friend" target +get_target_property(RooFitCore_Friend_Dirs RooFitCore HEADER_DIRS_friend_header_files) +if(RooFitCore_Friend_Dirs) + target_include_directories(RooFitCodegen PRIVATE ${RooFitCore_Friend_Dirs}) +endif() + ROOT_ADD_TEST_SUBDIRECTORY(test) diff --git a/roofit/histfactory/CMakeLists.txt b/roofit/histfactory/CMakeLists.txt index 12794897e76ed..8b20d1d6625ff 100644 --- a/roofit/histfactory/CMakeLists.txt +++ b/roofit/histfactory/CMakeLists.txt @@ -111,4 +111,10 @@ target_sources( inc/HFMsgService.h # not part of list above ) +# workaround to include privately headers that are not public, from a "friend" target +get_target_property(RooFitCore_Friend_Dirs RooFitCore HEADER_DIRS_friend_header_files) +if(RooFitCore_Friend_Dirs) + target_include_directories(HistFactory PRIVATE ${RooFitCore_Friend_Dirs}) +endif() + ROOT_ADD_TEST_SUBDIRECTORY(test) diff --git a/roofit/hs3/CMakeLists.txt b/roofit/hs3/CMakeLists.txt index ffeea5e753c31..4ebe38b1640a9 100644 --- a/roofit/hs3/CMakeLists.txt +++ b/roofit/hs3/CMakeLists.txt @@ -53,4 +53,10 @@ target_sources( src/static_execute.h ) +# workaround to include privately headers that are not public, from a "friend" target +get_target_property(RooFitCore_Friend_Dirs RooFitCore HEADER_DIRS_friend_header_files) +if(RooFitCore_Friend_Dirs) + target_include_directories(RooFitHS3 PRIVATE ${RooFitCore_Friend_Dirs}) +endif() + ROOT_ADD_TEST_SUBDIRECTORY(test) diff --git a/roofit/roofit/CMakeLists.txt b/roofit/roofit/CMakeLists.txt index 7c54aee741b4b..fdd26ab5c7132 100644 --- a/roofit/roofit/CMakeLists.txt +++ b/roofit/roofit/CMakeLists.txt @@ -187,4 +187,10 @@ target_sources( src/RooFit/Detail/Algorithms.h ) +# workaround to include privately headers that are not public, from a "friend" target +get_target_property(RooFitCore_Friend_Dirs RooFitCore HEADER_DIRS_friend_header_files) +if(RooFitCore_Friend_Dirs) + target_include_directories(RooFit PRIVATE ${RooFitCore_Friend_Dirs}) +endif() + ROOT_ADD_TEST_SUBDIRECTORY(test) diff --git a/roofit/roofit/test/vectorisedPDFs/CMakeLists.txt b/roofit/roofit/test/vectorisedPDFs/CMakeLists.txt index dd838eb46f763..2def5038f396d 100644 --- a/roofit/roofit/test/vectorisedPDFs/CMakeLists.txt +++ b/roofit/roofit/test/vectorisedPDFs/CMakeLists.txt @@ -10,7 +10,7 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL Intel) endif() add_library(VectorisedPDFTests STATIC VectorisedPDFTests.cxx) -target_link_libraries(VectorisedPDFTests PUBLIC ROOT::Gpad ROOT::RooFitCore ROOT::RooFit GTest::gtest) +target_link_libraries(VectorisedPDFTests PUBLIC ROOT::Gpad RooFitCore ROOT::RooFit GTest::gtest) if(mathmore) set(extra_sources testLegendre.cxx) @@ -48,5 +48,5 @@ ROOT_ADD_GTEST(testVectorizedPDFs ) ROOT_ADD_GTEST(testGaussBinned testGaussBinned.cxx - LIBRARIES ROOT::Gpad ROOT::RooFitCore ROOT::RooFit) + LIBRARIES ROOT::Gpad RooFitCore ROOT::RooFit) diff --git a/roofit/roofitcore/CMakeLists.txt b/roofit/roofitcore/CMakeLists.txt index 4ad5dbc65cec8..1b099aaccdf58 100644 --- a/roofit/roofitcore/CMakeLists.txt +++ b/roofit/roofitcore/CMakeLists.txt @@ -51,445 +51,473 @@ if (runtime_cxxmodules AND WIN32) set (EXTRA_DICT_OPTS NO_CXXMODULE) endif() -set(ROOFITCORE_HEADERS - Roo1DTable.h - RooAICRegistry.h - RooAbsAnaConvPdf.h - RooAbsArg.h - RooAbsBinning.h - RooAbsCache.h - RooAbsCacheElement.h - RooAbsCachedPdf.h - RooAbsCachedReal.h - RooAbsCategory.h - RooAbsCategoryLValue.h - RooAbsCollection.h - RooAbsData.h - RooAbsDataHelper.h - RooAbsDataStore.h - RooAbsFunc.h - RooAbsGenContext.h - RooAbsHiddenReal.h - RooAbsIntegrator.h - RooAbsLValue.h - RooAbsMCStudyModule.h - RooAbsMoment.h - RooAbsPdf.h - RooAbsProxy.h - RooAbsReal.h - RooAbsRealLValue.h - RooAbsSelfCachedPdf.h - RooAbsSelfCachedReal.h - RooAbsStudy.h - RooAddGenContext.h - RooAddModel.h - RooAddPdf.h - RooAddition.h - RooArgList.h - RooArgProxy.h - RooArgSet.h - RooBinSamplingPdf.h - RooBinWidthFunction.h - RooBinnedGenContext.h - RooBinning.h - RooBinningCategory.h - RooBrentRootFinder.h - RooCacheManager.h - RooCachedPdf.h - RooCachedReal.h - RooCategory.h - RooCategoryProxy.h - RooChangeTracker.h - RooClassFactory.h - RooCmdArg.h - RooCmdConfig.h - RooCollectionProxy.h - RooCompositeDataStore.h - RooConstVar.h - RooConstraintSum.h - RooConvCoefVar.h - RooConvGenContext.h - RooCurve.h - RooCustomizer.h - RooDLLSignificanceMCSModule.h - RooDataHist.h - RooDataHistSliceIter.h - RooDataProjBinding.h - RooDataSet.h - RooDerivative.h - RooDirItem.h - RooDouble.h - RooEffGenContext.h - RooEffProd.h - RooEfficiency.h - RooEllipse.h - RooErrorHandler.h - RooErrorVar.h - RooEvaluatorWrapper.h - RooExpensiveObjectCache.h - RooExtendPdf.h - RooExtendedBinding.h - RooExtendedTerm.h - RooFFTConvPdf.h - RooFactoryWSTool.h - RooFirstMoment.h - RooFit.h - RooFit/CodegenContext.h - RooFit/Config.h - RooFit/Detail/MathFuncs.h - RooFit/Detail/NormalizationHelpers.h - RooFit/Detail/RooNLLVarNew.h - RooFit/Detail/RooNormalizedPdf.h - RooFit/EvalContext.h - RooFit/Evaluator.h - RooFit/Floats.h - RooFit/ModelConfig.h - RooFit/TestStatistics/LikelihoodGradientWrapper.h - RooFit/TestStatistics/LikelihoodWrapper.h - RooFit/TestStatistics/RooAbsL.h - RooFit/TestStatistics/RooBinnedL.h - RooFit/TestStatistics/RooRealL.h - RooFit/TestStatistics/RooSubsidiaryL.h - RooFit/TestStatistics/RooSumL.h - RooFit/TestStatistics/RooUnbinnedL.h - RooFit/TestStatistics/SharedOffset.h - RooFit/TestStatistics/buildLikelihood.h - RooFitLegacy/RooCatTypeLegacy.h - RooFitLegacy/RooCategorySharedProperties.h - RooFitLegacy/RooTreeData.h - RooFitResult.h - RooFormulaVar.h - RooFracRemainder.h - RooFunctor.h - RooGenContext.h - RooGenFitStudy.h - RooGenericPdf.h - RooGlobalFunc.h - RooHelpers.h - RooHist.h - RooHistError.h - RooHistFunc.h - RooHistPdf.h - RooInvTransform.h - RooLinTransBinning.h - RooLinearCombination.h - RooLinearVar.h - RooLinkedList.h - RooLinkedListElem.h - RooLinkedListIter.h - RooListProxy.h - RooMCStudy.h - RooMappedCategory.h - RooMath.h - RooMinimizer.h - RooMoment.h - RooMsgService.h - RooMultiCategory.h - RooMultiPdf.h - RooMultiReal.h - RooMultiVarGaussian.h - RooNameReg.h - RooNormSetCache.h - RooNumCdf.h - RooNumConvPdf.h - RooNumConvolution.h - RooNumGenConfig.h - RooNumIntConfig.h - RooNumIntFactory.h - RooNumRunningInt.h - RooNumber.h - RooObjCacheManager.h - RooParamBinning.h - RooPlot.h - RooPlotable.h - RooPolyFunc.h - RooPolyVar.h - RooPrintable.h - RooProdGenContext.h - RooProdPdf.h - RooProduct.h - RooProfileLL.h - RooProjectedPdf.h - RooPullVar.h - RooQuasiRandomGenerator.h - RooRandom.h - RooRandomizeParamMCSModule.h - RooRangeBinning.h - RooRangeBoolean.h - RooRatio.h - RooRealBinding.h - RooRealConstant.h - RooRealIntegral.h - RooRealProxy.h - RooRealSumFunc.h - RooRealSumPdf.h - RooRealVar.h - RooRealVarSharedProperties.h - RooRecursiveFraction.h - RooRefCountList.h - RooResolutionModel.h - RooSTLRefCountList.h - RooSecondMoment.h - RooSetProxy.h - RooSharedProperties.h - RooSimGenContext.h - RooSimSplitGenContext.h - RooSimWSTool.h - RooSimultaneous.h - RooStreamParser.h - RooStringVar.h - RooStringView.h - RooStudyManager.h - RooStudyPackage.h - RooSuperCategory.h - RooTObjWrap.h - RooTable.h - RooTemplateProxy.h - RooThresholdCategory.h - RooTreeDataStore.h - RooTruthModel.h - RooUniformBinning.h - RooVectorDataStore.h - RooWorkspace.h - RooWorkspaceHandle.h - RooWrapperPdf.h -) - -ROOT_STANDARD_LIBRARY_PACKAGE(RooFitCore - HEADERS - ${ROOFITCORE_HEADERS} - SOURCES - src/BatchModeDataHelpers.cxx - src/ConstraintHelpers.cxx - src/FitHelpers.cxx - src/Initialisation.cxx - src/ModelConfig.cxx - src/NormalizationHelpers.cxx - src/Roo1DTable.cxx - src/RooAICRegistry.cxx - src/RooAbsAnaConvPdf.cxx - src/RooAbsArg.cxx - src/RooAbsBinning.cxx - src/RooAbsCache.cxx - src/RooAbsCacheElement.cxx - src/RooAbsCachedPdf.cxx - src/RooAbsCachedReal.cxx - src/RooAbsCategory.cxx - src/RooAbsCategoryLValue.cxx - src/RooAbsCollection.cxx - src/RooAbsData.cxx - src/RooAbsDataHelper.cxx - src/RooAbsDataStore.cxx - src/RooAbsFunc.cxx - src/RooAbsGenContext.cxx - src/RooAbsHiddenReal.cxx - src/RooAbsIntegrator.cxx - src/RooAbsLValue.cxx - src/RooAbsMCStudyModule.cxx - src/RooAbsMinimizerFcn.cxx - src/RooAbsMoment.cxx - src/RooAbsNumGenerator.cxx - src/RooAbsPdf.cxx - src/RooAbsProxy.cxx - src/RooAbsReal.cxx - src/RooAbsRealLValue.cxx - src/RooAbsStudy.cxx - src/RooAcceptReject.cxx - src/RooAdaptiveIntegratorND.cxx - src/RooAddGenContext.cxx - src/RooAddHelpers.cxx - src/RooAddModel.cxx - src/RooAddPdf.cxx - src/RooAddition.cxx - src/RooArgList.cxx - src/RooArgProxy.cxx - src/RooArgSet.cxx - src/RooBinIntegrator.cxx - src/RooBinSamplingPdf.cxx - src/RooBinWidthFunction.cxx - src/RooBinnedGenContext.cxx - src/RooBinning.cxx - src/RooBinningCategory.cxx - src/RooBrentRootFinder.cxx - src/RooCachedPdf.cxx - src/RooCachedReal.cxx - src/RooCategory.cxx - src/RooChangeTracker.cxx - src/RooClassFactory.cxx - src/RooCmdArg.cxx - src/RooCmdConfig.cxx - src/RooCompositeDataStore.cxx - src/RooConstVar.cxx - src/RooConstraintSum.cxx - src/RooConvCoefVar.cxx - src/RooConvGenContext.cxx - src/RooConvIntegrandBinding.cxx - src/RooCurve.cxx - src/RooCustomizer.cxx - src/RooDLLSignificanceMCSModule.cxx - src/RooDataHist.cxx - src/RooDataHistSliceIter.cxx - src/RooDataProjBinding.cxx - src/RooDataSet.cxx - src/RooDerivative.cxx - src/RooDirItem.cxx - src/RooDouble.cxx - src/RooEffGenContext.cxx - src/RooEffProd.cxx - src/RooEfficiency.cxx - src/RooEllipse.cxx - src/RooErrorVar.cxx - src/RooEvaluatorWrapper.cxx - src/RooExpensiveObjectCache.cxx - src/RooExtendPdf.cxx - src/RooExtendedBinding.cxx - src/RooExtendedTerm.cxx - src/RooFFTConvPdf.cxx - src/RooFactoryWSTool.cxx - src/RooFirstMoment.cxx - src/RooFit/CodegenContext.cxx - src/RooFit/EvalContext.cxx - src/RooFit/Evaluator.cxx - src/RooFitImplHelpers.cxx - src/RooFitLegacy/RooCatTypeLegacy.cxx - src/RooFitResult.cxx - src/RooFoamGenerator.cxx - src/RooFormulaUtils.cxx - src/RooFormulaVar.cxx - src/RooFracRemainder.cxx - src/RooFunctor.cxx - src/RooGenContext.cxx - src/RooGenFitStudy.cxx - src/RooGenProdProj.cxx - src/RooGenericPdf.cxx - src/RooGlobalFunc.cxx - src/RooGrid.cxx - src/RooHelpers.cxx - src/RooHist.cxx - src/RooHistError.cxx - src/RooHistFunc.cxx - src/RooHistPdf.cxx - src/RooImproperIntegrator1D.cxx - src/RooInvTransform.cxx - src/RooLinTransBinning.cxx - src/RooLinearCombination.cxx - src/RooLinearVar.cxx - src/RooLinkedList.cxx - src/RooLinkedListElem.cxx - src/RooMCIntegrator.cxx - src/RooMCStudy.cxx - src/RooMappedCategory.cxx - src/RooMath.cxx - src/RooMinimizer.cxx - src/RooMinimizerFcn.cxx - src/RooMoment.cxx - src/RooMsgService.cxx - src/RooMultiCategory.cxx - src/RooMultiVarGaussian.cxx - src/RooMultiPdf.cxx - src/RooMultiReal.cxx - src/RooNLLVarNew.cxx - src/RooNameReg.cxx - src/RooNormSetCache.cxx - src/RooNormalizedPdf.cxx - src/RooNumCdf.cxx - src/RooNumConvPdf.cxx - src/RooNumConvolution.cxx - src/RooNumGenConfig.cxx - src/RooNumGenFactory.cxx - src/RooNumIntConfig.cxx - src/RooNumIntFactory.cxx - src/RooNumRunningInt.cxx - src/RooObjCacheManager.cxx - src/RooParamBinning.cxx - src/RooPlot.cxx - src/RooPlotable.cxx - src/RooPolyFunc.cxx - src/RooPolyVar.cxx - src/RooPrintable.cxx - src/RooProdGenContext.cxx - src/RooProdPdf.cxx - src/RooProduct.cxx - src/RooProfileLL.cxx - src/RooProjectedPdf.cxx - src/RooPullVar.cxx - src/RooQuasiRandomGenerator.cxx - src/RooRandom.cxx - src/RooRandomizeParamMCSModule.cxx - src/RooRangeBinning.cxx - src/RooRangeBoolean.cxx - src/RooRatio.cxx - src/RooRealBinding.cxx - src/RooRealConstant.cxx - src/RooRealIntegral.cxx - src/RooRealSumFunc.cxx - src/RooRealSumPdf.cxx - src/RooRealVar.cxx - src/RooRecursiveFraction.cxx - src/RooResolutionModel.cxx - src/RooRombergIntegrator.cxx - src/RooSTLRefCountList.cxx - src/RooSecondMoment.cxx - src/RooSentinel.cxx - src/RooSharedProperties.cxx - src/RooSimGenContext.cxx - src/RooSimSplitGenContext.cxx - src/RooSimWSTool.cxx - src/RooSimultaneous.cxx - src/RooStreamParser.cxx - src/RooStringVar.cxx - src/RooStudyManager.cxx - src/RooStudyPackage.cxx - src/RooSuperCategory.cxx - src/RooTFormulaEvaluator.cxx - src/RooTObjWrap.cxx - src/RooThresholdCategory.cxx - src/RooTreeDataStore.cxx - src/RooTruthModel.cxx - src/RooUniformBinning.cxx - src/RooUnitTest.cxx - src/RooVectorDataStore.cxx - src/RooWorkspace.cxx - src/RooWrapperPdf.cxx - src/TestStatistics/LikelihoodGradientWrapper.cxx - src/TestStatistics/LikelihoodSerial.cxx - src/TestStatistics/LikelihoodWrapper.cxx - src/TestStatistics/RooAbsL.cxx - src/TestStatistics/RooBinnedL.cxx - src/TestStatistics/RooRealL.cxx - src/TestStatistics/RooSubsidiaryL.cxx - src/TestStatistics/RooSumL.cxx - src/TestStatistics/RooUnbinnedL.cxx - src/TestStatistics/buildLikelihood.cxx - src/TestStatistics/SharedOffset.cxx - ${LegacyEvalBackendSources} - ${RooFitMPTestStatisticsSources} - DICTIONARY_OPTIONS - "-writeEmptyRootPCM" - LIBRARIES - ${EXTRA_LIBRARIES} - DEPENDENCIES - Core - Hist - Graf - Matrix - Tree - RIO - MathCore - Foam - RooBatchCompute - ${EXTRA_DEPENDENCIES} - LINKDEF +add_library(RooFitCore SHARED) +target_sources(RooFitCore +PRIVATE + src/BatchModeDataHelpers.cxx + src/ConstraintHelpers.cxx + src/FitHelpers.cxx + src/Initialisation.cxx + src/ModelConfig.cxx + src/NormalizationHelpers.cxx + src/Roo1DTable.cxx + src/RooAICRegistry.cxx + src/RooAbsAnaConvPdf.cxx + src/RooAbsArg.cxx + src/RooAbsBinning.cxx + src/RooAbsCache.cxx + src/RooAbsCacheElement.cxx + src/RooAbsCachedPdf.cxx + src/RooAbsCachedReal.cxx + src/RooAbsCategory.cxx + src/RooAbsCategoryLValue.cxx + src/RooAbsCollection.cxx + src/RooAbsData.cxx + src/RooAbsDataHelper.cxx + src/RooAbsDataStore.cxx + src/RooAbsFunc.cxx + src/RooAbsGenContext.cxx + src/RooAbsHiddenReal.cxx + src/RooAbsIntegrator.cxx + src/RooAbsLValue.cxx + src/RooAbsMCStudyModule.cxx + src/RooAbsMinimizerFcn.cxx + src/RooAbsMoment.cxx + src/RooAbsNumGenerator.cxx + src/RooAbsPdf.cxx + src/RooAbsProxy.cxx + src/RooAbsReal.cxx + src/RooAbsRealLValue.cxx + src/RooAbsStudy.cxx + src/RooAcceptReject.cxx + src/RooAdaptiveIntegratorND.cxx + src/RooAddGenContext.cxx + src/RooAddHelpers.cxx + src/RooAddModel.cxx + src/RooAddPdf.cxx + src/RooAddition.cxx + src/RooArgList.cxx + src/RooArgProxy.cxx + src/RooArgSet.cxx + src/RooBinIntegrator.cxx + src/RooBinSamplingPdf.cxx + src/RooBinWidthFunction.cxx + src/RooBinnedGenContext.cxx + src/RooBinning.cxx + src/RooBinningCategory.cxx + src/RooBrentRootFinder.cxx + src/RooCachedPdf.cxx + src/RooCachedReal.cxx + src/RooCategory.cxx + src/RooChangeTracker.cxx + src/RooClassFactory.cxx + src/RooCmdArg.cxx + src/RooCmdConfig.cxx + src/RooCompositeDataStore.cxx + src/RooConstVar.cxx + src/RooConstraintSum.cxx + src/RooConvCoefVar.cxx + src/RooConvGenContext.cxx + src/RooConvIntegrandBinding.cxx + src/RooCurve.cxx + src/RooCustomizer.cxx + src/RooDLLSignificanceMCSModule.cxx + src/RooDataHist.cxx + src/RooDataHistSliceIter.cxx + src/RooDataProjBinding.cxx + src/RooDataSet.cxx + src/RooDerivative.cxx + src/RooDirItem.cxx + src/RooDouble.cxx + src/RooEffGenContext.cxx + src/RooEffProd.cxx + src/RooEfficiency.cxx + src/RooEllipse.cxx + src/RooErrorVar.cxx + src/RooEvaluatorWrapper.cxx + src/RooExpensiveObjectCache.cxx + src/RooExtendPdf.cxx + src/RooExtendedBinding.cxx + src/RooExtendedTerm.cxx + src/RooFFTConvPdf.cxx + src/RooFactoryWSTool.cxx + src/RooFirstMoment.cxx + src/RooFit/CodegenContext.cxx + src/RooFit/EvalContext.cxx + src/RooFit/Evaluator.cxx + src/RooFitImplHelpers.cxx + src/RooFitLegacy/RooCatTypeLegacy.cxx + src/RooFitResult.cxx + src/RooFoamGenerator.cxx + src/RooFormulaUtils.cxx + src/RooFormulaVar.cxx + src/RooFracRemainder.cxx + src/RooFunctor.cxx + src/RooGenContext.cxx + src/RooGenFitStudy.cxx + src/RooGenProdProj.cxx + src/RooGenericPdf.cxx + src/RooGlobalFunc.cxx + src/RooGrid.cxx + src/RooHelpers.cxx + src/RooHist.cxx + src/RooHistError.cxx + src/RooHistFunc.cxx + src/RooHistPdf.cxx + src/RooImproperIntegrator1D.cxx + src/RooInvTransform.cxx + src/RooLinTransBinning.cxx + src/RooLinearCombination.cxx + src/RooLinearVar.cxx + src/RooLinkedList.cxx + src/RooLinkedListElem.cxx + src/RooMCIntegrator.cxx + src/RooMCStudy.cxx + src/RooMappedCategory.cxx + src/RooMath.cxx + src/RooMinimizer.cxx + src/RooMinimizerFcn.cxx + src/RooMoment.cxx + src/RooMsgService.cxx + src/RooMultiCategory.cxx + src/RooMultiVarGaussian.cxx + src/RooMultiPdf.cxx + src/RooMultiReal.cxx + src/RooNLLVarNew.cxx + src/RooNameReg.cxx + src/RooNormSetCache.cxx + src/RooNormalizedPdf.cxx + src/RooNumCdf.cxx + src/RooNumConvPdf.cxx + src/RooNumConvolution.cxx + src/RooNumGenConfig.cxx + src/RooNumGenFactory.cxx + src/RooNumIntConfig.cxx + src/RooNumIntFactory.cxx + src/RooNumRunningInt.cxx + src/RooObjCacheManager.cxx + src/RooParamBinning.cxx + src/RooPlot.cxx + src/RooPlotable.cxx + src/RooPolyFunc.cxx + src/RooPolyVar.cxx + src/RooPrintable.cxx + src/RooProdGenContext.cxx + src/RooProdPdf.cxx + src/RooProduct.cxx + src/RooProfileLL.cxx + src/RooProjectedPdf.cxx + src/RooPullVar.cxx + src/RooQuasiRandomGenerator.cxx + src/RooRandom.cxx + src/RooRandomizeParamMCSModule.cxx + src/RooRangeBinning.cxx + src/RooRangeBoolean.cxx + src/RooRatio.cxx + src/RooRealBinding.cxx + src/RooRealConstant.cxx + src/RooRealIntegral.cxx + src/RooRealSumFunc.cxx + src/RooRealSumPdf.cxx + src/RooRealVar.cxx + src/RooRecursiveFraction.cxx + src/RooResolutionModel.cxx + src/RooRombergIntegrator.cxx + src/RooSTLRefCountList.cxx + src/RooSecondMoment.cxx + src/RooSentinel.cxx + src/RooSharedProperties.cxx + src/RooSimGenContext.cxx + src/RooSimSplitGenContext.cxx + src/RooSimWSTool.cxx + src/RooSimultaneous.cxx + src/RooStreamParser.cxx + src/RooStringVar.cxx + src/RooStudyManager.cxx + src/RooStudyPackage.cxx + src/RooSuperCategory.cxx + src/RooTFormulaEvaluator.cxx + src/RooTObjWrap.cxx + src/RooThresholdCategory.cxx + src/RooTreeDataStore.cxx + src/RooTruthModel.cxx + src/RooUniformBinning.cxx + src/RooUnitTest.cxx + src/RooVectorDataStore.cxx + src/RooWorkspace.cxx + src/RooWrapperPdf.cxx + src/TestStatistics/LikelihoodGradientWrapper.cxx + src/TestStatistics/LikelihoodSerial.cxx + src/TestStatistics/LikelihoodWrapper.cxx + src/TestStatistics/RooAbsL.cxx + src/TestStatistics/RooBinnedL.cxx + src/TestStatistics/RooRealL.cxx + src/TestStatistics/RooSubsidiaryL.cxx + src/TestStatistics/RooSumL.cxx + src/TestStatistics/RooUnbinnedL.cxx + src/TestStatistics/buildLikelihood.cxx + src/TestStatistics/SharedOffset.cxx + ${LegacyEvalBackendSources} + ${RooFitMPTestStatisticsSources} +PRIVATE + FILE_SET private_header_files TYPE HEADERS BASE_DIRS src/ FILES + src/RooConvIntegrandBinding.h + src/RooFormulaUtils.h + src/RooFormulaEvaluator.h + src/RooTFormulaEvaluator.h + src/RooFitLegacy/RooAbsCategoryLegacyIterator.h + src/RooMCIntegrator.h + src/RooFoamGenerator.h + src/RooAbsMinimizerFcn.h + src/RooSentinel.h + src/RooAcceptReject.h + src/TreeReadBuffer.h + src/ConstraintHelpers.h + src/RooRombergIntegrator.h + src/RooBinIntegrator.h + ${RooFitMPTestStatisticsHeaders} + ${LegacyEvalBackendHeaders} + src/RooFit/BatchModeDataHelpers.h + src/RooMinimizerFcn.h + src/RooAbsNumGenerator.h + src/FitHelpers.h + src/RooGenProdProj.h + src/RooNumGenFactory.h + src/RooGrid.h + src/RooAddHelpers.h + src/RooAdaptiveIntegratorND.h + src/ValueChecking.h + src/RooImproperIntegrator1D.h + FILE_SET friend_header_files TYPE HEADERS BASE_DIRS res/ FILES + res/RooFitImplHelpers.h + res/RooUnitTest.h +PUBLIC + FILE_SET HEADERS TYPE HEADERS BASE_DIRS inc/ FILES + inc/Roo1DTable.h + inc/RooAICRegistry.h + inc/RooAbsAnaConvPdf.h + inc/RooAbsArg.h + inc/RooAbsBinning.h + inc/RooAbsCache.h + inc/RooAbsCacheElement.h + inc/RooAbsCachedPdf.h + inc/RooAbsCachedReal.h + inc/RooAbsCategory.h + inc/RooAbsCategoryLValue.h + inc/RooAbsCollection.h + inc/RooAbsData.h + inc/RooAbsDataHelper.h + inc/RooAbsDataStore.h + inc/RooAbsFunc.h + inc/RooAbsGenContext.h + inc/RooAbsHiddenReal.h + inc/RooAbsIntegrator.h + inc/RooAbsLValue.h + inc/RooAbsMCStudyModule.h + inc/RooAbsMoment.h + inc/RooAbsPdf.h + inc/RooAbsProxy.h + inc/RooAbsReal.h + inc/RooAbsRealLValue.h + inc/RooAbsSelfCachedPdf.h + inc/RooAbsSelfCachedReal.h + inc/RooAbsStudy.h + inc/RooAddGenContext.h + inc/RooAddModel.h + inc/RooAddPdf.h + inc/RooAddition.h + inc/RooArgList.h + inc/RooArgProxy.h + inc/RooArgSet.h + inc/RooBinSamplingPdf.h + inc/RooBinWidthFunction.h + inc/RooBinnedGenContext.h + inc/RooBinning.h + inc/RooBinningCategory.h + inc/RooBrentRootFinder.h + inc/RooCacheManager.h + inc/RooCachedPdf.h + inc/RooCachedReal.h + inc/RooCategory.h + inc/RooCategoryProxy.h + inc/RooChangeTracker.h + inc/RooClassFactory.h + inc/RooCmdArg.h + inc/RooCmdConfig.h + inc/RooCollectionProxy.h + inc/RooCompositeDataStore.h + inc/RooConstVar.h + inc/RooConstraintSum.h + inc/RooConvCoefVar.h + inc/RooConvGenContext.h + inc/RooCurve.h + inc/RooCustomizer.h + inc/RooDLLSignificanceMCSModule.h + inc/RooDataHist.h + inc/RooDataHistSliceIter.h + inc/RooDataProjBinding.h + inc/RooDataSet.h + inc/RooDerivative.h + inc/RooDirItem.h + inc/RooDouble.h + inc/RooEffGenContext.h + inc/RooEffProd.h + inc/RooEfficiency.h + inc/RooEllipse.h + inc/RooErrorHandler.h + inc/RooErrorVar.h + inc/RooEvaluatorWrapper.h + inc/RooExpensiveObjectCache.h + inc/RooExtendPdf.h + inc/RooExtendedBinding.h + inc/RooExtendedTerm.h + inc/RooFFTConvPdf.h + inc/RooFactoryWSTool.h + inc/RooFirstMoment.h + inc/RooFit.h + inc/RooFit/CodegenContext.h + inc/RooFit/Config.h + inc/RooFit/Detail/MathFuncs.h + inc/RooFit/Detail/NormalizationHelpers.h + inc/RooFit/Detail/RooNLLVarNew.h + inc/RooFit/Detail/RooNormalizedPdf.h + inc/RooFit/EvalContext.h + inc/RooFit/Evaluator.h + inc/RooFit/Floats.h + inc/RooFit/ModelConfig.h + inc/RooFit/TestStatistics/LikelihoodGradientWrapper.h + inc/RooFit/TestStatistics/LikelihoodWrapper.h + inc/RooFit/TestStatistics/RooAbsL.h + inc/RooFit/TestStatistics/RooBinnedL.h + inc/RooFit/TestStatistics/RooRealL.h + inc/RooFit/TestStatistics/RooSubsidiaryL.h + inc/RooFit/TestStatistics/RooSumL.h + inc/RooFit/TestStatistics/RooUnbinnedL.h + inc/RooFit/TestStatistics/SharedOffset.h + inc/RooFit/TestStatistics/buildLikelihood.h + inc/RooFit/UniqueId.h # Was not being included in ROOT_STL_PACKAGE call + inc/RooFitLegacy/RooCatTypeLegacy.h + inc/RooFitLegacy/RooCategorySharedProperties.h + inc/RooFitLegacy/RooTreeData.h + inc/RooFitResult.h + inc/RooFormulaVar.h + inc/RooFracRemainder.h + inc/RooFunctor.h + inc/RooGenContext.h + inc/RooGenFitStudy.h + inc/RooGenericPdf.h + inc/RooGlobalFunc.h + inc/RooHelpers.h + inc/RooHist.h + inc/RooHistError.h + inc/RooHistFunc.h + inc/RooHistPdf.h + inc/RooInvTransform.h + inc/RooLinTransBinning.h + inc/RooLinearCombination.h + inc/RooLinearVar.h + inc/RooLinkedList.h + inc/RooLinkedListElem.h + inc/RooLinkedListIter.h + inc/RooListProxy.h + inc/RooMCStudy.h + inc/RooMappedCategory.h + inc/RooMath.h + inc/RooMinimizer.h + inc/RooMoment.h + inc/RooMsgService.h + inc/RooMultiCategory.h + inc/RooMultiPdf.h + inc/RooMultiReal.h + inc/RooMultiVarGaussian.h + inc/RooNameReg.h + inc/RooNormSetCache.h + inc/RooNumCdf.h + inc/RooNumConvPdf.h + inc/RooNumConvolution.h + inc/RooNumGenConfig.h + inc/RooNumIntConfig.h + inc/RooNumIntFactory.h + inc/RooNumRunningInt.h + inc/RooNumber.h + inc/RooObjCacheManager.h + inc/RooParamBinning.h + inc/RooPlot.h + inc/RooPlotable.h + inc/RooPolyFunc.h + inc/RooPolyVar.h + inc/RooPrintable.h + inc/RooProdGenContext.h + inc/RooProdPdf.h + inc/RooProduct.h + inc/RooProfileLL.h + inc/RooProjectedPdf.h + inc/RooPullVar.h + inc/RooQuasiRandomGenerator.h + inc/RooRandom.h + inc/RooRandomizeParamMCSModule.h + inc/RooRangeBinning.h + inc/RooRangeBoolean.h + inc/RooRatio.h + inc/RooRealBinding.h + inc/RooRealConstant.h + inc/RooRealIntegral.h + inc/RooRealProxy.h + inc/RooRealSumFunc.h + inc/RooRealSumPdf.h + inc/RooRealVar.h + inc/RooRealVarSharedProperties.h + inc/RooRecursiveFraction.h + inc/RooRefCountList.h + inc/RooResolutionModel.h + inc/RooSTLRefCountList.h + inc/RooSecondMoment.h + inc/RooSetProxy.h + inc/RooSharedProperties.h + inc/RooSimGenContext.h + inc/RooSimSplitGenContext.h + inc/RooSimWSTool.h + inc/RooSimultaneous.h + inc/RooStreamParser.h + inc/RooStringVar.h + inc/RooStringView.h + inc/RooStudyManager.h + inc/RooStudyPackage.h + inc/RooSuperCategory.h + inc/RooTObjWrap.h + inc/RooTable.h + inc/RooTemplateProxy.h + inc/RooThresholdCategory.h + inc/RooTreeDataStore.h + inc/RooTruthModel.h + inc/RooUniformBinning.h + inc/RooVectorDataStore.h + inc/RooWorkspace.h + inc/RooWorkspaceHandle.h + inc/RooWrapperPdf.h + FILE_SET linkDefs TYPE HEADERS BASE_DIRS inc/ FILES inc/LinkDef.h - ${EXTRA_DICT_OPTS} ) - -# Minuit2 is needed in the implementation of RooMinimizerFcn, to advertise -# vanishing second derivatives to Minuit2Minimizer. -target_link_libraries(RooFitCore PRIVATE Minuit2) +target_link_libraries(RooFitCore +PRIVATE + # Minuit2 is needed in the implementation of RooMinimizerFcn, to advertise + # vanishing second derivatives to Minuit2Minimizer. + Minuit2 + ${EXTRA_LIBRARIES} +PUBLIC + Core + Hist + Graf + Matrix + Tree + RIO + MathCore + Foam + RooBatchCompute + ${EXTRA_DEPENDENCIES} +) # The following definitions are PUBLIC so they can also be used in ROOT-internal tests - if(roofit_legacy_eval_backend) target_compile_definitions(RooFitCore PUBLIC ROOFIT_LEGACY_EVAL_BACKEND) endif() @@ -514,8 +542,6 @@ endif() # Used to silence deprecation warnings when testing deprecated features target_compile_definitions(RooFitCore PUBLIC ROOFIT_BUILDS_ITSELF) -target_include_directories(RooFitCore PUBLIC $) - # The SMatrix package is header-only, but it's only exposed via the Smatrix # target, which is a shared library that also includes the dictionaries. For # RooFit, we are not interested in them, and want to avoid a dependency of the @@ -529,50 +555,6 @@ if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") target_compile_options(RooFitCore PUBLIC -fno-math-errno) endif() -set(RELATIVE_INC_HEADERS ${ROOFITCORE_HEADERS}) -list(TRANSFORM RELATIVE_INC_HEADERS PREPEND inc/) - -target_sources( - RooFitCore - PRIVATE - FILE_SET private_header_files - TYPE HEADERS - BASE_DIRS inc/ res/ src/ - FILES - ${RELATIVE_INC_HEADERS} - inc/LinkDef.h - inc/RooFit/UniqueId.h # Was not being included in ROOT_STL_PACKAGE call - src/RooConvIntegrandBinding.h - src/RooFormulaUtils.h - src/RooFormulaEvaluator.h - src/RooTFormulaEvaluator.h - src/RooFitLegacy/RooAbsCategoryLegacyIterator.h - src/RooMCIntegrator.h - src/RooFoamGenerator.h - src/RooAbsMinimizerFcn.h - src/RooSentinel.h - src/RooAcceptReject.h - src/TreeReadBuffer.h - src/ConstraintHelpers.h - src/RooRombergIntegrator.h - src/RooBinIntegrator.h - ${RooFitMPTestStatisticsHeaders} - ${LegacyEvalBackendHeaders} - src/RooFit/BatchModeDataHelpers.h - src/RooMinimizerFcn.h - src/RooAbsNumGenerator.h - src/FitHelpers.h - src/RooGenProdProj.h - src/RooNumGenFactory.h - src/RooGrid.h - src/RooAddHelpers.h - src/RooAdaptiveIntegratorND.h - src/ValueChecking.h - src/RooImproperIntegrator1D.h - res/RooFitImplHelpers.h - res/RooUnitTest.h -) - if (NOT WIN32) # workaround to include privately headers that are not public, from a "friend" target get_target_property(RooFitMultiProcess_Friend_Dirs RooFitMultiProcess HEADER_DIRS_friend_header_files) @@ -581,4 +563,7 @@ if (NOT WIN32) endif() endif() +ROOT_GENERATE_TARGET_DICTIONARY(RooFitCore "-writeEmptyRootPCM" ${EXTRA_DICT_OPTS}) +ROOT_INSTALL_TARGET(RooFitCore) + ROOT_ADD_TEST_SUBDIRECTORY(test) diff --git a/roofit/roofitcore/test/CMakeLists.txt b/roofit/roofitcore/test/CMakeLists.txt index 22de9af8c2bef..0aaf8344a7db4 100644 --- a/roofit/roofitcore/test/CMakeLists.txt +++ b/roofit/roofitcore/test/CMakeLists.txt @@ -117,6 +117,11 @@ ROOT_EXECUTABLE(stressRooFit stressRooFit.cxx LIBRARIES RooFit Gpad ${ROOFITMORE if(mathmore) target_compile_definitions(stressRooFit PRIVATE ROOFITMORE) endif() +# workaround to include privately headers that are not public, from a "friend" target +get_target_property(RooFitCore_Friend_Dirs RooFitCore HEADER_DIRS_friend_header_files) +if(RooFitCore_Friend_Dirs) + target_include_directories(stressRooFit PRIVATE ${RooFitCore_Friend_Dirs}) +endif() configure_file(stressRooFit_ref.root stressRooFit_ref.root COPYONLY) if(roofit_legacy_eval_backend) From 10c6dc7aa07565554bf8b00d26082476d4535deb Mon Sep 17 00:00:00 2001 From: ferdymercury Date: Fri, 6 Nov 2026 18:54:58 +0100 Subject: [PATCH 09/12] [tmva] modernize build with file_sets --- cmake/modules/RootMacros.cmake | 6 +- tmva/sofie/CMakeLists.txt | 164 +++--- tmva/sofie_parsers/CMakeLists.txt | 168 +++--- tmva/tmva/CMakeLists.txt | 922 +++++++++++++++--------------- tmva/tmvagui/CMakeLists.txt | 176 +++--- 5 files changed, 689 insertions(+), 747 deletions(-) diff --git a/cmake/modules/RootMacros.cmake b/cmake/modules/RootMacros.cmake index 637a764793d50..d8c2504744710 100644 --- a/cmake/modules/RootMacros.cmake +++ b/cmake/modules/RootMacros.cmake @@ -314,6 +314,10 @@ function(ROOT_GENERATE_TARGET_DICTIONARY target options) list(TRANSFORM SrcList PREPEND ${SrcDir}/) endif() get_target_property(HeaderList ${target} HEADER_SET) + get_target_property(NoDictList ${target} HEADER_SET_not4dict_header_files) + if(HeaderList AND NoDictList) + list(REMOVE_ITEM HeaderList ${NoDictList}) + endif() get_target_property(HeaderBaseDirs ${target} HEADER_DIRS) get_target_property(LinkdefList ${target} HEADER_SET_linkDefs) # get_target_property(ModuleList ${target} CXX_MODULE_SET) needs CMake 3.28 @@ -1402,7 +1406,7 @@ function(ROOT_INSTALL_TARGET target) FILE_SET HEADERS DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} # add /ROOT to make Debian happy - FILE_SET extraHEADERS + FILE_SET not4dict_header_files DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} # add /ROOT to make Debian happy FILE_SET linkDefs diff --git a/tmva/sofie/CMakeLists.txt b/tmva/sofie/CMakeLists.txt index 0d5be051cd468..7c67dacab10b3 100644 --- a/tmva/sofie/CMakeLists.txt +++ b/tmva/sofie/CMakeLists.txt @@ -9,99 +9,85 @@ ############################################################################ #Author: Sitong An, Lorenzo Moneta 10/03/2021 -# Only the headers listed below are copied to the build tree and installed. -set(TMVASOFIE_HEADERS - TMVA/RModel.hxx - TMVA/SOFIE_common.hxx -) -# The ROperator*.hxx headers are an implementation detail of the model -# generation and stay private to this library and ROOTTMVASofieParser, which -# resolve them via the public build-interface include directory of this -# target. -set(TMVASOFIE_EXTRA_HEADERS - TMVA/ROperator.hxx - TMVA/ROperator_ArgMax.hxx - TMVA/ROperator_BasicBinary.hxx - TMVA/ROperator_BasicNary.hxx - TMVA/ROperator_BasicUnary.hxx - TMVA/ROperator_Basic_Is.hxx - TMVA/ROperator_BatchNormalization.hxx - TMVA/ROperator_Cast.hxx - TMVA/ROperator_Clip.hxx - TMVA/ROperator_Comparision.hxx - TMVA/ROperator_Concat.hxx - TMVA/ROperator_Constant.hxx - TMVA/ROperator_Conv.hxx - TMVA/ROperator_ConvTranspose.hxx - TMVA/ROperator_Einsum.hxx - TMVA/ROperator_Elu.hxx - TMVA/ROperator_Erf.hxx - TMVA/ROperator_Expand.hxx - TMVA/ROperator_EyeLike.hxx - TMVA/ROperator_GRU.hxx - TMVA/ROperator_Gather.hxx - TMVA/ROperator_GatherND.hxx - TMVA/ROperator_Gelu.hxx - TMVA/ROperator_Gemm.hxx - TMVA/ROperator_HardSigmoid.hxx - TMVA/ROperator_HardSwish.hxx - TMVA/ROperator_Identity.hxx - TMVA/ROperator_InstanceNormalization.hxx - TMVA/ROperator_LSTM.hxx - TMVA/ROperator_LayerNormalization.hxx - TMVA/ROperator_LeakyRelu.hxx - TMVA/ROperator_NonZero.hxx - TMVA/ROperator_Not.hxx - TMVA/ROperator_PRelu.hxx - TMVA/ROperator_Pad.hxx - TMVA/ROperator_Pool.hxx - TMVA/ROperator_RNN.hxx - TMVA/ROperator_Random.hxx - TMVA/ROperator_Range.hxx - TMVA/ROperator_Reduce.hxx - TMVA/ROperator_Relu.hxx - TMVA/ROperator_Reshape.hxx - TMVA/ROperator_ScatterElements.hxx - TMVA/ROperator_ScatterND.hxx - TMVA/ROperator_Selu.hxx - TMVA/ROperator_Shape.hxx - TMVA/ROperator_Sigmoid.hxx - TMVA/ROperator_Slice.hxx - TMVA/ROperator_Softmax.hxx - TMVA/ROperator_Split.hxx - TMVA/ROperator_SubGraph.hxx - TMVA/ROperator_Swish.hxx - TMVA/ROperator_Tanh.hxx - TMVA/ROperator_Tile.hxx - TMVA/ROperator_TopK.hxx - TMVA/ROperator_Transpose.hxx - TMVA/ROperator_Where.hxx -) - -ROOT_STANDARD_LIBRARY_PACKAGE(ROOTTMVASofie - - NO_GLOB_HEADERS - HEADERS - ${TMVASOFIE_HEADERS} - SOURCES - src/RModel.cxx - src/SOFIE_common.cxx - src/SOFIE_common_helpers.cxx - DEPENDENCIES - Core -) - -set(RELATIVE_INC_HEADERS ${TMVASOFIE_HEADERS} ${TMVASOFIE_EXTRA_HEADERS}) -list(TRANSFORM RELATIVE_INC_HEADERS PREPEND inc/) +add_library(ROOTTMVASofie SHARED) target_sources(ROOTTMVASofie PRIVATE - FILE_SET private_header_files - TYPE HEADERS - BASE_DIRS inc/ - FILES - ${RELATIVE_INC_HEADERS} + src/RModel.cxx + src/SOFIE_common.cxx + src/SOFIE_common_helpers.cxx +PRIVATE + # The ROperator*.hxx headers are an implementation detail of the model + # generation and stay private to this library and ROOTTMVASofieParser, which + # resolve them via private inclusion of the "friend" header fileset's include directory + FILE_SET friend_header_files TYPE HEADERS BASE_DIRS inc/ FILES + inc/TMVA/ROperator.hxx + inc/TMVA/ROperator_ArgMax.hxx + inc/TMVA/ROperator_BasicBinary.hxx + inc/TMVA/ROperator_BasicNary.hxx + inc/TMVA/ROperator_BasicUnary.hxx + inc/TMVA/ROperator_Basic_Is.hxx + inc/TMVA/ROperator_BatchNormalization.hxx + inc/TMVA/ROperator_Cast.hxx + inc/TMVA/ROperator_Clip.hxx + inc/TMVA/ROperator_Comparision.hxx + inc/TMVA/ROperator_Concat.hxx + inc/TMVA/ROperator_Constant.hxx + inc/TMVA/ROperator_Conv.hxx + inc/TMVA/ROperator_ConvTranspose.hxx + inc/TMVA/ROperator_Einsum.hxx + inc/TMVA/ROperator_Elu.hxx + inc/TMVA/ROperator_Erf.hxx + inc/TMVA/ROperator_Expand.hxx + inc/TMVA/ROperator_EyeLike.hxx + inc/TMVA/ROperator_GRU.hxx + inc/TMVA/ROperator_Gather.hxx + inc/TMVA/ROperator_GatherND.hxx + inc/TMVA/ROperator_Gelu.hxx + inc/TMVA/ROperator_Gemm.hxx + inc/TMVA/ROperator_HardSigmoid.hxx + inc/TMVA/ROperator_HardSwish.hxx + inc/TMVA/ROperator_Identity.hxx + inc/TMVA/ROperator_InstanceNormalization.hxx + inc/TMVA/ROperator_LSTM.hxx + inc/TMVA/ROperator_LayerNormalization.hxx + inc/TMVA/ROperator_LeakyRelu.hxx + inc/TMVA/ROperator_NonZero.hxx + inc/TMVA/ROperator_Not.hxx + inc/TMVA/ROperator_PRelu.hxx + inc/TMVA/ROperator_Pad.hxx + inc/TMVA/ROperator_Pool.hxx + inc/TMVA/ROperator_RNN.hxx + inc/TMVA/ROperator_Random.hxx + inc/TMVA/ROperator_Range.hxx + inc/TMVA/ROperator_Reduce.hxx + inc/TMVA/ROperator_Relu.hxx + inc/TMVA/ROperator_Reshape.hxx + inc/TMVA/ROperator_ScatterElements.hxx + inc/TMVA/ROperator_ScatterND.hxx + inc/TMVA/ROperator_Selu.hxx + inc/TMVA/ROperator_Shape.hxx + inc/TMVA/ROperator_Sigmoid.hxx + inc/TMVA/ROperator_Slice.hxx + inc/TMVA/ROperator_Softmax.hxx + inc/TMVA/ROperator_Split.hxx + inc/TMVA/ROperator_SubGraph.hxx + inc/TMVA/ROperator_Swish.hxx + inc/TMVA/ROperator_Tanh.hxx + inc/TMVA/ROperator_Tile.hxx + inc/TMVA/ROperator_TopK.hxx + inc/TMVA/ROperator_Transpose.hxx + inc/TMVA/ROperator_Where.hxx +PUBLIC + FILE_SET HEADERS TYPE HEADERS BASE_DIRS inc/ FILES + inc/TMVA/RModel.hxx + inc/TMVA/SOFIE_common.hxx + FILE_SET linkDefs TYPE HEADERS BASE_DIRS inc/ FILES inc/LinkDef.h ) +target_link_libraries(ROOTTMVASofie PRIVATE Core) + +ROOT_GENERATE_TARGET_DICTIONARY(ROOTTMVASofie "") +ROOT_INSTALL_TARGET(ROOTTMVASofie) # Tests are not enabled unconditionally because they require BLAS if(test_tmva_sofie) diff --git a/tmva/sofie_parsers/CMakeLists.txt b/tmva/sofie_parsers/CMakeLists.txt index 455427e676801..683c71df16eeb 100644 --- a/tmva/sofie_parsers/CMakeLists.txt +++ b/tmva/sofie_parsers/CMakeLists.txt @@ -9,94 +9,88 @@ ############################################################################ #Author: Sitong An, Lorenzo Moneta 10/03/2021 -# The ONNX model files are read with a small self-contained protobuf -# wire-format decoder (src/onnx.hxx), so this package has no external -# dependency on protobuf / libprotobuf / protoc. - -set(TMVASOFIEPARSER_HEADERS - TMVA/RModelParser_ONNX.hxx -) - -ROOT_STANDARD_LIBRARY_PACKAGE(ROOTTMVASofieParser - HEADERS - ${TMVASOFIEPARSER_HEADERS} - SOURCES - src/RModelParser_ONNX.cxx - src/ParseBasicUnary.cxx - src/ParseBasicBinary.cxx - src/ParseBasicIs.cxx - src/ParseBatchNormalization.cxx - src/ParseCast.cxx - src/ParseConcat.cxx - src/ParseConv.cxx - src/ParseConvTranspose.cxx - src/ParseGemm.cxx - src/ParseGRU.cxx - src/ParseIdentity.cxx - src/ParseLeakyRelu.cxx - src/ParseLSTM.cxx - src/ParseBasicNary.cxx - src/ParsePool.cxx - src/ParseReduce.cxx - src/ParseRelu.cxx - src/ParseReshape.cxx - src/ParseRNN.cxx - src/ParseSelu.cxx - src/ParseShape.cxx - src/ParseSigmoid.cxx - src/ParseSwish.cxx - src/ParseSlice.cxx - src/ParseSoftmax.cxx - src/ParseTanh.cxx - src/ParseTranspose.cxx - src/ParseErf.cxx - src/ParseRange.cxx - src/ParseLayerNormalization.cxx - src/ParseInstanceNormalization.cxx - src/ParseExpand.cxx - src/ParseGather.cxx - src/ParseGatherND.cxx - src/ParseElu.cxx - src/ParseFuseConvAdd.cxx - src/ParseFuseConvTransposeAdd.cxx - src/ParseFuseGemmRelu.cxx - src/ParseFuseBatchnormRelu.cxx - src/ParseFuseMatMulAdd.cxx - src/ParseMatMul.cxx - src/ParseComparision.cxx - src/ParseEyeLike.cxx - src/ParseConstant.cxx - src/ParseTopK.cxx - src/ParseTile.cxx - src/ParseSplit.cxx - src/ParseIf.cxx - src/ParsePad.cxx - src/ParseWhere.cxx - src/ParseEinsum.cxx - src/ParseRandom.cxx - src/ParseScatterElements.cxx - src/ParseScatterND.cxx - src/ParseNonZero.cxx - src/ParseNot.cxx - src/ParseClip.cxx - src/ParseGelu.cxx - src/ParseHardSigmoid.cxx - src/ParseHardSwish.cxx - src/ParseArgMax.cxx - src/ParsePRelu.cxx - DEPENDENCIES - ROOTTMVASofie -) - -set(RELATIVE_INC_HEADERS ${TMVASOFIEPARSER_HEADERS}) -list(TRANSFORM RELATIVE_INC_HEADERS PREPEND inc/) +add_library(ROOTTMVASofieParser SHARED) target_sources(ROOTTMVASofieParser PRIVATE - FILE_SET private_header_files - TYPE HEADERS - BASE_DIRS inc/ src/ - FILES - ${RELATIVE_INC_HEADERS} - inc/LinkDef.h + src/RModelParser_ONNX.cxx + src/ParseBasicUnary.cxx + src/ParseBasicBinary.cxx + src/ParseBasicIs.cxx + src/ParseBatchNormalization.cxx + src/ParseCast.cxx + src/ParseConcat.cxx + src/ParseConv.cxx + src/ParseConvTranspose.cxx + src/ParseGemm.cxx + src/ParseGRU.cxx + src/ParseIdentity.cxx + src/ParseLeakyRelu.cxx + src/ParseLSTM.cxx + src/ParseBasicNary.cxx + src/ParsePool.cxx + src/ParseReduce.cxx + src/ParseRelu.cxx + src/ParseReshape.cxx + src/ParseRNN.cxx + src/ParseSelu.cxx + src/ParseShape.cxx + src/ParseSigmoid.cxx + src/ParseSwish.cxx + src/ParseSlice.cxx + src/ParseSoftmax.cxx + src/ParseTanh.cxx + src/ParseTranspose.cxx + src/ParseErf.cxx + src/ParseRange.cxx + src/ParseLayerNormalization.cxx + src/ParseInstanceNormalization.cxx + src/ParseExpand.cxx + src/ParseGather.cxx + src/ParseGatherND.cxx + src/ParseElu.cxx + src/ParseFuseConvAdd.cxx + src/ParseFuseConvTransposeAdd.cxx + src/ParseFuseGemmRelu.cxx + src/ParseFuseBatchnormRelu.cxx + src/ParseFuseMatMulAdd.cxx + src/ParseMatMul.cxx + src/ParseComparision.cxx + src/ParseEyeLike.cxx + src/ParseConstant.cxx + src/ParseTopK.cxx + src/ParseTile.cxx + src/ParseSplit.cxx + src/ParseIf.cxx + src/ParsePad.cxx + src/ParseWhere.cxx + src/ParseEinsum.cxx + src/ParseRandom.cxx + src/ParseScatterElements.cxx + src/ParseScatterND.cxx + src/ParseNonZero.cxx + src/ParseNot.cxx + src/ParseClip.cxx + src/ParseGelu.cxx + src/ParseHardSigmoid.cxx + src/ParseHardSwish.cxx + src/ParseArgMax.cxx + src/ParsePRelu.cxx +PRIVATE + FILE_SET private_header_files TYPE HEADERS BASE_DIRS src/ FILES + # The ONNX model files are read with a small self-contained protobuf + # wire-format decoder (src/onnx.hxx), so this package has no external + # dependency on protobuf / libprotobuf / protoc. src/onnx.hxx +PUBLIC + FILE_SET HEADERS TYPE HEADERS BASE_DIRS inc/ FILES + inc/TMVA/RModelParser_ONNX.hxx + FILE_SET linkDefs TYPE HEADERS BASE_DIRS inc/ FILES + inc/LinkDef.h ) +target_link_libraries(ROOTTMVASofieParser PUBLIC ROOTTMVASofie PRIVATE Core) +ROOT_GENERATE_TARGET_DICTIONARY(ROOTTMVASofieParser "") +ROOT_INSTALL_TARGET(ROOTTMVASofieParser) + +# workaround to include privately headers that are not public, from a "friend" target +get_target_property(TmvaSofie_Friend_Dirs ROOTTMVASofie HEADER_DIRS_friend_header_files) +target_include_directories(ROOTTMVASofieParser PRIVATE ${TmvaSofie_Friend_Dirs}) diff --git a/tmva/tmva/CMakeLists.txt b/tmva/tmva/CMakeLists.txt index ae470825c8d4a..fb1078c8efc21 100644 --- a/tmva/tmva/CMakeLists.txt +++ b/tmva/tmva/CMakeLists.txt @@ -9,510 +9,480 @@ # @author Pere Mato, CERN ############################################################################ -if(NOT tmva-gpu) - set(installoptions ${installoptions} FILTER "Cuda") -endif() - - -if (imt) - list(APPEND TMVA_EXTRA_DEPENDENCIES Imt) -endif(imt) - -set (EXTRA_DICT_OPTS) -if (runtime_cxxmodules AND WIN32) - set (EXTRA_DICT_OPTS NO_CXXMODULE) -endif() - -set(TMVA_HEADERS - TMVA/BDTEventWrapper.h - TMVA/BinarySearchTree.h - TMVA/BinarySearchTreeNode.h - TMVA/BinaryTree.h - TMVA/CCPruner.h - TMVA/CCTreeWrapper.h - TMVA/ClassifierFactory.h - TMVA/ClassInfo.h - TMVA/Config.h - TMVA/Configurable.h - TMVA/ConvergenceTest.h - TMVA/CostComplexityPruneTool.h - TMVA/CrossEntropy.h - TMVA/CrossValidation.h - TMVA/CvSplit.h - TMVA/DataInputHandler.h - TMVA/DataLoader.h - TMVA/DataSetFactory.h - TMVA/DataSet.h - TMVA/DataSetInfo.h - TMVA/DataSetManager.h - TMVA/DecisionTree.h - TMVA/DecisionTreeNode.h - TMVA/Envelope.h - TMVA/Event.h - TMVA/ExpectedErrorPruneTool.h - TMVA/Executor.h - TMVA/Factory.h - TMVA/FitterBase.h - TMVA/GeneticAlgorithm.h - TMVA/GeneticFitter.h - TMVA/GeneticGenes.h - TMVA/GeneticPopulation.h - TMVA/GeneticRange.h - TMVA/GiniIndex.h - TMVA/GiniIndexWithLaplace.h - TMVA/HyperParameterOptimisation.h - TMVA/IFitterTarget.h - TMVA/IMethod.h - TMVA/Interval.h - TMVA/IPruneTool.h - TMVA/KDEKernel.h - TMVA/LDA.h - TMVA/LogInterval.h - TMVA/LossFunction.h - TMVA/MCFitter.h - TMVA/MethodANNBase.h - TMVA/MethodBase.h - TMVA/MethodBayesClassifier.h - TMVA/MethodBDT.h - TMVA/MethodBoost.h - TMVA/MethodCategory.h - TMVA/MethodCFMlpANN_def.h - TMVA/MethodCFMlpANN.h - TMVA/MethodCFMlpANN_Utils.h - TMVA/MethodCompositeBase.h - TMVA/MethodCrossValidation.h - TMVA/MethodCuts.h - TMVA/MethodDL.h - TMVA/MethodDNN.h - TMVA/MethodDT.h - TMVA/MethodFDA.h - TMVA/MethodFisher.h - TMVA/MethodHMatrix.h - TMVA/MethodKNN.h - TMVA/MethodLD.h - TMVA/MethodLikelihood.h - TMVA/MethodMLP.h - TMVA/MethodPDEFoam.h - TMVA/MethodPDERS.h - TMVA/MethodRuleFit.h - TMVA/MethodSVM.h - TMVA/MethodTMlpANN.h - TMVA/MinuitFitter.h - TMVA/MinuitWrapper.h - TMVA/MisClassificationError.h - TMVA/ModulekNN.h - TMVA/Monitoring.h - TMVA/MsgLogger.h - TMVA/NeuralNet.h - TMVA/Node.h - TMVA/NodekNN.h - TMVA/OptimizeConfigParameters.h - TMVA/Option.h - TMVA/OptionMap.h - TMVA/Pattern.h - TMVA/PDEFoamCell.h - TMVA/PDEFoamDecisionTreeDensity.h - TMVA/PDEFoamDecisionTree.h - TMVA/PDEFoamDensityBase.h - TMVA/PDEFoamDiscriminantDensity.h - TMVA/PDEFoamDiscriminant.h - TMVA/PDEFoamEventDensity.h - TMVA/PDEFoamEvent.h - TMVA/PDEFoam.h - TMVA/PDEFoamKernelBase.h - TMVA/PDEFoamKernelGauss.h - TMVA/PDEFoamKernelLinN.h - TMVA/PDEFoamKernelTrivial.h - TMVA/PDEFoamMultiTarget.h - TMVA/PDEFoamTargetDensity.h - TMVA/PDEFoamTarget.h - TMVA/PDEFoamVect.h - TMVA/PDF.h - TMVA/QuickMVAProbEstimator.h - TMVA/Ranking.h - TMVA/Reader.h - TMVA/RegressionVariance.h - TMVA/ResultsClassification.h - TMVA/Results.h - TMVA/ResultsMulticlass.h - TMVA/ResultsRegression.h - TMVA/ROCCalc.h - TMVA/ROCCurve.h - TMVA/RootFinder.h - TMVA/RuleCut.h - TMVA/RuleEnsemble.h - TMVA/RuleFitAPI.h - TMVA/RuleFit.h - TMVA/RuleFitParams.h - TMVA/Rule.h - TMVA/SdivSqrtSplusB.h - TMVA/SeparationBase.h - TMVA/SimulatedAnnealingFitter.h - TMVA/SimulatedAnnealing.h - TMVA/SVEvent.h - TMVA/SVKernelFunction.h - TMVA/SVKernelMatrix.h - TMVA/SVWorkingSet.h - TMVA/TActivationChooser.h - TMVA/TActivation.h - TMVA/TActivationIdentity.h - TMVA/TActivationRadial.h - TMVA/TActivationReLU.h - TMVA/TActivationSigmoid.h - TMVA/TActivationTanh.h - TMVA/Timer.h - TMVA/TNeuron.h - TMVA/TNeuronInputAbs.h - TMVA/TNeuronInputChooser.h - TMVA/TNeuronInput.h - TMVA/TNeuronInputSqSum.h - TMVA/TNeuronInputSum.h - TMVA/Tools.h - TMVA/TrainingHistory.h - TMVA/TransformationHandler.h - TMVA/TSpline1.h - TMVA/TSpline2.h - TMVA/TSynapse.h - TMVA/Types.h - TMVA/VariableDecorrTransform.h - TMVA/VariableGaussTransform.h - TMVA/VariableIdentityTransform.h - TMVA/VariableImportance.h - TMVA/VariableInfo.h - TMVA/VariableNormalizeTransform.h - TMVA/VariablePCATransform.h - TMVA/VariableRearrangeTransform.h - TMVA/VariableTransformBase.h - TMVA/VariableTransform.h - TMVA/VarTransformHandler.h - TMVA/Version.h - TMVA/Volume.h -) - -set(TMVA_EXTRA_HEADERS - TMVA/DNN/Adadelta.h - TMVA/DNN/Adagrad.h - TMVA/DNN/Adam.h - TMVA/DNN/BatchNormLayer.h - TMVA/DNN/DLMinimizers.h - TMVA/DNN/DataLoader.h - TMVA/DNN/DeepNet.h - TMVA/DNN/DenseLayer.h - TMVA/DNN/Functions.h - TMVA/DNN/GeneralLayer.h - TMVA/DNN/Layer.h - TMVA/DNN/Minimizers.h - TMVA/DNN/Net.h - TMVA/DNN/Optimizer.h - TMVA/DNN/RMSProp.h - TMVA/DNN/ReshapeLayer.h - TMVA/DNN/SGD.h - TMVA/DNN/TensorDataLoader.h - TMVA/DNN/CNN/ContextHandles.h - TMVA/DNN/CNN/ConvLayer.h - TMVA/DNN/CNN/MaxPoolLayer.h - TMVA/DNN/RNN/GRULayer.h - TMVA/DNN/RNN/LSTMLayer.h - TMVA/DNN/RNN/RNNLayer.h - TMVA/DNN/Architectures/Reference.h - TMVA/DNN/Architectures/Reference/DataLoader.h - TMVA/DNN/Architectures/Reference/TensorDataLoader.h - TMVA/DNN/Architectures/Cpu.h - TMVA/DNN/Architectures/Cpu/CpuBuffer.h - TMVA/DNN/Architectures/Cpu/CpuMatrix.h - TMVA/DNN/Architectures/Cpu/CpuTensor.h +add_library(TMVA SHARED) +target_sources(TMVA +PRIVATE + src/BDTEventWrapper.cxx + src/BinarySearchTree.cxx + src/BinarySearchTreeNode.cxx + src/BinaryTree.cxx + src/CCPruner.cxx + src/CCTreeWrapper.cxx + src/ClassifierFactory.cxx + src/ClassInfo.cxx + src/Config.cxx + src/Configurable.cxx + src/ConvergenceTest.cxx + src/CostComplexityPruneTool.cxx + src/CrossEntropy.cxx + src/CrossValidation.cxx + src/CvSplit.cxx + src/DataInputHandler.cxx + src/DataLoader.cxx + src/DataSet.cxx + src/DataSetFactory.cxx + src/DataSetInfo.cxx + src/DataSetManager.cxx + src/DecisionTree.cxx + src/DecisionTreeNode.cxx + src/Envelope.cxx + src/Event.cxx + src/ExpectedErrorPruneTool.cxx + src/Factory.cxx + src/FitterBase.cxx + src/GeneticAlgorithm.cxx + src/GeneticFitter.cxx + src/GeneticGenes.cxx + src/GeneticPopulation.cxx + src/GeneticRange.cxx + src/GiniIndex.cxx + src/GiniIndexWithLaplace.cxx + src/HyperParameterOptimisation.cxx + src/IFitterTarget.cxx + src/IMethod.cxx + src/Interval.cxx + src/KDEKernel.cxx + src/LDA.cxx + src/LogInterval.cxx + src/LossFunction.cxx + src/MCFitter.cxx + src/MethodANNBase.cxx + src/MethodBase.cxx + src/MethodBayesClassifier.cxx + src/MethodBDT.cxx + src/MethodBoost.cxx + src/MethodCategory.cxx + src/MethodCFMlpANN.cxx + src/MethodCFMlpANN_Utils.cxx + src/MethodCompositeBase.cxx + src/MethodCrossValidation.cxx + src/MethodCuts.cxx + src/MethodDL.cxx + src/MethodDNN.cxx + src/MethodDT.cxx + src/MethodFDA.cxx + src/MethodFisher.cxx + src/MethodHMatrix.cxx + src/MethodKNN.cxx + src/MethodLD.cxx + src/MethodLikelihood.cxx + src/MethodMLP.cxx + src/MethodPDEFoam.cxx + src/MethodPDERS.cxx + src/MethodPlugins.cxx + src/MethodRuleFit.cxx + src/MethodSVM.cxx + src/MethodTMlpANN.cxx + src/MinuitFitter.cxx + src/MinuitWrapper.cxx + src/MisClassificationError.cxx + src/ModulekNN.cxx + src/MsgLogger.cxx + src/NeuralNet.cxx + src/Node.cxx + src/OptimizeConfigParameters.cxx + src/Option.cxx + src/OptionMap.cxx + src/PDEFoamCell.cxx + src/PDEFoam.cxx + src/PDEFoamDecisionTree.cxx + src/PDEFoamDecisionTreeDensity.cxx + src/PDEFoamDensityBase.cxx + src/PDEFoamDiscriminant.cxx + src/PDEFoamDiscriminantDensity.cxx + src/PDEFoamEvent.cxx + src/PDEFoamEventDensity.cxx + src/PDEFoamKernelBase.cxx + src/PDEFoamKernelGauss.cxx + src/PDEFoamKernelLinN.cxx + src/PDEFoamKernelTrivial.cxx + src/PDEFoamMultiTarget.cxx + src/PDEFoamTarget.cxx + src/PDEFoamTargetDensity.cxx + src/PDEFoamVect.cxx + src/PDF.cxx + src/QuickMVAProbEstimator.cxx + src/Ranking.cxx + src/Reader.cxx + src/RegressionVariance.cxx + src/ResultsClassification.cxx + src/Results.cxx + src/ResultsMulticlass.cxx + src/ResultsRegression.cxx + src/ROCCalc.cxx + src/ROCCurve.cxx + src/RootFinder.cxx + src/RuleCut.cxx + src/Rule.cxx + src/RuleEnsemble.cxx + src/RuleFitAPI.cxx + src/RuleFit.cxx + src/RuleFitParams.cxx + src/SdivSqrtSplusB.cxx + src/SeparationBase.cxx + src/SimulatedAnnealing.cxx + src/SimulatedAnnealingFitter.cxx + src/SVEvent.cxx + src/SVKernelFunction.cxx + src/SVKernelMatrix.cxx + src/SVWorkingSet.cxx + src/TActivationChooser.cxx + src/TActivation.cxx + src/TActivationIdentity.cxx + src/TActivationRadial.cxx + src/TActivationReLU.cxx + src/TActivationSigmoid.cxx + src/TActivationTanh.cxx + src/Timer.cxx + src/TNeuron.cxx + src/TNeuronInputAbs.cxx + src/TNeuronInputChooser.cxx + src/TNeuronInput.cxx + src/TNeuronInputSqSum.cxx + src/TNeuronInputSum.cxx + src/Tools.cxx + src/TrainingHistory.cxx + src/TransformationHandler.cxx + src/TSpline1.cxx + src/TSpline2.cxx + src/TSynapse.cxx + src/Types.cxx + src/VariableDecorrTransform.cxx + src/VariableGaussTransform.cxx + src/VariableIdentityTransform.cxx + src/VariableImportance.cxx + src/VariableInfo.cxx + src/VariableNormalizeTransform.cxx + src/VariablePCATransform.cxx + src/VariableRearrangeTransform.cxx + src/VariableTransformBase.cxx + src/VariableTransform.cxx + src/VarTransformHandler.cxx + src/Volume.cxx + src/DNN/Architectures/Reference.cxx + src/DNN/Architectures/Reference/DataLoader.cxx + src/DNN/Architectures/Reference/TensorDataLoader.cxx + src/DNN/Architectures/Cpu.cxx + src/DNN/Architectures/Cpu/CpuBuffer.cxx + src/DNN/Architectures/Cpu/CpuMatrix.cxx +PRIVATE + FILE_SET private_header_files TYPE HEADERS BASE_DIRS inc/ FILES + inc/TMVA/NeuralNet.icc + inc/TMVA/DNN/Adadelta.h + inc/TMVA/DNN/Adagrad.h + inc/TMVA/DNN/Adam.h + inc/TMVA/DNN/BatchNormLayer.h + inc/TMVA/DNN/DLMinimizers.h + inc/TMVA/DNN/DataLoader.h + inc/TMVA/DNN/DeepNet.h + inc/TMVA/DNN/DenseLayer.h + inc/TMVA/DNN/Functions.h + inc/TMVA/DNN/GeneralLayer.h + inc/TMVA/DNN/Layer.h + inc/TMVA/DNN/Minimizers.h + inc/TMVA/DNN/Net.h + inc/TMVA/DNN/Optimizer.h + inc/TMVA/DNN/RMSProp.h + inc/TMVA/DNN/ReshapeLayer.h + inc/TMVA/DNN/SGD.h + inc/TMVA/DNN/TensorDataLoader.h + inc/TMVA/DNN/CNN/ContextHandles.h + inc/TMVA/DNN/CNN/ConvLayer.h + inc/TMVA/DNN/CNN/MaxPoolLayer.h + inc/TMVA/DNN/RNN/GRULayer.h + inc/TMVA/DNN/RNN/LSTMLayer.h + inc/TMVA/DNN/RNN/RNNLayer.h + inc/TMVA/DNN/Architectures/Reference.h + inc/TMVA/DNN/Architectures/Reference/DataLoader.h + inc/TMVA/DNN/Architectures/Reference/TensorDataLoader.h + inc/TMVA/DNN/Architectures/Cpu.h + inc/TMVA/DNN/Architectures/Cpu/CpuBuffer.h + inc/TMVA/DNN/Architectures/Cpu/CpuMatrix.h + inc/TMVA/DNN/Architectures/Cpu/CpuTensor.h +PUBLIC + FILE_SET HEADERS TYPE HEADERS BASE_DIRS inc/ FILES + inc/TMVA/BDTEventWrapper.h + inc/TMVA/BinarySearchTree.h + inc/TMVA/BinarySearchTreeNode.h + inc/TMVA/BinaryTree.h + inc/TMVA/CCPruner.h + inc/TMVA/CCTreeWrapper.h + inc/TMVA/ClassifierFactory.h + inc/TMVA/ClassInfo.h + inc/TMVA/Config.h + inc/TMVA/Configurable.h + inc/TMVA/ConvergenceTest.h + inc/TMVA/CostComplexityPruneTool.h + inc/TMVA/CrossEntropy.h + inc/TMVA/CrossValidation.h + inc/TMVA/CvSplit.h + inc/TMVA/DataInputHandler.h + inc/TMVA/DataLoader.h + inc/TMVA/DataSetFactory.h + inc/TMVA/DataSet.h + inc/TMVA/DataSetInfo.h + inc/TMVA/DataSetManager.h + inc/TMVA/DecisionTree.h + inc/TMVA/DecisionTreeNode.h + inc/TMVA/Envelope.h + inc/TMVA/Event.h + inc/TMVA/ExpectedErrorPruneTool.h + inc/TMVA/Executor.h + inc/TMVA/Factory.h + inc/TMVA/FitterBase.h + inc/TMVA/GeneticAlgorithm.h + inc/TMVA/GeneticFitter.h + inc/TMVA/GeneticGenes.h + inc/TMVA/GeneticPopulation.h + inc/TMVA/GeneticRange.h + inc/TMVA/GiniIndex.h + inc/TMVA/GiniIndexWithLaplace.h + inc/TMVA/HyperParameterOptimisation.h + inc/TMVA/IFitterTarget.h + inc/TMVA/IMethod.h + inc/TMVA/Interval.h + inc/TMVA/IPruneTool.h + inc/TMVA/KDEKernel.h + inc/TMVA/LDA.h + inc/TMVA/LogInterval.h + inc/TMVA/LossFunction.h + inc/TMVA/MCFitter.h + inc/TMVA/MethodANNBase.h + inc/TMVA/MethodBase.h + inc/TMVA/MethodBayesClassifier.h + inc/TMVA/MethodBDT.h + inc/TMVA/MethodBoost.h + inc/TMVA/MethodCategory.h + inc/TMVA/MethodCFMlpANN_def.h + inc/TMVA/MethodCFMlpANN.h + inc/TMVA/MethodCFMlpANN_Utils.h + inc/TMVA/MethodCompositeBase.h + inc/TMVA/MethodCrossValidation.h + inc/TMVA/MethodCuts.h + inc/TMVA/MethodDL.h + inc/TMVA/MethodDNN.h + inc/TMVA/MethodDT.h + inc/TMVA/MethodFDA.h + inc/TMVA/MethodFisher.h + inc/TMVA/MethodHMatrix.h + inc/TMVA/MethodKNN.h + inc/TMVA/MethodLD.h + inc/TMVA/MethodLikelihood.h + inc/TMVA/MethodMLP.h + inc/TMVA/MethodPDEFoam.h + inc/TMVA/MethodPDERS.h + inc/TMVA/MethodRuleFit.h + inc/TMVA/MethodSVM.h + inc/TMVA/MethodTMlpANN.h + inc/TMVA/MinuitFitter.h + inc/TMVA/MinuitWrapper.h + inc/TMVA/MisClassificationError.h + inc/TMVA/ModulekNN.h + inc/TMVA/Monitoring.h + inc/TMVA/MsgLogger.h + inc/TMVA/NeuralNet.h + inc/TMVA/Node.h + inc/TMVA/NodekNN.h + inc/TMVA/OptimizeConfigParameters.h + inc/TMVA/Option.h + inc/TMVA/OptionMap.h + inc/TMVA/Pattern.h + inc/TMVA/PDEFoamCell.h + inc/TMVA/PDEFoamDecisionTreeDensity.h + inc/TMVA/PDEFoamDecisionTree.h + inc/TMVA/PDEFoamDensityBase.h + inc/TMVA/PDEFoamDiscriminantDensity.h + inc/TMVA/PDEFoamDiscriminant.h + inc/TMVA/PDEFoamEventDensity.h + inc/TMVA/PDEFoamEvent.h + inc/TMVA/PDEFoam.h + inc/TMVA/PDEFoamKernelBase.h + inc/TMVA/PDEFoamKernelGauss.h + inc/TMVA/PDEFoamKernelLinN.h + inc/TMVA/PDEFoamKernelTrivial.h + inc/TMVA/PDEFoamMultiTarget.h + inc/TMVA/PDEFoamTargetDensity.h + inc/TMVA/PDEFoamTarget.h + inc/TMVA/PDEFoamVect.h + inc/TMVA/PDF.h + inc/TMVA/QuickMVAProbEstimator.h + inc/TMVA/Ranking.h + inc/TMVA/Reader.h + inc/TMVA/RegressionVariance.h + inc/TMVA/ResultsClassification.h + inc/TMVA/Results.h + inc/TMVA/ResultsMulticlass.h + inc/TMVA/ResultsRegression.h + inc/TMVA/ROCCalc.h + inc/TMVA/ROCCurve.h + inc/TMVA/RootFinder.h + inc/TMVA/RuleCut.h + inc/TMVA/RuleEnsemble.h + inc/TMVA/RuleFitAPI.h + inc/TMVA/RuleFit.h + inc/TMVA/RuleFitParams.h + inc/TMVA/Rule.h + inc/TMVA/SdivSqrtSplusB.h + inc/TMVA/SeparationBase.h + inc/TMVA/SimulatedAnnealingFitter.h + inc/TMVA/SimulatedAnnealing.h + inc/TMVA/SVEvent.h + inc/TMVA/SVKernelFunction.h + inc/TMVA/SVKernelMatrix.h + inc/TMVA/SVWorkingSet.h + inc/TMVA/TActivationChooser.h + inc/TMVA/TActivation.h + inc/TMVA/TActivationIdentity.h + inc/TMVA/TActivationRadial.h + inc/TMVA/TActivationReLU.h + inc/TMVA/TActivationSigmoid.h + inc/TMVA/TActivationTanh.h + inc/TMVA/Timer.h + inc/TMVA/TNeuron.h + inc/TMVA/TNeuronInputAbs.h + inc/TMVA/TNeuronInputChooser.h + inc/TMVA/TNeuronInput.h + inc/TMVA/TNeuronInputSqSum.h + inc/TMVA/TNeuronInputSum.h + inc/TMVA/Tools.h + inc/TMVA/TrainingHistory.h + inc/TMVA/TransformationHandler.h + inc/TMVA/TSpline1.h + inc/TMVA/TSpline2.h + inc/TMVA/TSynapse.h + inc/TMVA/Types.h + inc/TMVA/VariableDecorrTransform.h + inc/TMVA/VariableGaussTransform.h + inc/TMVA/VariableIdentityTransform.h + inc/TMVA/VariableImportance.h + inc/TMVA/VariableInfo.h + inc/TMVA/VariableNormalizeTransform.h + inc/TMVA/VariablePCATransform.h + inc/TMVA/VariableRearrangeTransform.h + inc/TMVA/VariableTransformBase.h + inc/TMVA/VariableTransform.h + inc/TMVA/VarTransformHandler.h + inc/TMVA/Version.h + inc/TMVA/Volume.h + FILE_SET linkDefs TYPE HEADERS BASE_DIRS inc/ FILES + inc/LinkDef.h + FILE_SET not4dict_header_files TYPE HEADERS BASE_DIRS inc/ FILES + inc/LinkDef1.h + inc/LinkDef2.h + inc/LinkDef3.h + inc/LinkDef4.h ) - if(tmva-gpu) - list(APPEND TMVA_EXTRA_HEADERS - TMVA/DNN/Architectures/Cuda.h - TMVA/DNN/Architectures/Cuda/CudaBuffers.h - TMVA/DNN/Architectures/Cuda/CudaMatrix.h - TMVA/DNN/Architectures/Cuda/CudaTensor.h - TMVA/DNN/Architectures/Cuda/Device.h + target_sources(TMVA + PRIVATE + src/DNN/Architectures/Cuda.cu + src/DNN/Architectures/Cuda/CudaBuffers.cxx + src/DNN/Architectures/Cuda/CudaMatrix.cu + src/DNN/Architectures/Cuda/CudaTensor.cu + PRIVATE + FILE_SET private_header_files TYPE HEADERS BASE_DIRS inc/ FILES + inc/TMVA/DNN/Architectures/Cuda.h + inc/TMVA/DNN/Architectures/Cuda/CudaBuffers.h + inc/TMVA/DNN/Architectures/Cuda/CudaMatrix.h + inc/TMVA/DNN/Architectures/Cuda/CudaTensor.h + inc/TMVA/DNN/Architectures/Cuda/Device.h + ) if(tmva-cudnn) - list(APPEND TMVA_EXTRA_HEADERS - TMVA/DNN/Architectures/TCudnn.h - ) + target_sources(TMVA + PRIVATE + src/DNN/Architectures/Cudnn/TensorDataLoader.cxx + src/DNN/Architectures/Cudnn.cu + PRIVATE + FILE_SET private_header_files TYPE HEADERS BASE_DIRS inc/ FILES + inc/TMVA/DNN/Architectures/TCudnn.h + ) endif() endif() - -ROOT_STANDARD_LIBRARY_PACKAGE(TMVA - HEADERS - ${TMVA_HEADERS} - SOURCES - src/BDTEventWrapper.cxx - src/BinarySearchTree.cxx - src/BinarySearchTreeNode.cxx - src/BinaryTree.cxx - src/CCPruner.cxx - src/CCTreeWrapper.cxx - src/ClassifierFactory.cxx - src/ClassInfo.cxx - src/Config.cxx - src/Configurable.cxx - src/ConvergenceTest.cxx - src/CostComplexityPruneTool.cxx - src/CrossEntropy.cxx - src/CrossValidation.cxx - src/CvSplit.cxx - src/DataInputHandler.cxx - src/DataLoader.cxx - src/DataSet.cxx - src/DataSetFactory.cxx - src/DataSetInfo.cxx - src/DataSetManager.cxx - src/DecisionTree.cxx - src/DecisionTreeNode.cxx - src/Envelope.cxx - src/Event.cxx - src/ExpectedErrorPruneTool.cxx - src/Factory.cxx - src/FitterBase.cxx - src/GeneticAlgorithm.cxx - src/GeneticFitter.cxx - src/GeneticGenes.cxx - src/GeneticPopulation.cxx - src/GeneticRange.cxx - src/GiniIndex.cxx - src/GiniIndexWithLaplace.cxx - src/HyperParameterOptimisation.cxx - src/IFitterTarget.cxx - src/IMethod.cxx - src/Interval.cxx - src/KDEKernel.cxx - src/LDA.cxx - src/LogInterval.cxx - src/LossFunction.cxx - src/MCFitter.cxx - src/MethodANNBase.cxx - src/MethodBase.cxx - src/MethodBayesClassifier.cxx - src/MethodBDT.cxx - src/MethodBoost.cxx - src/MethodCategory.cxx - src/MethodCFMlpANN.cxx - src/MethodCFMlpANN_Utils.cxx - src/MethodCompositeBase.cxx - src/MethodCrossValidation.cxx - src/MethodCuts.cxx - src/MethodDL.cxx - src/MethodDNN.cxx - src/MethodDT.cxx - src/MethodFDA.cxx - src/MethodFisher.cxx - src/MethodHMatrix.cxx - src/MethodKNN.cxx - src/MethodLD.cxx - src/MethodLikelihood.cxx - src/MethodMLP.cxx - src/MethodPDEFoam.cxx - src/MethodPDERS.cxx - src/MethodPlugins.cxx - src/MethodRuleFit.cxx - src/MethodSVM.cxx - src/MethodTMlpANN.cxx - src/MinuitFitter.cxx - src/MinuitWrapper.cxx - src/MisClassificationError.cxx - src/ModulekNN.cxx - src/MsgLogger.cxx - src/NeuralNet.cxx - src/Node.cxx - src/OptimizeConfigParameters.cxx - src/Option.cxx - src/OptionMap.cxx - src/PDEFoamCell.cxx - src/PDEFoam.cxx - src/PDEFoamDecisionTree.cxx - src/PDEFoamDecisionTreeDensity.cxx - src/PDEFoamDensityBase.cxx - src/PDEFoamDiscriminant.cxx - src/PDEFoamDiscriminantDensity.cxx - src/PDEFoamEvent.cxx - src/PDEFoamEventDensity.cxx - src/PDEFoamKernelBase.cxx - src/PDEFoamKernelGauss.cxx - src/PDEFoamKernelLinN.cxx - src/PDEFoamKernelTrivial.cxx - src/PDEFoamMultiTarget.cxx - src/PDEFoamTarget.cxx - src/PDEFoamTargetDensity.cxx - src/PDEFoamVect.cxx - src/PDF.cxx - src/QuickMVAProbEstimator.cxx - src/Ranking.cxx - src/Reader.cxx - src/RegressionVariance.cxx - src/ResultsClassification.cxx - src/Results.cxx - src/ResultsMulticlass.cxx - src/ResultsRegression.cxx - src/ROCCalc.cxx - src/ROCCurve.cxx - src/RootFinder.cxx - src/RuleCut.cxx - src/Rule.cxx - src/RuleEnsemble.cxx - src/RuleFitAPI.cxx - src/RuleFit.cxx - src/RuleFitParams.cxx - src/SdivSqrtSplusB.cxx - src/SeparationBase.cxx - src/SimulatedAnnealing.cxx - src/SimulatedAnnealingFitter.cxx - src/SVEvent.cxx - src/SVKernelFunction.cxx - src/SVKernelMatrix.cxx - src/SVWorkingSet.cxx - src/TActivationChooser.cxx - src/TActivation.cxx - src/TActivationIdentity.cxx - src/TActivationRadial.cxx - src/TActivationReLU.cxx - src/TActivationSigmoid.cxx - src/TActivationTanh.cxx - src/Timer.cxx - src/TNeuron.cxx - src/TNeuronInputAbs.cxx - src/TNeuronInputChooser.cxx - src/TNeuronInput.cxx - src/TNeuronInputSqSum.cxx - src/TNeuronInputSum.cxx - src/Tools.cxx - src/TrainingHistory.cxx - src/TransformationHandler.cxx - src/TSpline1.cxx - src/TSpline2.cxx - src/TSynapse.cxx - src/Types.cxx - src/VariableDecorrTransform.cxx - src/VariableGaussTransform.cxx - src/VariableIdentityTransform.cxx - src/VariableImportance.cxx - src/VariableInfo.cxx - src/VariableNormalizeTransform.cxx - src/VariablePCATransform.cxx - src/VariableRearrangeTransform.cxx - src/VariableTransformBase.cxx - src/VariableTransform.cxx - src/VarTransformHandler.cxx - src/Volume.cxx - src/DNN/Architectures/Reference.cxx - src/DNN/Architectures/Reference/DataLoader.cxx - src/DNN/Architectures/Reference/TensorDataLoader.cxx - src/DNN/Architectures/Cpu.cxx - src/DNN/Architectures/Cpu/CpuBuffer.cxx - src/DNN/Architectures/Cpu/CpuMatrix.cxx - ${TMVA_EXTRA_SOURCES} - DEPENDENCIES - TreePlayer - Tree - Hist - Matrix - Minuit - MLP - MathCore - Core - RIO - XMLIO - ${TMVA_EXTRA_DEPENDENCIES} - DICTIONARY_OPTIONS - -writeEmptyRootPCM - INSTALL_OPTIONS - ${installoptions} - ${EXTRA_DICT_OPTS} +target_link_libraries(TMVA PUBLIC + TreePlayer + Tree + Hist + Matrix + Minuit + MLP + MathCore + Core + RIO + XMLIO ) - -if(MSVC) - target_compile_definitions(TMVA PRIVATE _USE_MATH_DEFINES) +if(imt) + target_link_libraries(TMVA PUBLIC Imt) endif() - -if(vdt OR builtin_vdt) +if(vdt) target_link_libraries(TMVA PRIVATE VDT::VDT) endif() - if(tmva-cpu) target_link_libraries(TMVA PRIVATE TBB::tbb ROOT::BLAS) endif() - if(tmva-gpu) - target_sources(TMVA PRIVATE - src/DNN/Architectures/Cuda.cu - src/DNN/Architectures/Cuda/CudaBuffers.cxx - src/DNN/Architectures/Cuda/CudaMatrix.cu - src/DNN/Architectures/Cuda/CudaTensor.cu ) target_link_libraries(TMVA PRIVATE CUDA::cuda_driver CUDA::cublas) if(tmva-cudnn) - message(STATUS "Using Cuda+cuDNN for TMVA Deep Learning on GPU") - target_sources(TMVA PRIVATE - src/DNN/Architectures/Cudnn/TensorDataLoader.cxx - src/DNN/Architectures/Cudnn.cu) target_link_libraries(TMVA PRIVATE ROOT::cuDNN) - else() - message(STATUS "cuDNN not found or disabled - use only Cuda+Cublas for TMVA Deep Learning on GPU") endif() -endif(tmva-gpu) - -set(RELATIVE_INC_HEADERS ${TMVA_HEADERS} ${TMVA_EXTRA_HEADERS}) -list(TRANSFORM RELATIVE_INC_HEADERS PREPEND inc/) -target_sources(TMVA -PRIVATE - FILE_SET private_header_files - TYPE HEADERS - BASE_DIRS inc/ - FILES - ${RELATIVE_INC_HEADERS} - inc/TMVA/NeuralNet.icc - inc/LinkDef.h - inc/LinkDef1.h - inc/LinkDef2.h - inc/LinkDef3.h - inc/LinkDef4.h -) - -if(dataframe) -set(TMVAUTILS_HEADERS - TMVA/RReader.hxx - TMVA/RInferenceUtils.hxx - TMVA/RBDT.hxx - TMVA/RSofieReader.hxx -) - -ROOT_STANDARD_LIBRARY_PACKAGE(TMVAUtils - NO_INSTALL_HEADERS - HEADERS - ${TMVAUTILS_HEADERS} +endif() - SOURCES - src/RBDT.cxx +set (EXTRA_DICT_OPTS) +if (runtime_cxxmodules AND WIN32) + set (EXTRA_DICT_OPTS NO_CXXMODULE) +endif() - DEPENDENCIES - TMVA ROOTDataFrame ROOTVecOps - ${TMVA_EXTRA_DEPENDENCIES} +ROOT_GENERATE_TARGET_DICTIONARY(TMVA -writeEmptyRootPCM ${EXTRA_DICT_OPTS}) +ROOT_INSTALL_TARGET(TMVA) - LINKDEF LinkDefUtils.h - DICTIONARY_OPTIONS - -writeEmptyRootPCM +if(MSVC) + target_compile_definitions(TMVA PRIVATE _USE_MATH_DEFINES) +endif() - ${EXTRA_DICT_OPTS} -) -# RBDT::LoadXGBoost parses the XGBoost native JSON serialization. -target_link_libraries(TMVAUtils PRIVATE nlohmann_json::nlohmann_json) +if(tmva-gpu) + if(tmva-cudnn) + message(STATUS "Using Cuda+cuDNN for TMVA Deep Learning on GPU") + else() + message(STATUS "cuDNN not found or disabled - use only Cuda+Cublas for TMVA Deep Learning on GPU") + endif() +elseif(tmva-cudnn) + message(SEND_ERROR "cuDNN cannot be enabled if tmva-gpu is disabled") +endif(tmva-gpu) -set(RELATIVE_INC_HEADERS ${TMVAUTILS_HEADERS}) -list(TRANSFORM RELATIVE_INC_HEADERS PREPEND inc/) +if(dataframe) +add_library(TMVAUtils SHARED) target_sources(TMVAUtils PRIVATE - FILE_SET private_header_files - TYPE HEADERS - BASE_DIRS inc/ - FILES - ${RELATIVE_INC_HEADERS} + src/RBDT.cxx +PUBLIC + FILE_SET HEADERS TYPE HEADERS BASE_DIRS inc/ FILES + inc/TMVA/RReader.hxx + inc/TMVA/RInferenceUtils.hxx + inc/TMVA/RBDT.hxx + inc/TMVA/RSofieReader.hxx + FILE_SET linkDefs TYPE HEADERS BASE_DIRS inc/ FILES inc/LinkDefUtils.h ) +target_link_libraries(TMVAUtils +PUBLIC + TMVA ROOTDataFrame ROOTVecOps + ${TMVA_EXTRA_DEPENDENCIES} +PRIVATE + # RBDT::LoadXGBoost parses the XGBoost native JSON serialization. + nlohmann_json::nlohmann_json) +ROOT_GENERATE_TARGET_DICTIONARY(TMVAUtils -writeEmptyRootPCM ${EXTRA_DICT_OPTS}) +ROOT_INSTALL_TARGET(TMVAUtils) endif() diff --git a/tmva/tmvagui/CMakeLists.txt b/tmva/tmvagui/CMakeLists.txt index 5c3f1e81a4120..e86084ebf10d8 100644 --- a/tmva/tmvagui/CMakeLists.txt +++ b/tmva/tmvagui/CMakeLists.txt @@ -14,88 +14,87 @@ if (runtime_cxxmodules AND WIN32) set (EXTRA_DICT_OPTS NO_CXXMODULE) endif() -set(TMVAGUI_HEADERS - TMVA/BDT.h - TMVA/BDTControlPlots.h - TMVA/BDT_Reg.h - TMVA/BoostControlPlots.h - TMVA/CorrGui.h - TMVA/CorrGuiMultiClass.h - TMVA/MovieMaker.h - TMVA/PlotFoams.h - TMVA/TMVAGui.h - TMVA/TMVAMultiClassGui.h - TMVA/TMVARegGui.h - TMVA/annconvergencetest.h - TMVA/compareanapp.h - TMVA/correlations.h - TMVA/correlationsMultiClass.h - TMVA/correlationscatters.h - TMVA/correlationscattersMultiClass.h - TMVA/deviations.h - TMVA/efficiencies.h - TMVA/efficienciesMulticlass.h - TMVA/likelihoodrefs.h - TMVA/mvaeffs.h - TMVA/mvas.h - TMVA/mvasMulticlass.h - TMVA/mvaweights.h - TMVA/network.h - TMVA/paracoor.h - TMVA/probas.h - TMVA/regression_averagedevs.h - TMVA/rulevis.h - TMVA/rulevisCorr.h - TMVA/rulevisHists.h - TMVA/tmvaglob.h - TMVA/training_history.h - TMVA/variables.h - TMVA/variablesMultiClass.h +add_library(TMVAGui SHARED) +target_sources(TMVAGui +PRIVATE + src/BDTControlPlots.cxx + src/BoostControlPlots.cxx + src/CorrGui.cxx + src/CorrGuiMultiClass.cxx + src/MovieMaker.cxx + src/PlotFoams.cxx + src/TMVAGui.cxx + src/TMVAMultiClassGui.cxx + src/TMVARegGui.cxx + src/annconvergencetest.cxx + src/compareanapp.cxx + src/correlations.cxx + src/correlationsMultiClass.cxx + src/correlationscatters.cxx + src/correlationscattersMultiClass.cxx + src/deviations.cxx + src/efficiencies.cxx + src/efficienciesMulticlass.cxx + src/likelihoodrefs.cxx + src/mvas.cxx + src/mvasMulticlass.cxx + src/mvaweights.cxx + src/network.cxx + src/paracoor.cxx + src/regression_averagedevs.cxx + src/rulevis.cxx + src/rulevisCorr.cxx + src/rulevisHists.cxx + src/tmvaglob.cxx + src/training_history.cxx + src/variables.cxx + src/variablesMultiClass.cxx + src/BDT.cxx + src/BDT_Reg.cxx + src/probas.cxx + src/mvaeffs.cxx +PUBLIC + FILE_SET HEADERS TYPE HEADERS BASE_DIRS inc/ FILES + inc/TMVA/BDT.h + inc/TMVA/BDTControlPlots.h + inc/TMVA/BDT_Reg.h + inc/TMVA/BoostControlPlots.h + inc/TMVA/CorrGui.h + inc/TMVA/CorrGuiMultiClass.h + inc/TMVA/MovieMaker.h + inc/TMVA/PlotFoams.h + inc/TMVA/TMVAGui.h + inc/TMVA/TMVAMultiClassGui.h + inc/TMVA/TMVARegGui.h + inc/TMVA/annconvergencetest.h + inc/TMVA/compareanapp.h + inc/TMVA/correlations.h + inc/TMVA/correlationsMultiClass.h + inc/TMVA/correlationscatters.h + inc/TMVA/correlationscattersMultiClass.h + inc/TMVA/deviations.h + inc/TMVA/efficiencies.h + inc/TMVA/efficienciesMulticlass.h + inc/TMVA/likelihoodrefs.h + inc/TMVA/mvaeffs.h + inc/TMVA/mvas.h + inc/TMVA/mvasMulticlass.h + inc/TMVA/mvaweights.h + inc/TMVA/network.h + inc/TMVA/paracoor.h + inc/TMVA/probas.h + inc/TMVA/regression_averagedevs.h + inc/TMVA/rulevis.h + inc/TMVA/rulevisCorr.h + inc/TMVA/rulevisHists.h + inc/TMVA/tmvaglob.h + inc/TMVA/training_history.h + inc/TMVA/variables.h + inc/TMVA/variablesMultiClass.h + FILE_SET linkDefs TYPE HEADERS BASE_DIRS inc/ FILES + inc/LinkDef.h ) - -ROOT_STANDARD_LIBRARY_PACKAGE(TMVAGui - HEADERS - ${TMVAGUI_HEADERS} - SOURCES - src/BDTControlPlots.cxx - src/BoostControlPlots.cxx - src/CorrGui.cxx - src/CorrGuiMultiClass.cxx - src/MovieMaker.cxx - src/PlotFoams.cxx - src/TMVAGui.cxx - src/TMVAMultiClassGui.cxx - src/TMVARegGui.cxx - src/annconvergencetest.cxx - src/compareanapp.cxx - src/correlations.cxx - src/correlationsMultiClass.cxx - src/correlationscatters.cxx - src/correlationscattersMultiClass.cxx - src/deviations.cxx - src/efficiencies.cxx - src/efficienciesMulticlass.cxx - src/likelihoodrefs.cxx - src/mvas.cxx - src/mvasMulticlass.cxx - src/mvaweights.cxx - src/network.cxx - src/paracoor.cxx - src/regression_averagedevs.cxx - src/rulevis.cxx - src/rulevisCorr.cxx - src/rulevisHists.cxx - src/tmvaglob.cxx - src/training_history.cxx - src/variables.cxx - src/variablesMultiClass.cxx - src/BDT.cxx - src/BDT_Reg.cxx - src/probas.cxx - src/mvaeffs.cxx - DICTIONARY_OPTIONS - -writeEmptyRootPCM - DEPENDENCIES +target_link_libraries(TMVAGui PUBLIC RIO Hist Tree @@ -106,17 +105,6 @@ ROOT_STANDARD_LIBRARY_PACKAGE(TMVAGui Gui HistPainter Core - ${EXTRA_DICT_OPTS} -) - -set(RELATIVE_INC_HEADERS ${TMVAGUI_HEADERS}) -list(TRANSFORM RELATIVE_INC_HEADERS PREPEND inc/) -target_sources(TMVAGui -PRIVATE - FILE_SET private_header_files - TYPE HEADERS - BASE_DIRS inc/ - FILES - ${RELATIVE_INC_HEADERS} - inc/LinkDef.h ) +ROOT_GENERATE_TARGET_DICTIONARY(TMVAGui -writeEmptyRootPCM ${EXTRA_DICT_OPTS}) +ROOT_INSTALL_TARGET(TMVAGui) From c2fa63a2361e217cea98eeba2ddcf4b7add29c34 Mon Sep 17 00:00:00 2001 From: ferdymercury Date: Fri, 6 Nov 2026 19:11:06 +0100 Subject: [PATCH 10/12] rename and allow empty linkdef --- cmake/modules/RootMacros.cmake | 13 ++++++------ roofit/codegen/CMakeLists.txt | 34 ++++++++++++------------------- roofit/codegen/LinkDef.h | 7 ------- roofit/roofitcore/CMakeLists.txt | 2 +- roofit/xroofit/CMakeLists.txt | 2 +- tmva/sofie/CMakeLists.txt | 2 +- tmva/sofie_parsers/CMakeLists.txt | 2 +- tmva/tmva/CMakeLists.txt | 4 ++-- tmva/tmvagui/CMakeLists.txt | 2 +- 9 files changed, 27 insertions(+), 41 deletions(-) delete mode 100644 roofit/codegen/LinkDef.h diff --git a/cmake/modules/RootMacros.cmake b/cmake/modules/RootMacros.cmake index d8c2504744710..71397074e646f 100644 --- a/cmake/modules/RootMacros.cmake +++ b/cmake/modules/RootMacros.cmake @@ -292,7 +292,8 @@ endfunction(ROOT_REPLACE_BUILD_INTERFACE) #---ROOT_GENERATE_TARGET_DICTIONARY( target OPTIONS opt1 opt2 ...) # # Creates the dictionary of a predefined CMake target defined following FILE_SET naming conventions: -# linkDefs for Linkdef.h, HEADERS for public headers +# linkDef for Linkdef*.h, HEADERS for public headers, not4dict_header_files for public headers +# that should be excluded from the rootclign call. # is the CMake target on which header file sets and link libraries have been defined # The output dictionary will be another CMake target called G__, ie with G__ prepended.; # the macro creates (among other files) the dictionary source as G__.cxx @@ -319,13 +320,13 @@ function(ROOT_GENERATE_TARGET_DICTIONARY target options) list(REMOVE_ITEM HeaderList ${NoDictList}) endif() get_target_property(HeaderBaseDirs ${target} HEADER_DIRS) - get_target_property(LinkdefList ${target} HEADER_SET_linkDefs) + get_target_property(LinkdefList ${target} HEADER_SET_linkDef) # get_target_property(ModuleList ${target} CXX_MODULE_SET) needs CMake 3.28 if("HeaderList-NOTFOUND" IN_LIST HeaderList) message(SEND_ERROR "ROOT_GENERATE_TARGET_DICTIONARY: Missing header file set in ${target}") endif() if("LinkdefList-NOTFOUND" IN_LIST LinkdefList) - message(SEND_ERROR "ROOT_GENERATE_TARGET_DICTIONARY: Missing Linkdef file set in ${target}") + set(LinkdefList) endif() # Transform absolute header paths to relative paths based on BASE_DIRS @@ -1391,9 +1392,9 @@ endfunction() #---ROOT_INSTALL_TARGET(target) # Declare the install command for CMake target defined according to the following naming conventions # for FILE_SETS: -# - linkDefs for LinkDef*.h files +# - linkDef for the LinkDef*.h file # - HEADERS for public headers -# - extraHEADERS for public headers purposely excluded from dictionaries +# - not4dict_header_files for public headers purposely excluded from dictionaries #--------------------------------------------------------------------------------------------------- function(ROOT_INSTALL_TARGET target) install(TARGETS ${target} @@ -1409,7 +1410,7 @@ function(ROOT_INSTALL_TARGET target) FILE_SET not4dict_header_files DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} # add /ROOT to make Debian happy - FILE_SET linkDefs + FILE_SET linkDef DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} # add /ROOT to make Debian happy ) export(TARGETS ${target} NAMESPACE ROOT:: diff --git a/roofit/codegen/CMakeLists.txt b/roofit/codegen/CMakeLists.txt index 799c4f26c2ac3..f77fb5e81888d 100644 --- a/roofit/codegen/CMakeLists.txt +++ b/roofit/codegen/CMakeLists.txt @@ -9,29 +9,21 @@ # @author Pere Mato, CERN ############################################################################ -ROOT_STANDARD_LIBRARY_PACKAGE(RooFitCodegen - HEADERS - RooFit/CodegenImpl.h - SOURCES - src/CodegenImpl.cxx - DICTIONARY_OPTIONS - "-writeEmptyRootPCM" - DEPENDENCIES - RooFit - RooFitCore - HistFactory +add_library(RooFitCodegen SHARED) +target_sources(RooFitCodegen +PRIVATE + src/CodegenImpl.cxx +PUBLIC + FILE_SET HEADERS TYPE HEADERS BASE_DIRS inc/ FILES + inc/RooFit/CodegenImpl.h ) - -target_sources( - RooFitCodegen - PRIVATE - FILE_SET private_header_files - TYPE HEADERS - BASE_DIRS inc/ - FILES - # LinkDef.h # empty, not being used by ROOT_STANDARD_LIBRARY_PACKAGE call - inc/RooFit/CodegenImpl.h +target_link_libraries(RooFitCodegen PUBLIC + RooFit + RooFitCore + HistFactory ) +ROOT_GENERATE_TARGET_DICTIONARY(RooFitCodegen "-writeEmptyRootPCM") +ROOT_INSTALL_TARGET(RooFitCodegen) # workaround to include privately headers that are not public, from a "friend" target get_target_property(RooFitCore_Friend_Dirs RooFitCore HEADER_DIRS_friend_header_files) diff --git a/roofit/codegen/LinkDef.h b/roofit/codegen/LinkDef.h deleted file mode 100644 index a18c9b6715f9a..0000000000000 --- a/roofit/codegen/LinkDef.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifdef __CLING__ - -#pragma link off all globals; -#pragma link off all classes; -#pragma link off all functions; - -#endif diff --git a/roofit/roofitcore/CMakeLists.txt b/roofit/roofitcore/CMakeLists.txt index 1b099aaccdf58..8d6ba3af8be4a 100644 --- a/roofit/roofitcore/CMakeLists.txt +++ b/roofit/roofitcore/CMakeLists.txt @@ -495,7 +495,7 @@ PUBLIC inc/RooWorkspace.h inc/RooWorkspaceHandle.h inc/RooWrapperPdf.h - FILE_SET linkDefs TYPE HEADERS BASE_DIRS inc/ FILES + FILE_SET linkDef TYPE HEADERS BASE_DIRS inc/ FILES inc/LinkDef.h ) target_link_libraries(RooFitCore diff --git a/roofit/xroofit/CMakeLists.txt b/roofit/xroofit/CMakeLists.txt index 680aa69c97a5e..c26e3d2a3aa77 100644 --- a/roofit/xroofit/CMakeLists.txt +++ b/roofit/xroofit/CMakeLists.txt @@ -24,7 +24,7 @@ PUBLIC inc/RooFit/xRooFit/Config.h inc/RooBrowser.h inc/XRooFit.h - FILE_SET linkDefs TYPE HEADERS BASE_DIRS inc/ FILES + FILE_SET linkDef TYPE HEADERS BASE_DIRS inc/ FILES inc/LinkDef.h ) target_include_directories(RooFitXRooFit PRIVATE $) # for easening life in .cxx diff --git a/tmva/sofie/CMakeLists.txt b/tmva/sofie/CMakeLists.txt index 7c67dacab10b3..b6f393b9cbd0f 100644 --- a/tmva/sofie/CMakeLists.txt +++ b/tmva/sofie/CMakeLists.txt @@ -81,7 +81,7 @@ PUBLIC FILE_SET HEADERS TYPE HEADERS BASE_DIRS inc/ FILES inc/TMVA/RModel.hxx inc/TMVA/SOFIE_common.hxx - FILE_SET linkDefs TYPE HEADERS BASE_DIRS inc/ FILES + FILE_SET linkDef TYPE HEADERS BASE_DIRS inc/ FILES inc/LinkDef.h ) target_link_libraries(ROOTTMVASofie PRIVATE Core) diff --git a/tmva/sofie_parsers/CMakeLists.txt b/tmva/sofie_parsers/CMakeLists.txt index 683c71df16eeb..5b741f859f81b 100644 --- a/tmva/sofie_parsers/CMakeLists.txt +++ b/tmva/sofie_parsers/CMakeLists.txt @@ -84,7 +84,7 @@ PRIVATE PUBLIC FILE_SET HEADERS TYPE HEADERS BASE_DIRS inc/ FILES inc/TMVA/RModelParser_ONNX.hxx - FILE_SET linkDefs TYPE HEADERS BASE_DIRS inc/ FILES + FILE_SET linkDef TYPE HEADERS BASE_DIRS inc/ FILES inc/LinkDef.h ) target_link_libraries(ROOTTMVASofieParser PUBLIC ROOTTMVASofie PRIVATE Core) diff --git a/tmva/tmva/CMakeLists.txt b/tmva/tmva/CMakeLists.txt index fb1078c8efc21..6623cfe336971 100644 --- a/tmva/tmva/CMakeLists.txt +++ b/tmva/tmva/CMakeLists.txt @@ -374,7 +374,7 @@ PUBLIC inc/TMVA/VarTransformHandler.h inc/TMVA/Version.h inc/TMVA/Volume.h - FILE_SET linkDefs TYPE HEADERS BASE_DIRS inc/ FILES + FILE_SET linkDef TYPE HEADERS BASE_DIRS inc/ FILES inc/LinkDef.h FILE_SET not4dict_header_files TYPE HEADERS BASE_DIRS inc/ FILES inc/LinkDef1.h @@ -470,7 +470,7 @@ PUBLIC inc/TMVA/RInferenceUtils.hxx inc/TMVA/RBDT.hxx inc/TMVA/RSofieReader.hxx - FILE_SET linkDefs TYPE HEADERS BASE_DIRS inc/ FILES + FILE_SET linkDef TYPE HEADERS BASE_DIRS inc/ FILES inc/LinkDefUtils.h ) target_link_libraries(TMVAUtils diff --git a/tmva/tmvagui/CMakeLists.txt b/tmva/tmvagui/CMakeLists.txt index e86084ebf10d8..6065909133871 100644 --- a/tmva/tmvagui/CMakeLists.txt +++ b/tmva/tmvagui/CMakeLists.txt @@ -91,7 +91,7 @@ PUBLIC inc/TMVA/training_history.h inc/TMVA/variables.h inc/TMVA/variablesMultiClass.h - FILE_SET linkDefs TYPE HEADERS BASE_DIRS inc/ FILES + FILE_SET linkDef TYPE HEADERS BASE_DIRS inc/ FILES inc/LinkDef.h ) target_link_libraries(TMVAGui PUBLIC From 306dedceaff5779886e189f20fa45a0d896dbfea Mon Sep 17 00:00:00 2001 From: ferdymercury Date: Fri, 6 Nov 2026 20:51:45 +0100 Subject: [PATCH 11/12] public link core RSpan.hxx is included in one header --- tmva/sofie/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tmva/sofie/CMakeLists.txt b/tmva/sofie/CMakeLists.txt index b6f393b9cbd0f..f8a8917977760 100644 --- a/tmva/sofie/CMakeLists.txt +++ b/tmva/sofie/CMakeLists.txt @@ -84,7 +84,7 @@ PUBLIC FILE_SET linkDef TYPE HEADERS BASE_DIRS inc/ FILES inc/LinkDef.h ) -target_link_libraries(ROOTTMVASofie PRIVATE Core) +target_link_libraries(ROOTTMVASofie PUBLIC Core) ROOT_GENERATE_TARGET_DICTIONARY(ROOTTMVASofie "") ROOT_INSTALL_TARGET(ROOTTMVASofie) From 34c90cc9b6dabc16baaed8c21f013ae178024039 Mon Sep 17 00:00:00 2001 From: ferdymercury Date: Sat, 7 Nov 2026 10:09:27 +0100 Subject: [PATCH 12/12] [tmva] public, not private, but excluded from dict --- tmva/tmva/CMakeLists.txt | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/tmva/tmva/CMakeLists.txt b/tmva/tmva/CMakeLists.txt index 6623cfe336971..95e09ae19c4d6 100644 --- a/tmva/tmva/CMakeLists.txt +++ b/tmva/tmva/CMakeLists.txt @@ -175,8 +175,12 @@ PRIVATE src/DNN/Architectures/Cpu.cxx src/DNN/Architectures/Cpu/CpuBuffer.cxx src/DNN/Architectures/Cpu/CpuMatrix.cxx -PRIVATE - FILE_SET private_header_files TYPE HEADERS BASE_DIRS inc/ FILES +PUBLIC + FILE_SET not4dict_header_files TYPE HEADERS BASE_DIRS inc/ FILES + inc/LinkDef1.h + inc/LinkDef2.h + inc/LinkDef3.h + inc/LinkDef4.h inc/TMVA/NeuralNet.icc inc/TMVA/DNN/Adadelta.h inc/TMVA/DNN/Adagrad.h @@ -209,7 +213,6 @@ PRIVATE inc/TMVA/DNN/Architectures/Cpu/CpuBuffer.h inc/TMVA/DNN/Architectures/Cpu/CpuMatrix.h inc/TMVA/DNN/Architectures/Cpu/CpuTensor.h -PUBLIC FILE_SET HEADERS TYPE HEADERS BASE_DIRS inc/ FILES inc/TMVA/BDTEventWrapper.h inc/TMVA/BinarySearchTree.h @@ -376,11 +379,6 @@ PUBLIC inc/TMVA/Volume.h FILE_SET linkDef TYPE HEADERS BASE_DIRS inc/ FILES inc/LinkDef.h - FILE_SET not4dict_header_files TYPE HEADERS BASE_DIRS inc/ FILES - inc/LinkDef1.h - inc/LinkDef2.h - inc/LinkDef3.h - inc/LinkDef4.h ) if(tmva-gpu) target_sources(TMVA