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
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ asan=ON
ccache=ON
builtin_civetweb=ON
builtin_vdt=ON
daos_mock=ON
fail-on-missing=ON
minimal=ON
roottest=ON
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
ccache=ON
builtin_civetweb=ON
builtin_vdt=ON
daos_mock=ON
fail-on-missing=ON
minimal=ON
roottest=ON
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/root-ci-config/buildconfig/global.txt
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ coverage=OFF
cuda=OFF
curl=ON
daos=OFF
daos_mock=ON
dataframe=ON
davix=ON
dcache=OFF
Expand Down Expand Up @@ -81,6 +82,7 @@ test_distrdf_pyspark=ON
test_roofit_hs3testsuite=ON
test_tmva_sofie=ON
testing=ON
testsupport=OFF
tmva-cpu=ON
tmva-gpu=OFF
tmva-cudnn=OFF
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ builtin_xxhash=ON
builtin_zlib=ON
builtin_zstd=ON
ccache=OFF
daos_mock=OFF
davix=OFF
fortran=OFF
llvm13_broken_tests=OFF
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/root-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@
INCREMENTAL: ${{ !contains(github.event.pull_request.labels.*.name, 'clean build') && !matrix.platform == 'mac15' && !matrix.platform == 'mac26'}}
GITHUB_PR_ORIGIN: ${{ github.event.pull_request.head.repo.clone_url }}
OVERRIDES: ${{ join( matrix.overrides, ' ') }}
run: |

Check failure on line 161 in .github/workflows/root-ci.yml

View workflow job for this annotation

GitHub Actions / lint-action-files

"github.event.pull_request.head.ref" is potentially untrusted. avoid using it directly in inline scripts. instead, pass it through an environment variable. see https://docs.github.com/en/actions/reference/security/secure-use#good-practices-for-mitigating-script-injection-attacks for more details
[ -d "${VIRTUAL_ENV_DIR}" ] && source ${VIRTUAL_ENV_DIR}/bin/activate
echo "Python is now $(which python3) $(python3 --version)"
src/.github/workflows/root-ci-config/build_root.py \
Expand Down Expand Up @@ -312,7 +312,7 @@
INCREMENTAL: ${{ !contains(github.event.pull_request.labels.*.name, 'clean build') }}
GITHUB_PR_ORIGIN: ${{ github.event.pull_request.head.repo.clone_url }}
shell: cmd
run: "C:\\setenv.bat ${{ matrix.target_arch }} &&

Check failure on line 315 in .github/workflows/root-ci.yml

View workflow job for this annotation

GitHub Actions / lint-action-files

"github.event.pull_request.head.ref" is potentially untrusted. avoid using it directly in inline scripts. instead, pass it through an environment variable. see https://docs.github.com/en/actions/reference/security/secure-use#good-practices-for-mitigating-script-injection-attacks for more details
python .github/workflows/root-ci-config/build_root.py
--buildtype ${{ matrix.config }}
--platform windows10
Expand Down Expand Up @@ -418,7 +418,7 @@
overrides: ["CMAKE_BUILD_TYPE=Debug"]
- image: alma10
- image: ubuntu22
overrides: ["imt=Off", "CMAKE_BUILD_TYPE=Debug"]
overrides: ["imt=Off", "tmva-cpu=OFF", "CMAKE_BUILD_TYPE=Debug"]
- image: ubuntu2404
overrides: ["CMAKE_BUILD_TYPE=Debug"]
- image: ubuntu2604
Expand Down Expand Up @@ -479,7 +479,7 @@
- self-hosted
- linux
- ${{ matrix.architecture == null && 'x64' || matrix.architecture }}
- ${{ matrix.extra-runs-on == null && 'cpu' || matrix.extra-runs-on }}

Check failure on line 482 in .github/workflows/root-ci.yml

View workflow job for this annotation

GitHub Actions / lint-action-files

property "extra-runs-on" is not defined in object type {architecture: string; image: string; is_special: bool; overrides: array<string>; platform_config: string; property: string; python_venv: string}

Check failure on line 482 in .github/workflows/root-ci.yml

View workflow job for this annotation

GitHub Actions / lint-action-files

property "extra-runs-on" is not defined in object type {architecture: string; image: string; is_special: bool; overrides: array<string>; platform_config: string; property: string; python_venv: string}

