diff options
author | Stephen Nicholas Swatman <stephen@v25.nl> | 2024-08-23 15:09:29 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-23 07:09:29 -0600 |
commit | f96e8757b8c30ea3cff7732c03a908aeafdcfd29 (patch) | |
tree | 414968fed1d62425c267f73b5d900d68b7b2ea8d | |
parent | b8cbbb8e2ecd5c67583f6e45d4b09bf82ee9c844 (diff) | |
download | spack-f96e8757b8c30ea3cff7732c03a908aeafdcfd29.tar.gz spack-f96e8757b8c30ea3cff7732c03a908aeafdcfd29.tar.bz2 spack-f96e8757b8c30ea3cff7732c03a908aeafdcfd29.tar.xz spack-f96e8757b8c30ea3cff7732c03a908aeafdcfd29.zip |
acts: add v36.0.0, v36.1.0 and fixes (#45874)
* acts: add v36.0.0, v36.1.0 and fixes
This commit makes several changes to the Acts repository, namely:
1. It adds versions 36.0.0 and 36.1.0.
2. It adds the traccc plugin and related dependencies.
3. It updates the version requirements of some dependencies.
4. It adds the Geant4 module of GeoModel.
5. It updates the C++ standard requirement.
6. It adds a new variant determining the scalar type to use.
This commit supercedes #45851. Thanks @jmcarcell for the version
updates; I have added you as co-author.
Co-authored-by: Juan Miguel Carceller <22276694+jmcarcell@users.noreply.github.com>
* Updates
* alphabetic cmake args
---------
Co-authored-by: Juan Miguel Carceller <22276694+jmcarcell@users.noreply.github.com>
-rw-r--r-- | var/spack/repos/builtin/packages/acts/package.py | 63 |
1 files changed, 43 insertions, 20 deletions
diff --git a/var/spack/repos/builtin/packages/acts/package.py b/var/spack/repos/builtin/packages/acts/package.py index bcb4465c0a..a11e3d5638 100644 --- a/var/spack/repos/builtin/packages/acts/package.py +++ b/var/spack/repos/builtin/packages/acts/package.py @@ -4,7 +4,6 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack.package import * -from spack.variant import _ConditionalVariantValues class Acts(CMakePackage, CudaPackage): @@ -33,7 +32,7 @@ class Acts(CMakePackage, CudaPackage): homepage = "https://acts.web.cern.ch/ACTS/" git = "https://github.com/acts-project/acts.git" list_url = "https://github.com/acts-project/acts/releases/" - maintainers("wdconinc") + maintainers("wdconinc", "stephenswat") tags = ["hep"] @@ -42,6 +41,8 @@ class Acts(CMakePackage, CudaPackage): # Supported Acts versions version("main", branch="main") version("master", branch="main", deprecated=True) # For compatibility + version("36.1.0", commit="3f19d1a0eec1d11937d66d0ef603f0b25b9b4e96", submodules=True) + version("36.0.0", commit="6eca77c45b136861272694edbb61bb77200948a5", submodules=True) version("35.2.0", commit="b3b09f46d064c43050dd3d21cdf51d7a412134fc", submodules=True) version("35.1.0", commit="9dfb47b8edeb8b9c75115462079bcb003dd3f031", submodules=True) version("35.0.0", commit="352b423ec31934f825deb9897780246d60ffc44e", submodules=True) @@ -186,14 +187,18 @@ class Acts(CMakePackage, CudaPackage): variant( "benchmarks", default=False, description="Build the performance benchmarks", when="@0.16:" ) - _cxxstd_values = (conditional("14", when="@:0.8.1"), "17", conditional("20", when="@24:")) - variant( - "cxxstd", - default="17", - values=_cxxstd_values, - multi=False, - description="Use the specified C++ standard when building.", + _cxxstd_values = ( + conditional("14", when="@:0.8.1"), + conditional("17", when="@:35"), + conditional("20", when="@24:"), ) + _cxxstd_common = { + "values": _cxxstd_values, + "multi": False, + "description": "Use the specified C++ standard when building.", + } + variant("cxxstd", default="17", when="@:35", **_cxxstd_common) + variant("cxxstd", default="20", when="@36:", **_cxxstd_common) variant( "examples", default=False, @@ -219,6 +224,15 @@ class Acts(CMakePackage, CudaPackage): default="MAX", description="Log level above which examples should auto-crash", ) + _scalar_values = ["float", "double"] + variant( + "scalar", + default="double", + values=_scalar_values, + multi=False, + sticky=True, + description="Scalar type to use throughout Acts.", + ) # Variants that enable / disable Acts plugins variant("alignment", default=False, description="Build the alignment package", when="@13:") @@ -271,6 +285,7 @@ class Acts(CMakePackage, CudaPackage): "tgeo", default=False, description="Build the TGeo plugin", when="@:34 +identification" ) variant("tgeo", default=False, description="Build the TGeo plugin", when="@35:") + variant("traccc", default=False, description="Build the Traccc plugin", when="@35.1:") # Variants that only affect Acts examples for now variant( @@ -329,21 +344,28 @@ class Acts(CMakePackage, CudaPackage): depends_on("actsvg@0.4.35:", when="@28:") depends_on("actsvg@0.4.39:", when="@32:") depends_on("actsvg@0.4.40:", when="@32.1:") + depends_on("acts-algebra-plugins @0.24:", when="+traccc") depends_on("autodiff @0.6:", when="@17: +autodiff") depends_on("autodiff @0.5.11:0.5.99", when="@1.2:16 +autodiff") depends_on("boost @1.62:1.69 +program_options +test", when="@:0.10.3") depends_on("boost @1.71: +filesystem +program_options +test", when="@0.10.4:") depends_on("cmake @3.14:", type="build") + depends_on("covfie @0.10:", when="+traccc") + depends_on("cuda @12:", when="+traccc") depends_on("dd4hep @1.11: +dddetectors +ddrec", when="+dd4hep") depends_on("dd4hep @1.21: +dddetectors +ddrec", when="@20: +dd4hep") depends_on("dd4hep +ddg4", when="+dd4hep +geant4 +examples") + depends_on("detray @0.72.1:", when="+traccc") depends_on("edm4hep @0.4.1:", when="+edm4hep") depends_on("edm4hep @0.7:", when="@25: +edm4hep") depends_on("eigen @3.3.7:", when="@15.1:") depends_on("eigen @3.3.7:3.3.99", when="@:15.0") + depends_on("eigen @3.4:", when="@36.1:") depends_on("geant4", when="+fatras_geant4") depends_on("geant4", when="+geant4") + depends_on("geomodel +geomodelg4", when="+geomodel") depends_on("geomodel @4.6.0:", when="+geomodel") + depends_on("geomodel @6.3.0:", when="+geomodel @36.1:") depends_on("git-lfs", when="@12.0.0:") depends_on("gperftools", when="+profilecpu") depends_on("gperftools", when="+profilemem") @@ -364,6 +386,7 @@ class Acts(CMakePackage, CudaPackage): depends_on("py-onnxruntime@:1.12", when="+onnx @:23.2") depends_on("py-onnxruntime@1.12:", when="+onnx @23.3:") depends_on("py-pybind11 @2.6.2:", when="+python @18:") + depends_on("py-pybind11 @2.13.1:", when="+python @36:") depends_on("py-pytest", when="+python +unit_tests") with when("+tgeo"): @@ -375,24 +398,22 @@ class Acts(CMakePackage, CudaPackage): # ACTS imposes requirements on the C++ standard values used by ROOT for _cxxstd in _cxxstd_values: - if isinstance(_cxxstd, _ConditionalVariantValues): - for _v in _cxxstd: - depends_on( - f"geant4 cxxstd={_v.value}", when=f"cxxstd={_v.value} {_v.when} +geant4" - ) - depends_on( - f"geant4 cxxstd={_v.value}", when=f"cxxstd={_v.value} {_v.when} +fatras_geant4" - ) - depends_on(f"root cxxstd={_v.value}", when=f"cxxstd={_v.value} {_v.when} +tgeo") - else: + for _v in _cxxstd: depends_on(f"geant4 cxxstd={_v.value}", when=f"cxxstd={_v.value} {_v.when} +geant4") depends_on( f"geant4 cxxstd={_v.value}", when=f"cxxstd={_v.value} {_v.when} +fatras_geant4" ) - depends_on(f"root cxxstd={_cxxstd}", when=f"cxxstd={_cxxstd} +tgeo") + depends_on(f"root cxxstd={_v.value}", when=f"cxxstd={_v.value} {_v.when} +tgeo") + + # When the traccc plugin is enabled, detray should match the Acts scalars + with when("+traccc"): + for _scalar in _scalar_values: + depends_on(f"detray scalar={_scalar}", when=f"scalar={_scalar}") # ACTS has been using C++17 for a while, which precludes use of old GCC conflicts("%gcc@:7", when="@0.23:") + # When using C++20, disable gcc 9 and lower. + conflicts("%gcc@:9", when="cxxstd=20") def cmake_args(self): spec = self.spec @@ -458,10 +479,12 @@ class Acts(CMakePackage, CudaPackage): plugin_cmake_variant("PODIO", "podio"), example_cmake_variant("PYTHIA8", "pythia8"), example_cmake_variant("PYTHON_BINDINGS", "python"), + self.define_from_variant("ACTS_CUSTOM_SCALARTYPE", "scalar"), plugin_cmake_variant("ACTSVG", "svg"), plugin_cmake_variant("SYCL", "sycl"), plugin_cmake_variant("TGEO", "tgeo"), example_cmake_variant("TBB", "tbb", "USE"), + plugin_cmake_variant("TRACCC", "traccc"), cmake_variant(unit_tests_label, "unit_tests"), ] |