summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--var/spack/repos/builtin/packages/fastjet/package.py38
-rw-r--r--var/spack/repos/builtin/packages/rivet/package.py2
2 files changed, 38 insertions, 2 deletions
diff --git a/var/spack/repos/builtin/packages/fastjet/package.py b/var/spack/repos/builtin/packages/fastjet/package.py
index d39e12cc25..b90442f0c2 100644
--- a/var/spack/repos/builtin/packages/fastjet/package.py
+++ b/var/spack/repos/builtin/packages/fastjet/package.py
@@ -72,6 +72,28 @@ class Fastjet(AutotoolsPackage):
)
variant("atlas", default=False, description="Patch to make random generator thread_local")
+ available_plugins = (
+ conditional("atlascone", when="@2.4.0:"),
+ conditional("cdfcones", when="@2.1.0:"),
+ conditional("cmsiterativecone", when="@2.4.0:"),
+ conditional("d0runicone", when="@3.0.0:"),
+ conditional("d0runiicone", when="@2.4.0:"),
+ conditional("eecambridge", when="@2.4.0:"),
+ conditional("gridjet", when="@3.0.0:"),
+ conditional("jade", when="@2.4.0:"),
+ conditional("nesteddefs", when="@2.4.0:"),
+ conditional("pxcone", when="@2.1.0:"),
+ conditional("siscone", when="@2.1.0:"),
+ conditional("trackjet", when="@2.4.0:"),
+ )
+ variant(
+ "plugins",
+ multi=True,
+ values=("all", "cxx") + available_plugins,
+ default="all",
+ description="List of plugins to enable, or 'cxx' or 'all'",
+ )
+
patch("atlas.patch", when="@:3.3 +atlas", level=0)
patch(
"https://gitlab.cern.ch/sft/lcgcmake/-/raw/23c82f269b8e5df0190e20b7fbe06db16b24d667/externals/patches/fastjet-3.4.1.patch",
@@ -81,7 +103,21 @@ class Fastjet(AutotoolsPackage):
)
def configure_args(self):
- extra_args = ["--enable-allplugins"]
+ extra_args = []
+ plugins = self.spec.variants["plugins"].value
+ if "all" in plugins:
+ extra_args += ["--enable-allplugins"]
+ elif "cxx" in plugins:
+ extra_args += ["--enable-allcxxplugins"]
+ else:
+ for plugin in self.available_plugins:
+ # conditional returns an iterable _ConditionalVariantValues
+ for v in plugin:
+ # this version does not support this plugin
+ if not self.spec.satisfies(v.when):
+ continue
+ enabled = v.value in plugins
+ extra_args += [f"--{'enable' if enabled else 'disable'}-{v.value}"]
extra_args += self.enable_or_disable("shared")
extra_args += self.enable_or_disable("auto-ptr")
if self.spec.variants["thread-safety"].value == "limited":
diff --git a/var/spack/repos/builtin/packages/rivet/package.py b/var/spack/repos/builtin/packages/rivet/package.py
index d055f7d8a4..892d244e9f 100644
--- a/var/spack/repos/builtin/packages/rivet/package.py
+++ b/var/spack/repos/builtin/packages/rivet/package.py
@@ -54,7 +54,7 @@ class Rivet(AutotoolsPackage):
depends_on("hepmc", when="hepmc=2")
depends_on("hepmc3", when="hepmc=3")
- depends_on("fastjet")
+ depends_on("fastjet plugins=cxx")
depends_on("fastjet@3.4.0:", when="@3.1.7:")
depends_on("fjcontrib")
depends_on("python", type=("build", "run"))