name: |
${{ matrix.image }} ${{ matrix.property }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/root-docs-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ jobs:

- name: Apply option overrides
env:
OVERRIDES: "testing=Off roottest=Off"
OVERRIDES: "testing=Off", "roottest=Off", "daos_mock=Off"
CONFIGFILE: '.github/workflows/root-ci-config/buildconfig/alma9.txt'
shell: bash
run: |
Expand Down
1 change: 1 addition & 0 deletions README/ReleaseNotes/v642/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ The following people have contributed to this new version:
Note that `all=ON` enables several of these options, so building with `-Dall=ON` now requires all of their dependencies to be installed, or the unwanted ones to be disabled explicitly.
Build options that are enabled by default, such as `pyroot`, `opengl`, `xml`, `sqlite`, `davix`, `curl`, `tmva-cpu` or `tpython` are not affected: they are still disabled automatically when their dependencies are missing.
* The option `fail-on-missing=OFF` will no longer be honored for CMake ROOT build options that have easy-to-install dependencies (e.g. via homebrew or apt-get), such as those required by options `cfitsio`, `civetweb`, `fftw3`, `imt`, `mathmore`, `nlohmann_json`, `tmva-cpu`, `unuran`, `vdt` or `xrootd`. Before, associated `builtin_option` was automatically turned ON (or the opt-in feature turned to OFF), now, user has to install system package or manually set `builtin_option` to `ON` or opt-in feature to `OFF`.
* Irrespective of the value of `fail-on-missing`, all ROOT build options that are contradictory or are missing a dependency will now raise an error rather than letting the build system to automatically turn features OFF or ON. A helpful error message will be printed stating what packages need to be installed or what build flags need to be changed.
* The method `RooRealVar::removeRange()` and the corresponding method in `RooErrorVar` that were deprecated in ROOT 6.40 are now removed.
* The overloads of `RooAbsReal::createChi2()` and `RooAbsReal::chi2FitTo()` that take unbinned **RooDataSet** data objects were deprecated in ROOT 6.40 and are now removed.
* The **RooStats::HybridPlot** class and the related **HybridResult::GetPlot** method were deprecated in ROOT 6.40 and are now removed.
Expand Down
2 changes: 2 additions & 0 deletions cmake/modules/CheckCompiler.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@ if(fortran)
endif()
if(NOT CMAKE_Fortran_COMPILER)
message(SEND_ERROR "No Fortran compiler found. Please make sure it's installed, or disable ROOT's Fortran features with '-Dfortran=OFF'")
list(APPEND MISSING_PACKAGES 'gfortran')
list(APPEND HOTFIX_BUILD_FLAGS -Dfortran=OFF)
endif()
else()
set(CMAKE_Fortran_COMPILER CMAKE_Fortran_COMPILER-NOTFOUND)
Expand Down
53 changes: 29 additions & 24 deletions cmake/modules/RootBuildOptions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@ ROOT_BUILD_OPTION(coverage OFF "Enable compile flags for coverage testing")
ROOT_BUILD_OPTION(cuda OFF "Enable support for CUDA (requires CUDA toolkit >= 7.5)")
ROOT_BUILD_OPTION(curl ON "Enable support for HTTP(S) through libcurl")
ROOT_BUILD_OPTION(daos OFF "Enable RNTuple support for Intel DAOS")
ROOT_BUILD_OPTION(daos_mock OFF "Use libdaos_mock for RNTuple, use only for testing. Mutually exclusive with daos")
ROOT_BUILD_OPTION(dataframe ON "Enable ROOT RDataFrame")
ROOT_BUILD_OPTION(davix ON "Enable support for Davix (HTTP/WebDAV access)")
ROOT_BUILD_OPTION(dcache OFF "Enable support for dCache (requires libdcap from DESY)")
Expand Down Expand Up @@ -155,14 +156,14 @@ ROOT_BUILD_OPTION(roofit_multiprocess OFF "Build RooFit::MultiProcess and multi-
ROOT_BUILD_OPTION(root7 ON "Build ROOT 7 experimental components of ROOT")
ROOT_BUILD_OPTION(runtime_cxxmodules ON "Enable runtime support for C++ modules")
ROOT_BUILD_OPTION(shadowpw OFF "Enable support for shadow passwords")
ROOT_BUILD_OPTION(shared ON "Use shared 3rd party libraries if possible")
ROOT_BUILD_OPTION(shared ON "Use shared 3rd party libraries if possible (OFF not supported on Windows)")
ROOT_BUILD_OPTION(soversion OFF "Set version number in sonames for shared libraries. Not recommended, as the pcm and rootmap files do not (yet) support versioning and always point to the non-versioned shared libraries.")
ROOT_BUILD_OPTION(spectrum ON "Enable support for TSpectrum")
ROOT_BUILD_OPTION(sqlite ON "Enable support for SQLite")
ROOT_BUILD_OPTION(ssl ON "Enable support for SSL encryption via OpenSSL")
ROOT_BUILD_OPTION(test_distrdf_dask OFF "Enable distributed RDataFrame tests that use dask")
ROOT_BUILD_OPTION(test_distrdf_pyspark OFF "Enable distributed RDataFrame tests that use pyspark")
ROOT_BUILD_OPTION(testsupport OFF "Build the ROOT::TestSupport library required to use all features of ROOT_ADD_GTEST and similar macros (requires gtest at build time)")
ROOT_BUILD_OPTION(testsupport OFF "Build the ROOT::TestSupport library required to use ROOT_ADD_GTEST and similar macros by downstream users (requires gtest at build time). Even if OFF, this library is still built if testing=ON")
ROOT_BUILD_OPTION(thisroot_scripts ON "Build scripts like thisroot.{sh, fish, etc.} that set environment paths for using ROOT. Usually not needed when building ROOT for the distribution with a package manager.")
ROOT_BUILD_OPTION(tmva ON "Build TMVA multi variate analysis library")
ROOT_BUILD_OPTION(tmva-cpu ON "Build TMVA with CPU support for deep learning (requires BLAS)")
Expand All @@ -188,11 +189,11 @@ option(clingtest "Enable cling tests (Note: that this makes llvm/clang symbols v
option(fail-on-missing "Fail at configure time if a required package cannot be found" OFF)
option(gminimal "Enable only required options by default, but include X11/Cocoa" OFF)
option(minimal "Enable only required options by default" OFF)
option(rootbench "Build rootbench if rootbench exists in root or if it is a sibling directory (implies testing=ON)" OFF)
option(roottest "Build roottest (implies testing=ON)" OFF)
option(rootbench "Build rootbench if rootbench exists in root or if it is a sibling directory (requires testing=ON)" OFF)
option(roottest "Build roottest (requires testing=ON)" OFF)
option(test_roofit_hs3testsuite "Setup and use the HS3 conformance test suite (requires network)" OFF)
option(test_tmva_sofie "Enable SOFIE tests (requires BLAS library that can be found with CMake's FindBLAS)" ON)
option(testing "Enable testing with CTest" OFF)
option(testing "Enable testing with CTest and GTest" OFF)
option(asan "Build ROOT with address sanitizer instrumentation (see core/sanitizer for details)" OFF)
option(_wheel_build "ROOT is being packaged as a wheel, do not install .dist-info metadata" OFF)

Expand Down Expand Up @@ -332,45 +333,49 @@ endif()
#---Define at moment the options with the selected default values------------------------------
ROOT_APPLY_OPTIONS()

#---roottest option implies testing
if(roottest OR rootbench)
set(testing ON CACHE BOOL "" FORCE)
#---roottest/rootbench options require testing
if (roottest AND NOT testing)
message(SEND_ERROR "-Droottest=ON requires -Dtesting=ON")
list(APPEND HOTFIX_BUILD_FLAGS -Dtesting=ON)
endif()

#---testing implies testsupport
if(testing)
set(testsupport ON CACHE BOOL "" FORCE)
endif()

#---ensure that the cuda option is sound
if(cuda AND NOT CMAKE_CUDA_COMPILER)
message(FATAL_ERROR "Option cuda=On, but CMAKE_CUDA_COMPILER='${CMAKE_CUDA_COMPILER}'")
if (rootbench AND NOT testing)
message(SEND_ERROR "-Drootbench=ON requires -Dtesting=ON")
list(APPEND HOTFIX_BUILD_FLAGS -Dtesting=ON)
endif()

#---running HS3 test suite requires both testing and pyroot, but testing globally disables tests
if(testing AND test_roofit_hs3testsuite AND NOT pyroot)
message(FATAL_ERROR "-Dtest_roofit_hs3testsuite=ON requires both -Dtesting=ON and -Dpyroot=ON)")
message(SEND_ERROR "-Dtest_roofit_hs3testsuite=ON requires both -Dtesting=ON and -Dpyroot=ON)")
list(APPEND HOTFIX_BUILD_FLAGS -Dpyroot=ON)
endif()

if(unfold AND NOT xml)
message(STATUS "Cannot enable unfold without enabling xml: unfold is disabled.")
set(unfold OFF)
message(SEND_ERROR "Cannot enable unfold without enabling -Dxml=ON.")
list(APPEND HOTFIX_BUILD_FLAGS -Dxml=ON)
endif()

if (NOT builtin_cling)
if (builtin_clang OR builtin_llvm)
message(WARNING "No need to build internal llvm or clang. Consider turning builtin_clang=Off and builtin_llvm=Off")
list(APPEND HOTFIX_BUILD_FLAGS -Dbuiltin_clang=OFF)
list(APPEND HOTFIX_BUILD_FLAGS -Dbuiltin_llvm=OFF)
endif()
endif(NOT builtin_cling)

if(NOT http AND webgui)
message(WARNING "Cannot build WebGui components without HTTP: webgui is disabled.")
set(webgui OFF)
message(SEND_ERROR "Cannot build WebGui components without HTTP: enable -Dhttp=ON or set -Dwebgui=OFF.")
list(APPEND HOTFIX_BUILD_FLAGS -Dwebgui=OFF)
endif()

if(NOT webgui)
set(qt6web OFF CACHE BOOL "Disabled because webgui not build" FORCE)
set(cefweb OFF CACHE BOOL "Disabled because webgui not build" FORCE)
if(qt6web)
message(SEND_ERROR "Cannot build qt6web without webgui and http: enable -Dwebgui=ON -Dhttp=ON or set -Dqt6web=OFF.")
list(APPEND HOTFIX_BUILD_FLAGS -Dqt6web=OFF)
endif()
if(qt6web)
message(SEND_ERROR "Cannot build cefweb without webgui and http: enable -Dwebgui=ON -Dhttp=ON or set -Dcefweb=OFF.")
list(APPEND HOTFIX_BUILD_FLAGS -Dcefweb=OFF)
endif()
endif()

#---Removed options------------------------------------------------------------
Expand Down
Loading
Loading