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>
This commit is contained in:
parent
b8cbbb8e2e
commit
f96e8757b8
@ -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 @@ def plugin_cmake_variant(plugin_name, spack_variant):
|
||||
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"),
|
||||
]
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user