Improve package recipes for some HEP packages (#48185)
* Improve variant robustness for dd4hep and edm4hep Now variants won't be "false" if there's a typo. * Use libs instead of manual prefix paths * Improve cmake for another hep package * Fix variant use and style * Use directories for ODD
This commit is contained in:
parent
d8fa6eb559
commit
5640861aeb
@ -174,32 +174,25 @@ def cmake_args(self):
|
||||
# However, with spack it is preferrable to have a proper external
|
||||
# dependency, so we disable it.
|
||||
self.define("DD4HEP_LOAD_ASSIMP", False),
|
||||
"-DCMAKE_CXX_STANDARD={0}".format(cxxstd),
|
||||
"-DBUILD_TESTING={0}".format(self.run_tests),
|
||||
"-DBOOST_ROOT={0}".format(spec["boost"].prefix),
|
||||
"-DBoost_NO_BOOST_CMAKE=ON",
|
||||
self.define("CMAKE_CXX_STANDARD", cxxstd),
|
||||
self.define("BUILD_TESTING", self.run_tests),
|
||||
self.define("BOOST_ROOT", spec["boost"].prefix),
|
||||
self.define("Boost_NO_BOOST_CMAKE", True),
|
||||
]
|
||||
subpackages = []
|
||||
if spec.satisfies("+ddg4"):
|
||||
subpackages += ["DDG4"]
|
||||
if spec.satisfies("+ddcond"):
|
||||
subpackages += ["DDCond"]
|
||||
if spec.satisfies("+ddcad"):
|
||||
subpackages += ["DDCAD"]
|
||||
if spec.satisfies("+ddrec"):
|
||||
subpackages += ["DDRec"]
|
||||
if spec.satisfies("+dddetectors"):
|
||||
subpackages += ["DDDetectors"]
|
||||
if spec.satisfies("+ddalign"):
|
||||
subpackages += ["DDAlign"]
|
||||
if spec.satisfies("+dddigi"):
|
||||
subpackages += ["DDDigi"]
|
||||
if spec.satisfies("+ddeve"):
|
||||
subpackages += ["DDEve"]
|
||||
if spec.satisfies("+utilityapps"):
|
||||
subpackages += ["UtilityApps"]
|
||||
subpackages = " ".join(subpackages)
|
||||
args += [self.define("DD4HEP_BUILD_PACKAGES", subpackages)]
|
||||
|
||||
packages = [
|
||||
"DDG4",
|
||||
"DDCond",
|
||||
"DDCAD",
|
||||
"DDRec",
|
||||
"DDDetectors",
|
||||
"DDAlign",
|
||||
"DDDigi",
|
||||
"DDEve",
|
||||
"UtilityApps",
|
||||
]
|
||||
enabled_packages = [p for p in packages if self.spec.variants[package.lower()].value]
|
||||
args.append(self.define("DD4HEP_BUILD_PACKAGES", " ".join(enabled_packages)))
|
||||
return args
|
||||
|
||||
def setup_run_environment(self, env):
|
||||
|
@ -92,12 +92,11 @@ class Edm4hep(CMakePackage):
|
||||
extends("python", when="@0.10.6:")
|
||||
|
||||
def cmake_args(self):
|
||||
args = []
|
||||
# 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"))
|
||||
args = [
|
||||
self.define_from_variant("CMAKE_CXX_STANDARD", "cxxstd"),
|
||||
self.define("BUILD_TESTING", self.run_tests),
|
||||
self.define_from_variant("EDM4HEP_WITH_JSON", "json"),
|
||||
]
|
||||
return args
|
||||
|
||||
def setup_run_environment(self, env):
|
||||
|
@ -167,8 +167,8 @@ def setup_run_environment(self, env):
|
||||
# environment as in Gaudi.xenv
|
||||
env.prepend_path("PATH", self.prefix.scripts)
|
||||
env.prepend_path("PYTHONPATH", self.prefix.python)
|
||||
env.prepend_path("LD_LIBRARY_PATH", self.prefix.lib)
|
||||
env.prepend_path("LD_LIBRARY_PATH", self.prefix.lib64)
|
||||
for d in self.libs.directories:
|
||||
env.prepend_path("LD_LIBRARY_PATH", d)
|
||||
|
||||
def url_for_version(self, version):
|
||||
major = str(version[0])
|
||||
|
@ -31,11 +31,10 @@ class Opendatadetector(CMakePackage):
|
||||
depends_on("boost")
|
||||
|
||||
def cmake_args(self):
|
||||
args = []
|
||||
args.append("-DCMAKE_CXX_STANDARD=%s" % self.spec["root"].variants["cxxstd"].value)
|
||||
args = [self.define("CMAKE_CXX_STANDARD", self.spec["root"].variants["cxxstd"].value)]
|
||||
return args
|
||||
|
||||
def setup_run_environment(self, env):
|
||||
env.set("OPENDATADETECTOR_DATA", join_path(self.prefix.share, "OpenDataDetector"))
|
||||
env.prepend_path("LD_LIBRARY_PATH", self.prefix.lib)
|
||||
env.prepend_path("LD_LIBRARY_PATH", self.prefix.lib64)
|
||||
for d in self.libs.directories:
|
||||
env.prepend_path("LD_LIBRARY_PATH", d)
|
||||
|
Loading…
Reference in New Issue
Block a user