Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 9 additions & 8 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,8 @@
# For the licensing terms see $ROOTSYS/LICENSE.
# For the list of contributors see $ROOTSYS/README/CREDITS.

cmake_minimum_required(VERSION 3.20 FATAL_ERROR)
if("${CMAKE_VERSION}" VERSION_LESS "3.26.0")
message(WARNING
"Your CMake version is ${CMAKE_VERSION}. Starting with ROOT 6.44, the "
"minimum version of CMake required to build ROOT will become 3.26.0, and "
"using an older CMake will raise an error. After ROOT 6.44, the CMake version "
"may rise to 3.31.0 if an upgrade to LLVM 24 or later is performed.")
elseif("${CMAKE_VERSION}" VERSION_LESS "3.31.0")
cmake_minimum_required(VERSION 3.26 FATAL_ERROR)
if("${CMAKE_VERSION}" VERSION_LESS "3.31.0")
message(STATUS
"Your CMake version is ${CMAKE_VERSION}. After ROOT 6.44, the "
"minimum version of CMake required to build ROOT may become 3.31.0 if "
Expand Down Expand Up @@ -56,6 +50,13 @@ foreach(policy ${policy_new})
endif()
endforeach()

set(policy_old CMP0126)
foreach(policy ${policy_old})
if(POLICY ${policy})
cmake_policy(SET ${policy} OLD)
endif()
endforeach()

include(cmake/modules/CaptureCommandLine.cmake)

project(ROOT)
Expand Down
8 changes: 7 additions & 1 deletion README/ReleaseNotes/v644/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,19 @@ For more information, see:

The following people have contributed to this new version:


## Deprecation and Removal

* `TClassEdit::ESTLType`, `TDictionary::ESTLType`, `TStreamerElement::ESTLType` were redundant enums and have been removed. Please use `ROOT::ESTLType` instead.
* The `ROOT.SetHeuristicMemoryPolicy` method has been removed. This was introduced in 6.40 as a temporary debugging tool to aid users in addressing the changes in memory ownership heuristics.
* A `RooArgSet` cannot be constructed with an implicit conversion from Python `set` anymore.

## Build system

### CMake version

As announced in the 6.42 release notes, the minimum CMake version required for building ROOT 6.44 rose to 3.26. It is the version shipped with RHEL 8.10, which is the oldest Linux distribution supported by this release.
After ROOT 6.44, the minimum may rise to 3.31 if an upgrade to LLVM 24 or later is performed, see the [minimum version of CMake required by LLVM](https://discourse.llvm.org/t/rfc-raising-minimum-required-cmake-version-to-3-31/91086), a warning will be emitted at configure time if your CMake version is older than this.

## Python Interface

## I/O
Expand Down
7 changes: 0 additions & 7 deletions cmake/modules/SearchInstalledSoftware.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -1103,13 +1103,6 @@ if (testing OR testsupport)
message(SEND_ERROR "Missing installation of GTest subcomponent ${LIBNAME}")
endif()
endforeach()
# Starting from cmake 3.23, the GTest targets will have stable names.
# ROOT was updated to use those, but for older CMake versions, we have to declare the aliases:
foreach(LIBNAME gtest_main gmock_main gtest gmock)
if(NOT TARGET GTest::${LIBNAME} AND TARGET ${LIBNAME})
add_library(GTest::${LIBNAME} ALIAS ${LIBNAME})
endif()
endforeach()
endif()

#------------------------------------------------------------------------------------
Expand Down
22 changes: 10 additions & 12 deletions core/base/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -206,18 +206,16 @@ set_property(TARGET Core APPEND PROPERTY DICT_HEADERS ${BASE_HEADERS})

target_sources(Core PRIVATE ${BASE_SOURCES})

if(NOT CMAKE_VERSION VERSION_LESS "3.23.0") # https://discourse.cmake.org/t/file-set-xyz-is-listed-in-interface-file-sets-of-w-but-has-not-been-exported/9131/3
target_sources(
Core
PRIVATE
FILE_SET private_header_files
TYPE HEADERS
BASE_DIRS inc/ src/
FILES
${RELATIVE_BASE_INC_HEADERS}
src/TListOfTypes.h
)
endif()
target_sources(
Core
PRIVATE
FILE_SET private_header_files
TYPE HEADERS
BASE_DIRS inc/ src/
FILES
${RELATIVE_BASE_INC_HEADERS}
src/TListOfTypes.h
)

target_include_directories(Core PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/inc>
Expand Down
58 changes: 27 additions & 31 deletions roofit/batchcompute/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -117,30 +117,28 @@ set(shared_object_sources src/RooBatchCompute.cxx src/ComputeFunctions.cxx)
ROOT_LINKER_LIBRARY(RooBatchCompute_GENERIC ${shared_object_sources} TYPE SHARED DEPENDENCIES RooBatchCompute)
target_compile_options(RooBatchCompute_GENERIC PRIVATE ${common-flags} -DRF_ARCH=GENERIC)

if(NOT CMAKE_VERSION VERSION_LESS "3.23.0")
target_sources(
RooBatchCompute
target_sources(
RooBatchCompute
PRIVATE
FILE_SET private_header_files
TYPE HEADERS
BASE_DIRS res/
FILES
res/RooBatchCompute.h
)
target_sources(
RooBatchCompute_GENERIC
PRIVATE
FILE_SET private_header_files
TYPE HEADERS
BASE_DIRS res/
BASE_DIRS src/ res/
FILES
res/RooBatchCompute.h
)
target_sources(
RooBatchCompute_GENERIC
PRIVATE
FILE_SET private_header_files
TYPE HEADERS
BASE_DIRS src/ res/
FILES
res/RooBatchComputeTypes.h
res/RooHeterogeneousMath.h
res/RooNaNPacker.h
src/Batches.h
src/RooVDTHeaders.h
)
endif()
res/RooBatchComputeTypes.h
res/RooHeterogeneousMath.h
res/RooNaNPacker.h
src/Batches.h
src/RooVDTHeaders.h
)

# Windows platform and ICC compiler need special code and testing, thus the feature has not been implemented yet for these.
if (ROOT_PLATFORM MATCHES "linux|macosx" AND CMAKE_SYSTEM_PROCESSOR MATCHES x86_64 AND CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
Expand Down Expand Up @@ -190,17 +188,15 @@ if (cuda)
endif()

target_compile_options(RooBatchCompute_CUDA PRIVATE -lineinfo --expt-relaxed-constexpr)
if(NOT CMAKE_VERSION VERSION_LESS "3.23.0")
target_sources(
RooBatchCompute_CUDA
PRIVATE
FILE_SET private_header_files
TYPE HEADERS
BASE_DIRS src/
FILES
src/CudaInterface.h
)
endif()
target_sources(
RooBatchCompute_CUDA
PRIVATE
FILE_SET private_header_files
TYPE HEADERS
BASE_DIRS src/
FILES
src/CudaInterface.h
)
endif()

if(vdt OR builtin_vdt)
Expand Down
22 changes: 10 additions & 12 deletions roofit/codegen/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,15 @@ ROOT_STANDARD_LIBRARY_PACKAGE(RooFitCodegen
HistFactory
)

if(NOT CMAKE_VERSION VERSION_LESS "3.23.0")
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
)
endif()
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
)

ROOT_ADD_TEST_SUBDIRECTORY(test)
24 changes: 11 additions & 13 deletions roofit/histfactory/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -99,18 +99,16 @@ install(FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${prepareHistFactory_script}

set(RELATIVE_INC_HEADERS ${HISTFACTORY_HEADERS} ${HISTFACTORY_XML_HEADERS})
list(TRANSFORM RELATIVE_INC_HEADERS PREPEND inc/)
if(NOT CMAKE_VERSION VERSION_LESS "3.23.0")
target_sources(
HistFactory
PRIVATE
FILE_SET private_header_files
TYPE HEADERS
BASE_DIRS inc/
FILES
${RELATIVE_INC_HEADERS}
inc/LinkDef.h # seemingly not being used by ROOT_STANDARD_LIBRARY_PACKAGE call
inc/HFMsgService.h # not part of list above
)
endif()
target_sources(
HistFactory
PRIVATE
FILE_SET private_header_files
TYPE HEADERS
BASE_DIRS inc/
FILES
${RELATIVE_INC_HEADERS}
inc/LinkDef.h # seemingly not being used by ROOT_STANDARD_LIBRARY_PACKAGE call
inc/HFMsgService.h # not part of list above
)

ROOT_ADD_TEST_SUBDIRECTORY(test)
28 changes: 13 additions & 15 deletions roofit/hs3/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -39,20 +39,18 @@ target_link_libraries(RooFitHS3 PRIVATE nlohmann_json::nlohmann_json)

set(RELATIVE_INC_HEADERS ${ROOFITHS3_HEADERS})
list(TRANSFORM RELATIVE_INC_HEADERS PREPEND inc/)
if(NOT CMAKE_VERSION VERSION_LESS "3.23.0")
target_sources(
RooFitHS3
PRIVATE
FILE_SET private_header_files
TYPE HEADERS
BASE_DIRS inc/ src/
FILES
${RELATIVE_INC_HEADERS}
# LinkDef.h # seemingly not being used by ROOT_STANDARD_LIBRARY_PACKAGE call
src/Domains.h
src/JSONIOUtils.h
src/static_execute.h
)
endif()
target_sources(
RooFitHS3
PRIVATE
FILE_SET private_header_files
TYPE HEADERS
BASE_DIRS inc/ src/
FILES
${RELATIVE_INC_HEADERS}
# LinkDef.h # seemingly not being used by ROOT_STANDARD_LIBRARY_PACKAGE call
src/Domains.h
src/JSONIOUtils.h
src/static_execute.h
)

ROOT_ADD_TEST_SUBDIRECTORY(test)
52 changes: 25 additions & 27 deletions roofit/multiprocess/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -29,33 +29,31 @@ target_include_directories(RooFitMultiProcess

target_link_libraries(RooFitMultiProcess PRIVATE nlohmann_json::nlohmann_json)

if(NOT CMAKE_VERSION VERSION_LESS "3.23.0")
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
)
endif()
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
)

ROOT_ADD_TEST_SUBDIRECTORY(test)

Expand Down
24 changes: 11 additions & 13 deletions roofit/roofit/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -175,18 +175,16 @@ endif()

set(RELATIVE_INC_HEADERS ${ROOFIT_HEADERS})
list(TRANSFORM RELATIVE_INC_HEADERS PREPEND inc/)
if(NOT CMAKE_VERSION VERSION_LESS "3.23.0")
target_sources(
RooFit
PRIVATE
FILE_SET private_header_files
TYPE HEADERS
BASE_DIRS inc/ src/
FILES
${RELATIVE_INC_HEADERS}
inc/LinkDef1.h
src/RooFit/Detail/Algorithms.h
)
endif()
target_sources(
RooFit
PRIVATE
FILE_SET private_header_files
TYPE HEADERS
BASE_DIRS inc/ src/
FILES
${RELATIVE_INC_HEADERS}
inc/LinkDef1.h
src/RooFit/Detail/Algorithms.h
)

ROOT_ADD_TEST_SUBDIRECTORY(test)
Loading
Loading