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
|
# However, with spack it is preferrable to have a proper external
|
||||||
# dependency, so we disable it.
|
# dependency, so we disable it.
|
||||||
self.define("DD4HEP_LOAD_ASSIMP", False),
|
self.define("DD4HEP_LOAD_ASSIMP", False),
|
||||||
"-DCMAKE_CXX_STANDARD={0}".format(cxxstd),
|
self.define("CMAKE_CXX_STANDARD", cxxstd),
|
||||||
"-DBUILD_TESTING={0}".format(self.run_tests),
|
self.define("BUILD_TESTING", self.run_tests),
|
||||||
"-DBOOST_ROOT={0}".format(spec["boost"].prefix),
|
self.define("BOOST_ROOT", spec["boost"].prefix),
|
||||||
"-DBoost_NO_BOOST_CMAKE=ON",
|
self.define("Boost_NO_BOOST_CMAKE", True),
|
||||||
]
|
]
|
||||||
subpackages = []
|
|
||||||
if spec.satisfies("+ddg4"):
|
packages = [
|
||||||
subpackages += ["DDG4"]
|
"DDG4",
|
||||||
if spec.satisfies("+ddcond"):
|
"DDCond",
|
||||||
subpackages += ["DDCond"]
|
"DDCAD",
|
||||||
if spec.satisfies("+ddcad"):
|
"DDRec",
|
||||||
subpackages += ["DDCAD"]
|
"DDDetectors",
|
||||||
if spec.satisfies("+ddrec"):
|
"DDAlign",
|
||||||
subpackages += ["DDRec"]
|
"DDDigi",
|
||||||
if spec.satisfies("+dddetectors"):
|
"DDEve",
|
||||||
subpackages += ["DDDetectors"]
|
"UtilityApps",
|
||||||
if spec.satisfies("+ddalign"):
|
]
|
||||||
subpackages += ["DDAlign"]
|
enabled_packages = [p for p in packages if self.spec.variants[package.lower()].value]
|
||||||
if spec.satisfies("+dddigi"):
|
args.append(self.define("DD4HEP_BUILD_PACKAGES", " ".join(enabled_packages)))
|
||||||
subpackages += ["DDDigi"]
|
|
||||||
if spec.satisfies("+ddeve"):
|
|
||||||
subpackages += ["DDEve"]
|
|
||||||
if spec.satisfies("+utilityapps"):
|
|
||||||
subpackages += ["UtilityApps"]
|
|
||||||
subpackages = " ".join(subpackages)
|
|
||||||
args += [self.define("DD4HEP_BUILD_PACKAGES", subpackages)]
|
|
||||||
return args
|
return args
|
||||||
|
|
||||||
def setup_run_environment(self, env):
|
def setup_run_environment(self, env):
|
||||||
|
@ -92,12 +92,11 @@ class Edm4hep(CMakePackage):
|
|||||||
extends("python", when="@0.10.6:")
|
extends("python", when="@0.10.6:")
|
||||||
|
|
||||||
def cmake_args(self):
|
def cmake_args(self):
|
||||||
args = []
|
args = [
|
||||||
# C++ Standard
|
self.define_from_variant("CMAKE_CXX_STANDARD", "cxxstd"),
|
||||||
args.append(self.define("CMAKE_CXX_STANDARD", self.spec.variants["cxxstd"].value))
|
self.define("BUILD_TESTING", self.run_tests),
|
||||||
args.append(self.define("BUILD_TESTING", self.run_tests))
|
self.define_from_variant("EDM4HEP_WITH_JSON", "json"),
|
||||||
if self.spec.satisfies("@0.99.2: +json"):
|
]
|
||||||
args.append(self.define_from_variant("EDM4HEP_WITH_JSON", "json"))
|
|
||||||
return args
|
return args
|
||||||
|
|
||||||
def setup_run_environment(self, env):
|
def setup_run_environment(self, env):
|
||||||
|
@ -167,8 +167,8 @@ def setup_run_environment(self, env):
|
|||||||
# environment as in Gaudi.xenv
|
# environment as in Gaudi.xenv
|
||||||
env.prepend_path("PATH", self.prefix.scripts)
|
env.prepend_path("PATH", self.prefix.scripts)
|
||||||
env.prepend_path("PYTHONPATH", self.prefix.python)
|
env.prepend_path("PYTHONPATH", self.prefix.python)
|
||||||
env.prepend_path("LD_LIBRARY_PATH", self.prefix.lib)
|
for d in self.libs.directories:
|
||||||
env.prepend_path("LD_LIBRARY_PATH", self.prefix.lib64)
|
env.prepend_path("LD_LIBRARY_PATH", d)
|
||||||
|
|
||||||
def url_for_version(self, version):
|
def url_for_version(self, version):
|
||||||
major = str(version[0])
|
major = str(version[0])
|
||||||
|
@ -31,11 +31,10 @@ class Opendatadetector(CMakePackage):
|
|||||||
depends_on("boost")
|
depends_on("boost")
|
||||||
|
|
||||||
def cmake_args(self):
|
def cmake_args(self):
|
||||||
args = []
|
args = [self.define("CMAKE_CXX_STANDARD", self.spec["root"].variants["cxxstd"].value)]
|
||||||
args.append("-DCMAKE_CXX_STANDARD=%s" % self.spec["root"].variants["cxxstd"].value)
|
|
||||||
return args
|
return args
|
||||||
|
|
||||||
def setup_run_environment(self, env):
|
def setup_run_environment(self, env):
|
||||||
env.set("OPENDATADETECTOR_DATA", join_path(self.prefix.share, "OpenDataDetector"))
|
env.set("OPENDATADETECTOR_DATA", join_path(self.prefix.share, "OpenDataDetector"))
|
||||||
env.prepend_path("LD_LIBRARY_PATH", self.prefix.lib)
|
for d in self.libs.directories:
|
||||||
env.prepend_path("LD_LIBRARY_PATH", self.prefix.lib64)
|
env.prepend_path("LD_LIBRARY_PATH", d)
|
||||||
|
Loading…
Reference in New Issue
Block a user