Skip to content

Commit

Permalink
root: fix behavior with system packages (spack#54)
Browse files Browse the repository at this point in the history
* root: fix behavior with system packages

* Fix style
  • Loading branch information
greenc-FNAL authored Oct 20, 2022
1 parent f34f67d commit 7d887e3
Showing 1 changed file with 26 additions and 2 deletions.
28 changes: 26 additions & 2 deletions var/spack/repos/builtin/packages/root/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,20 @@
from spack.util.environment import is_system_path


def sanitize_environments(*args):
for env in args:
for var in (
"PATH",
"LD_LIBRARY_PATH",
"DYLD_LIBRARY_PATH",
"LIBRARY_PATH",
"CMAKE_PREFIX_PATH",
"ROOT_INCLUDE_PATH",
):
env.prune_duplicate_paths(var)
env.deprioritize_system_paths(var)


class Root(CMakePackage):
"""ROOT is a data analysis framework."""

Expand Down Expand Up @@ -216,7 +230,9 @@ class Root(CMakePackage):
depends_on("libxft", when="+x")
depends_on("libxpm", when="+x")
depends_on("libsm", when="+x")
depends_on("fontconfig", when="+x")
depends_on("fontconfig", when="+x", type="build")
depends_on("xproto", when="+x", type="build")
depends_on("xextproto", when="+x", type="build")

# OpenGL
depends_on("ftgl@2.4.0:", when="+opengl")
Expand Down Expand Up @@ -410,7 +426,7 @@ def cmake_args(self):
spec = self.spec
define = self.define
define_from_variant = self.define_from_variant
options = []
options = ["--debug-find-pkg=OpenGL", "--trace-expand"]

# ###################### Boolean Options ######################
# For option list format see _process_opts(), below.
Expand Down Expand Up @@ -625,6 +641,8 @@ def add_include_path(dep_name):
# override with an empty value even though it may lead to link
# warnings when building against ROOT
env.unset("MACOSX_DEPLOYMENT_TARGET")
# Cleanup.
sanitize_environments(env)

def setup_run_environment(self, env):
env.set("ROOTSYS", self.prefix)
Expand All @@ -633,6 +651,8 @@ def setup_run_environment(self, env):
# the following vars are copied from thisroot.sh; silence a cppyy warning
env.set("CLING_STANDARD_PCH", "none")
env.set("CPPYY_API_PATH", "none")
# Cleanup.
sanitize_environments(env)

def setup_dependent_build_environment(self, env, dependent_spec):
env.set("ROOTSYS", self.prefix)
Expand All @@ -646,6 +666,8 @@ def setup_dependent_build_environment(self, env, dependent_spec):
if "platform=darwin" in self.spec:
# Newer deployment targets cause fatal errors in rootcling
env.unset("MACOSX_DEPLOYMENT_TARGET")
# Cleanup.
sanitize_environments(env)

def setup_dependent_run_environment(self, env, dependent_spec):
env.set("ROOTSYS", self.prefix)
Expand All @@ -655,3 +677,5 @@ def setup_dependent_run_environment(self, env, dependent_spec):
env.prepend_path("ROOT_INCLUDE_PATH", dependent_spec.prefix.include)
if "+rpath" not in self.spec:
env.prepend_path("LD_LIBRARY_PATH", self.prefix.lib.root)
# Cleanup.
sanitize_environments(env)

0 comments on commit 7d887e3

Please sign in to comment.