summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Nicholas Swatman <stephen@v25.nl>2024-08-23 15:09:29 +0200
committerGitHub <noreply@github.com>2024-08-23 07:09:29 -0600
commitf96e8757b8c30ea3cff7732c03a908aeafdcfd29 (patch)
tree414968fed1d62425c267f73b5d900d68b7b2ea8d
parentb8cbbb8e2ecd5c67583f6e45d4b09bf82ee9c844 (diff)
downloadspack-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.py63
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"),
]