edm4hep: Add json variant for newer versions (#47180)

* edm4hep: Add json variant for newer versions

Explicit option has been added to EDM4hep so we now expose it via a
variant as well. We keep the old behavior where we unconditionally
depended on nlohmann-json and implicitly built JSON support if we could
detect it cmake stage

* Fix condition statement in when clause

* Use open version range to avoid fixing to single version

---------

Co-authored-by: Valentin Volkl <valentin.volkl@cern.ch>
This commit is contained in:
Thomas Madlener 2024-11-06 11:42:34 +01:00 committed by GitHub
parent 0c164d2740
commit 2aa5a16433
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -61,12 +61,20 @@ class Edm4hep(CMakePackage):
description="Use the specified C++ standard when building.",
)
variant(
"json",
default=True,
description="Build edm4hep with JSON support and edm4hep2json",
when="@0.99.2:",
)
depends_on("cmake@3.3:", type="build")
depends_on("cmake@3.23:", type="build", when="@0.10.3:")
depends_on("python", type="build")
depends_on("root@6.08:")
depends_on("nlohmann-json@3.10.5:")
depends_on("nlohmann-json@3.10.5:", when="@0.99.2: +json")
depends_on("nlohmann-json@3.10.5:", when="@:0.99.1")
depends_on("podio@1:", when="@0.99:")
depends_on("podio@0.15:", when="@:0.10.5")
for _std in _cxxstd_values:
@ -88,6 +96,8 @@ def cmake_args(self):
# C++ Standard
args.append(self.define("CMAKE_CXX_STANDARD", self.spec.variants["cxxstd"].value))
args.append(self.define("BUILD_TESTING", self.run_tests))
if self.spec.satisfies("@0.99.2: +json"):
args.append(self.define_from_variant("EDM4HEP_WITH_JSON", "json"))
return args
def setup_run_environment(self, env):