Add type hints to all setup_*environment functions (#49985)

This commit is contained in:
Adam J. Stewart
2025-04-23 15:41:22 +02:00
committed by GitHub
parent 47b71ba8ca
commit 3f063ace1d
950 changed files with 1845 additions and 1367 deletions

View File

@@ -91,7 +91,7 @@ there are any other variables you need to set, you can do this in the
.. code-block:: python
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
env.set("PREFIX", prefix)
env.set("BLASLIB", spec["blas"].libs.ld_flags)

View File

@@ -128,7 +128,7 @@ depend on the spec:
.. code-block:: python
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
if self.spec.satisfies("+foo"):
env.set("FOO", "bar")
@@ -142,7 +142,7 @@ For example, a simplified version of the ``python`` package could look like this
.. code-block:: python
def setup_dependent_run_environment(self, env, dependent_spec):
def setup_dependent_run_environment(self, env: EnvironmentModifications, dependent_spec: Spec) -> None:
if dependent_spec.package.extends(self.spec):
env.prepend_path("PYTHONPATH", dependent_spec.prefix.lib.python)

View File

@@ -16,6 +16,7 @@
import spack.package_base
import spack.phase_callbacks
import spack.spec
import spack.util.environment
import spack.util.prefix
from spack.directives import build_system, conflicts, depends_on
from spack.multimethod import when
@@ -846,7 +847,9 @@ def _remove_libtool_archives(self) -> None:
with open(self._removed_la_files_log, mode="w", encoding="utf-8") as f:
f.write("\n".join(libtool_files))
def setup_build_environment(self, env):
def setup_build_environment(
self, env: spack.util.environment.EnvironmentModifications
) -> None:
if self.spec.platform == "darwin" and macos_version() >= Version("11"):
# Many configure files rely on matching '10.*' for macOS version
# detection and fail to add flags if it shows as version 11.

View File

@@ -8,6 +8,7 @@
import spack.package_base
import spack.phase_callbacks
import spack.spec
import spack.util.environment
import spack.util.prefix
from spack.directives import build_system, depends_on
from spack.multimethod import when
@@ -86,7 +87,9 @@ def check_args(self):
"""Argument for ``cargo test`` during check phase"""
return []
def setup_build_environment(self, env):
def setup_build_environment(
self, env: spack.util.environment.EnvironmentModifications
) -> None:
env.set("CARGO_HOME", self.stage.path)
def build(

View File

@@ -8,6 +8,7 @@
import spack.package_base
import spack.phase_callbacks
import spack.spec
import spack.util.environment
import spack.util.prefix
from spack.directives import build_system, depends_on
from spack.multimethod import when
@@ -68,7 +69,9 @@ class GoBuilder(BuilderWithDefaults):
#: Callback names for install-time test
install_time_test_callbacks = ["check"]
def setup_build_environment(self, env):
def setup_build_environment(
self, env: spack.util.environment.EnvironmentModifications
) -> None:
env.set("GO111MODULE", "on")
env.set("GOTOOLCHAIN", "local")
env.set("GOPATH", fs.join_path(self.pkg.stage.path, "go"))

View File

@@ -23,6 +23,7 @@
import spack.error
import spack.phase_callbacks
import spack.spec
from spack.build_environment import dso_suffix
from spack.error import InstallError
from spack.util.environment import EnvironmentModifications
@@ -1016,7 +1017,7 @@ def libs(self):
debug_print(result)
return result
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
"""Adds environment variables to the generated module file.
These environment variables come from running:
@@ -1049,7 +1050,9 @@ def setup_run_environment(self, env):
env.set("F77", self.prefix.bin.ifort)
env.set("F90", self.prefix.bin.ifort)
def setup_dependent_build_environment(self, env, dependent_spec):
def setup_dependent_build_environment(
self, env: EnvironmentModifications, dependent_spec: spack.spec.Spec
) -> None:
# NB: This function is overwritten by 'mpi' provider packages:
#
# var/spack/repos/builtin/packages/intel-mpi/package.py
@@ -1061,7 +1064,12 @@ def setup_dependent_build_environment(self, env, dependent_spec):
# Handle everything in a callback version.
self._setup_dependent_env_callback(env, dependent_spec)
def _setup_dependent_env_callback(self, env, dependent_spec, compilers_of_client={}):
def _setup_dependent_env_callback(
self,
env: EnvironmentModifications,
dependent_spec: spack.spec.Spec,
compilers_of_client={},
) -> None:
# Expected to be called from a client's
# setup_dependent_build_environment(),
# with args extended to convey the client's compilers as needed.

View File

@@ -8,6 +8,7 @@
import spack.builder
import spack.package_base
import spack.spec
import spack.util.environment
import spack.util.executable
import spack.util.prefix
from spack.directives import build_system, depends_on, extends
@@ -114,5 +115,7 @@ def install(
def _luarocks_config_path(self):
return os.path.join(self.pkg.stage.source_path, "spack_luarocks.lua")
def setup_build_environment(self, env):
def setup_build_environment(
self, env: spack.util.environment.EnvironmentModifications
) -> None:
env.set("LUAROCKS_CONFIG", self._luarocks_config_path())

View File

@@ -4,6 +4,7 @@
import spack.builder
import spack.package_base
import spack.spec
import spack.util.environment
import spack.util.prefix
from spack.directives import build_system, extends
from spack.multimethod import when
@@ -57,7 +58,9 @@ def install(
"pkg prefix %s; pkg install %s" % (prefix, self.pkg.stage.archive_file),
)
def setup_build_environment(self, env):
def setup_build_environment(
self, env: spack.util.environment.EnvironmentModifications
) -> None:
# octave does not like those environment variables to be set:
env.unset("CC")
env.unset("CXX")

View File

@@ -132,7 +132,7 @@ def install_component(self, installer_path):
if not isdir(install_dir):
raise RuntimeError("install failed to directory: {0}".format(install_dir))
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
"""Adds environment variables to the generated module file.
These environment variables come from running:

View File

@@ -185,10 +185,16 @@ def __init__(self, pkg):
# These two methods don't follow the (self, spec, prefix) signature of phases nor
# the (self) signature of methods, so they are added explicitly to avoid using a
# catch-all (*args, **kwargs)
def setup_build_environment(self, env):
def setup_build_environment(
self, env: spack.util.environment.EnvironmentModifications
) -> None:
return self.pkg_with_dispatcher.setup_build_environment(env)
def setup_dependent_build_environment(self, env, dependent_spec):
def setup_dependent_build_environment(
self,
env: spack.util.environment.EnvironmentModifications,
dependent_spec: spack.spec.Spec,
) -> None:
return self.pkg_with_dispatcher.setup_dependent_build_environment(env, dependent_spec)
return Adapter(pkg)
@@ -402,7 +408,7 @@ def fixup_install(self):
# do something after the package is installed
pass
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
env.set("MY_ENV_VAR", "my_value")
class CMakeBuilder(cmake.CMakeBuilder, AnyBuilder):

View File

@@ -47,10 +47,10 @@ class Grads(AutotoolsPackage):
depends_on('readline')
depends_on('pkgconfig', type='build')
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
env.set('SUPPLIBS', '/')
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.set('GADDIR', self.prefix.data)
@run_after('install')

View File

@@ -517,7 +517,7 @@ class Llvm(CMakePackage, CudaPackage):
return (None, flags, None)
return (flags, None, None)
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
"""When using %clang, add only its ld.lld-$ver and/or ld.lld to our PATH"""
if self.compiler.name in ["clang", "apple-clang"]:
for lld in "ld.lld-{0}".format(self.compiler.version.version[0]), "ld.lld":
@@ -528,7 +528,7 @@ class Llvm(CMakePackage, CudaPackage):
os.symlink(bin, sym)
env.prepend_path("PATH", self.stage.path)
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
if "+clang" in self.spec:
env.set("CC", join_path(self.spec.prefix.bin, "clang"))
env.set("CXX", join_path(self.spec.prefix.bin, "clang++"))

View File

@@ -318,7 +318,7 @@ class Mfem(Package, CudaPackage, ROCmPackage):
patch('mfem-4.0.0-makefile-syntax-fix.patch', when='@4.0.0')
phases = ['configure', 'build', 'install']
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
env.unset('MFEM_DIR')
env.unset('MFEM_BUILD_DIR')

View File

@@ -281,7 +281,7 @@ class PyTorch(PythonPackage, CudaPackage):
"caffe2/CMakeLists.txt",
)
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
"""Set environment variables used to control the build.
PyTorch's ``setup.py`` is a thin wrapper around ``cmake``.

View File

@@ -440,7 +440,7 @@ class Trilinos(CMakePackage, CudaPackage):
url = "https://github.com/trilinos/Trilinos/archive/trilinos-release-{0}.tar.gz"
return url.format(version.dashed)
def setup_dependent_run_environment(self, env, dependent_spec):
def setup_dependent_run_environment(self, env: EnvironmentModifications, dependent_spec: Spec) -> None:
if "+cuda" in self.spec:
# currently Trilinos doesn't perform the memory fence so
# it relies on blocking CUDA kernel launch. This is needed
@@ -453,7 +453,7 @@ class Trilinos(CMakePackage, CudaPackage):
else:
self.spec.kokkos_cxx = spack_cxx
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
spec = self.spec
if "+cuda" in spec and "+wrapper" in spec:
if "+mpi" in spec:
@@ -847,7 +847,7 @@ class Trilinos(CMakePackage, CudaPackage):
)
filter_file(r"-lpytrilinos", "", "%s/Makefile.export.Trilinos" % self.prefix.include)
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
if "+exodus" in self.spec:
env.prepend_path("PYTHONPATH", self.prefix.lib)

View File

@@ -334,20 +334,20 @@ def test_remove_complex_package_logic_filtered():
"package_spec,expected_hash",
[
("amdfftw", "tivb752zddjgvfkogfs7cnnvp5olj6co"),
("grads", "rrlmwml3f2frdnqavmro3ias66h5b2ce"),
("llvm", "nufffum5dabmaf4l5tpfcblnbfjknvd3"),
("grads", "lomrsppasfxegyamz4r33zgwiqkveftv"),
("llvm", "paicamlvy5jkgxw4xnacaxahrixe3f3i"),
# has @when("@4.1.0") and raw unicode literals
("mfem", "whwftpqbjvzncmb52oz6izkanbha2uji"),
("mfem@4.0.0", "whwftpqbjvzncmb52oz6izkanbha2uji"),
("mfem@4.1.0", "bpi7of3xelo7fr3ta2lm6bmiruijnxcg"),
("mfem", "slf5qyyyhuj66mo5lpuhkrs35akh2zck"),
("mfem@4.0.0", "slf5qyyyhuj66mo5lpuhkrs35akh2zck"),
("mfem@4.1.0", "yo3ymaulytctas67zjn663ixw5cfyh5u"),
# has @when("@1.5.0:")
("py-torch", "qs7djgqn7dy7r3ps4g7hv2pjvjk4qkhd"),
("py-torch@1.0", "qs7djgqn7dy7r3ps4g7hv2pjvjk4qkhd"),
("py-torch@1.6", "p4ine4hc6f2ik2f2wyuwieslqbozll5w"),
("py-torch", "m3ucsddqr7hjevtgx4cad34nrtqgyjfg"),
("py-torch@1.0", "m3ucsddqr7hjevtgx4cad34nrtqgyjfg"),
("py-torch@1.6", "insaxs6bq34rvyhajdbyr4wddqeqb2t3"),
# has a print with multiple arguments
("legion", "bq2etsik5l6pbryxmbhfhzynci56ruy4"),
# has nested `with when()` blocks and loops
("trilinos", "vqrgscjrla4hi7bllink7v6v6dwxgc2p"),
("trilinos", "ojbtbu3p6gpa42sbilblo2ioanvhouxu"),
],
)
def test_package_hash_consistency(package_spec, expected_hash):

View File

@@ -11,7 +11,7 @@ class BuildEnvCompilerVarB(Package):
url = "https://www.example.com"
version("1.0", md5="0123456789abcdef0123456789abcdef")
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.set("CC", "this-should-be-dropped")
env.set("CXX", "this-should-be-dropped")
env.set("FC", "this-should-be-dropped")

View File

@@ -22,5 +22,5 @@ def install(self, spec, prefix):
mkdirp(prefix)
touch(join_path(prefix, "dummyfile"))
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.set("FOOBAR", self.name)

View File

@@ -67,7 +67,9 @@ def setup_build_environment(self, spack_env):
"link arg on dependency spec not readable from " "setup_build_environment.",
)
def setup_dependent_build_environment(self, env, dependent_spec):
def setup_dependent_build_environment(
self, env: EnvironmentModifications, dependent_spec: Spec
) -> None:
spack_cc # Ensure spack module-scope variable is avaiable
check(
from_cmake == "from_cmake",

View File

@@ -36,11 +36,13 @@ class Cmake(Package):
url="https://cmake.org/files/v3.4/cmake-3.4.3.tar.gz",
)
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
spack_cc # Ensure spack module-scope variable is avaiable
env.set("for_install", "for_install")
def setup_dependent_build_environment(self, env, dependent_spec):
def setup_dependent_build_environment(
self, env: EnvironmentModifications, dependent_spec: Spec
) -> None:
spack_cc # Ensure spack module-scope variable is avaiable
env.set("from_cmake", "from_cmake")

View File

@@ -23,5 +23,5 @@ def install(self, spec, prefix):
make()
make("install")
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.set("FOOBAR", self.name)

View File

@@ -24,5 +24,5 @@ def install(self, spec, prefix):
make()
make("install")
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.set("FOOBAR", self.name)

View File

@@ -27,7 +27,9 @@ class HashTest1(Package):
variant("variantx", default=False, description="Test variant X")
variant("varianty", default=False, description="Test variant Y")
def setup_dependent_build_environment(self, env, dependent_spec):
def setup_dependent_build_environment(
self, env: EnvironmentModifications, dependent_spec: Spec
) -> None:
pass
@when("@:1.4")

View File

@@ -23,7 +23,9 @@ class HashTest2(Package):
variant("variantx", default=False, description="Test variant X")
variant("varianty", default=False, description="Test variant Y")
def setup_dependent_build_environment(self, env, dependent_spec):
def setup_dependent_build_environment(
self, env: EnvironmentModifications, dependent_spec: Spec
) -> None:
pass
def install(self, spec, prefix):

View File

@@ -22,7 +22,9 @@ class HashTest3(Package):
variant("variantx", default=False, description="Test variant X")
variant("varianty", default=False, description="Test variant Y")
def setup_dependent_build_environment(self, env, dependent_spec):
def setup_dependent_build_environment(
self, env: EnvironmentModifications, dependent_spec: Spec
) -> None:
pass
@when("@:1.4")

View File

@@ -13,7 +13,7 @@ class ModifiesRunEnv(Package):
version("1.0", md5="0123456789abcdef0123456789abcdef")
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.set("DEPENDENCY_ENV_VAR", "1")
def install(self, spec, prefix):

View File

@@ -14,5 +14,5 @@ class ModuleLongHelp(Package):
version("1.0", "0123456789abcdef0123456789abcdef")
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.set("FOO", "bar")

View File

@@ -11,5 +11,5 @@ class ModuleManpathAppend(Package):
version("1.0", "0123456789abcdef0123456789abcdef")
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.append_path("MANPATH", "/path/to/man")

View File

@@ -11,6 +11,6 @@ class ModuleManpathPrepend(Package):
version("1.0", "0123456789abcdef0123456789abcdef")
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.prepend_path("MANPATH", "/path/to/man")
env.prepend_path("MANPATH", "/path/to/share/man")

View File

@@ -11,5 +11,5 @@ class ModuleManpathSetenv(Package):
version("1.0", "0123456789abcdef0123456789abcdef")
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.set("MANPATH", "/path/to/man")

View File

@@ -11,7 +11,7 @@ class ModulePathSeparator(Package):
version("1.0", md5="0123456789abcdef0123456789abcdef")
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.append_path("COLON", "foo")
env.prepend_path("COLON", "foo")
env.remove_path("COLON", "foo")

View File

@@ -11,5 +11,5 @@ class ModuleSetenvRaw(Package):
version("1.0", "0123456789abcdef0123456789abcdef")
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.set("FOO", "{{name}}, {name}, {{}}, {}", raw=True)

View File

@@ -33,5 +33,5 @@ def install(self, spec, prefix):
touch(prefix.mpileaks)
mkdirp(prefix.man)
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.set("FOOBAR", self.name)

View File

@@ -35,7 +35,7 @@ def libs(self):
shared = "+shared" in self.spec
return find_libraries(["libz"], root=self.prefix, recursive=True, shared=shared)
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
if "+pic" in self.spec:
env.append_flags("CFLAGS", self.compiler.cc_pic_flag)
if "+optimize" in self.spec:

View File

@@ -68,7 +68,7 @@ class _3dtk(CMakePackage):
patch("homebrew.patch", when="platform=darwin")
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
env.prepend_path("CPATH", self.spec["eigen"].prefix.include)
def cmake_args(self):

View File

@@ -20,7 +20,7 @@ class Acct(AutotoolsPackage, GNUMirrorPackage):
depends_on("c", type="build") # generated
depends_on("cxx", type="build") # generated
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.prepend_path("PATH", self.prefix.sbin)
def installcheck(self):

View File

@@ -458,7 +458,7 @@ def headers(self):
hlist.directories = [incdir]
return hlist
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
arm_dir = get_acfl_prefix(self.spec)
armpl_dir = get_armpl_prefix(self.spec)

View File

@@ -25,8 +25,8 @@ class Activeharmony(MakefilePackage):
cflags = ["-O3", "-fPIC"]
def setup_build_environment(self, spack_env):
spack_env.set("CFLAGS", " ".join(self.cflags))
def setup_build_environment(self, env: EnvironmentModifications) -> None:
env.set("CFLAGS", " ".join(self.cflags))
@when("@:4.5")
def install(self, spec, prefix):

View File

@@ -25,7 +25,7 @@ def url_for_version(self, version):
license_files = ["license.txt"]
license_vars = ["SCMLICENSE"]
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.set("ADFHOME", self.prefix)
env.set("ADFBIN", self.prefix.bin)
env.set("ADFRESOURCES", self.prefix.atomicdata)

View File

@@ -113,7 +113,7 @@ def with_or_without_hdf5(self, activated):
return "--without-phdf5"
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
# https://github.com/ornladios/ADIOS/issues/206
if self.spec.satisfies("+fortran %gcc@10:"):
env.set("FCFLAGS", "-fallow-argument-mismatch")

View File

@@ -257,7 +257,7 @@ def patch(self):
filter_file("mpc++_r)", "mpcc_r mpiFCC)", f, string=True)
filter_file("mpf77_r", "mpf77_r mpifrt", f, string=True)
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
# https://github.com/ornladios/ADIOS2/issues/2228
if self.spec.satisfies("+fortran %gcc@10:"):
env.set("FFLAGS", "-fallow-argument-mismatch")
@@ -358,7 +358,7 @@ def libs(self):
list(libs_to_seek), root=self.spec.prefix, shared=("+shared" in spec), recursive=True
)
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
try:
all_libs = self.libs
idx = all_libs.basenames.index("libadios2_h5vol.so")

View File

@@ -29,7 +29,7 @@ class Adlbx(AutotoolsPackage):
depends_on("m4", type="build", when="@master")
depends_on("mpi")
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
spec = self.spec
env.set("CC", spec["mpi"].mpicc)
env.set("CXX", spec["mpi"].mpicxx)

View File

@@ -18,14 +18,18 @@ class AdwaitaIconTheme(AutotoolsPackage):
depends_on("gdk-pixbuf", type="build")
depends_on("librsvg", type="build")
def setup_dependent_build_environment(self, env, dependent_spec):
def setup_dependent_build_environment(
self, env: EnvironmentModifications, dependent_spec: Spec
) -> None:
env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
def setup_dependent_run_environment(self, env, dependent_spec):
def setup_dependent_run_environment(
self, env: EnvironmentModifications, dependent_spec: Spec
) -> None:
env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.prepend_path("XDG_DATA_DIRS", self.prefix.share)

View File

@@ -153,7 +153,7 @@ def url_for_version(self, version):
url = "file://{0}/Amber{1}.tar.bz2".format(os.getcwd(), version)
return url
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
amber_src = self.stage.source_path
env.set("AMBERHOME", amber_src)
@@ -242,7 +242,7 @@ def install(self, spec, prefix):
# just install everything that was built
install_tree(".", prefix)
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.set("AMBER_PREFIX", self.prefix)
env.set("AMBERHOME", self.prefix)
# CUDA

View File

@@ -63,11 +63,11 @@ def cmake_args(self):
]
return args
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.set("AMBER_PREFIX", self.prefix)
env.set("AMBERHOME", self.prefix)
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
env.set("AMBER_PREFIX", self.prefix)
env.set("AMBERHOME", self.prefix)

View File

@@ -250,6 +250,8 @@ def install(self, pkg, spec, prefix):
# make install in parallel fails with message 'File already exists'
make("install", parallel=False)
def setup_dependent_run_environment(self, env, dependent_spec):
def setup_dependent_run_environment(
self, env: EnvironmentModifications, dependent_spec: Spec
) -> None:
if self.spec.external:
env.prepend_path("LD_LIBRARY_PATH", self.prefix.lib)

View File

@@ -135,6 +135,8 @@ def cmake_args(self):
return args
def setup_dependent_run_environment(self, env, dependent_spec):
def setup_dependent_run_environment(
self, env: EnvironmentModifications, dependent_spec: Spec
) -> None:
if self.spec.external:
env.prepend_path("LD_LIBRARY_PATH", self.prefix.lib)

View File

@@ -85,7 +85,7 @@ class Ampl(Package):
def url_for_version(self, version):
return "file://{0}/ampl.linux-intel64.{1}.tgz".format(os.getcwd(), version)
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.prepend_path("PATH", self.prefix)
if self.spec.satisfies("+ide"):
env.prepend_path("PATH", join_path(self.prefix, "amplide"))

View File

@@ -23,7 +23,7 @@ class Ampliconnoise(MakefilePackage):
patch("Fix-return-type.patch")
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.prepend_path("PATH", self.prefix.Scripts)
env.set("PYRO_LOOKUP_FILE", os.path.join(self.prefix, "Data", "LookUp_E123.dat"))
env.set("SEQ_LOOKUP_FILE", os.path.join(self.prefix, "Data", "Tran.dat"))

View File

@@ -276,7 +276,7 @@ class AmrWind(CMakePackage, CudaPackage, ROCmPackage):
"openfast@4.0.0:4.0.1", msg="OpenFAST 4.0.0:4.0.1 contains a bug. Use OpenFAST >= 4.0.2."
)
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
# Avoid compile errors with Intel interprocedural optimization
if self.spec.satisfies("%intel"):
env.append_flags("CXXFLAGS", "-no-ipo")

View File

@@ -29,7 +29,7 @@ class Amrfinder(MakefilePackage):
depends_on("hmmer")
depends_on("curl")
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
env.set("INSTALL_DIR", prefix.bin)
env.set("DEFAULT_DB_DIR", prefix.share)

View File

@@ -143,7 +143,7 @@ def edit(self, spec, prefix):
with open("GNUmakefile", "w") as file:
file.writelines(contents)
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
# We don't want an AMREX_HOME the user may have set already
env.unset("AMREX_HOME")
# Help force Amrvis to not pick up random system compilers

View File

@@ -220,6 +220,6 @@ def install(self, spec, prefix):
bash = which("bash")
bash(anaconda_script, "-b", "-f", "-p", self.prefix)
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
filename = self.prefix.etc.join("profile.d").join("conda.sh")
env.extend(EnvironmentModifications.from_sourcing_file(filename))

View File

@@ -35,7 +35,7 @@ class Angsd(MakefilePackage):
depends_on("r", type="run", when="+r")
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.set("R_LIBS", self.prefix.R)
def install(self, spec, prefix):

View File

@@ -33,7 +33,7 @@ class Antlr(AutotoolsPackage):
extends("python", when="+python")
depends_on("java", type=("build", "run"), when="+java")
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
if self.spec.satisfies("+pic"):
env.set("CXXFLAGS", "-fPIC")

View File

@@ -56,7 +56,7 @@ def install(self, spec, prefix):
rename(glob.glob("antlr-*-complete.jar")[0], "antlr-complete.jar")
install("antlr-complete.jar", prefix.bin)
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.set("ANTLR4_JAR_LOCATION", join_path(self.prefix.bin, "antlr-complete.jar"))
env.set("ANTLR_JAR_LOCATION", join_path(self.prefix.bin, "antlr-complete.jar"))
env.set("ANTLR_EXECUTABLE", join_path(self.prefix.bin, "antlr-complete.jar"))

View File

@@ -42,5 +42,5 @@ def install(self, spec, prefix):
make("install")
install_tree("Scripts", prefix.bin)
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.set("ANTSPATH", self.prefix.bin)

View File

@@ -86,13 +86,13 @@ class AoclDa(CMakePackage):
depends_on("py-pytest", type="test")
depends_on("py-scikit-learn", type=("test", "run"))
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
if self.spec.satisfies("%aocc"):
cc = self.compiler.cc
compiler_install_dir = os.path.dirname(os.path.dirname(cc))
env.append_path("LD_LIBRARY_PATH", join_path(compiler_install_dir, "lib"))
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.prepend_path("PYTHONPATH", join_path(self.prefix, "python_package"))
def cmake_args(self):

View File

@@ -55,7 +55,7 @@ def patch(self):
string=True,
)
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
"""Set environment variables used to control the build"""
if self.spec.satisfies("%clang"):
env.set("TRITON_HIP_LLD_PATH", self.spec["llvm-amdgpu"].prefix / bin / ld.lld)

View File

@@ -20,7 +20,7 @@ class Apktool(Package):
depends_on("java@8:", type=("build", "run"))
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
env.set("LC_ALL", "en_US.UTF-8")
def install(self, spec, prefix):

View File

@@ -9,7 +9,9 @@ class AppleGlBase(BundlePackage):
maintainers("aphecetche")
def setup_dependent_build_environment(self, env, dependent_spec):
def setup_dependent_build_environment(
self, env: EnvironmentModifications, dependent_spec: Spec
) -> None:
# we try to setup a build environment with enough hints
# for the build system to pick up on the Apple framework version
# of OpenGL.

View File

@@ -322,7 +322,7 @@ def install(self, spec, prefix):
install_tree(f"opt/rocm-{spec.version}/share/", prefix.share)
install_tree(f"opt/rocm-{spec.version}/lib/", prefix.lib)
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.prepend_path("LD_LIBRARY_PATH", self.spec["hsa-rocr-dev"].prefix.lib)
# This package is installed from binaries, and we haven't patched rpaths.

View File

@@ -205,7 +205,7 @@ def install(self, spec, prefix):
probe = join_path(prefix, "bin", "forge-probe")
subprocess.call([probe, "--install", "global"])
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
# Only PATH is needed for Forge.
# Adding lib to LD_LIBRARY_PATH can cause conflicts with Forge's internal libs.
env.clear()

View File

@@ -46,5 +46,7 @@ def configure_args(self):
args.extend(self.with_or_without("progress"))
return args
def setup_dependent_build_environment(self, env, dependent_spec):
def setup_dependent_build_environment(
self, env: EnvironmentModifications, dependent_spec: Spec
) -> None:
env.set("ARMCIMPI_DIR", self.prefix)

View File

@@ -121,7 +121,7 @@ def build_args(self, spec, prefix):
return args
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
# Spack compiler wrapper inject -mcpu flag for some targets.
# This can conflict with -march set in scons script, so override it here.
env.set("SPACK_TARGET_ARGS", "")

View File

@@ -495,7 +495,7 @@ def headers(self):
hlist.directories = [incdir]
return hlist
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
armpl_dir = get_armpl_prefix(self.spec)
if self.spec.platform == "darwin":
env.prepend_path("DYLD_LIBRARY_PATH", join_path(armpl_dir, "lib"))
@@ -526,7 +526,9 @@ def make_pkgconfig_files(self):
for f in find(join_path(armpl_dir, "pkgconfig"), "*"):
symlink(f, f + ".pc")
def setup_dependent_build_environment(self, env, dependent_spec):
def setup_dependent_build_environment(
self, env: EnvironmentModifications, dependent_spec: Spec
) -> None:
armpl_dir = get_armpl_prefix(self.spec)
if self.spec.satisfies("@:22"):
# pkgconfig directory is not in standard ("lib", "lib64", "share") location

View File

@@ -149,7 +149,7 @@ def configure_args(self):
return options
@when("@:3.7.0 %gcc@10:")
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
# version up to and including 3.7.0 are not ported to gcc 10
# https://github.com/opencollab/arpack-ng/issues/242
env.set("FFLAGS", "-fallow-argument-mismatch")

View File

@@ -350,7 +350,7 @@ def patch(self):
$<$<OR:$<COMPILE_LANGUAGE:CXX>,$<COMPILE_LANGUAGE:HIP>>:-std=c++17>)"""
)
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
env.set("CTEST_OUTPUT_ON_FAILURE", "1")
####################################################################

View File

@@ -49,5 +49,5 @@ class Aspect(CMakePackage):
def cmake_args(self):
return [self.define_from_variant("ASPECT_USE_FP_EXCEPTIONS", "fpe")]
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.set("Aspect_DIR", self.prefix)

View File

@@ -33,5 +33,5 @@ def make_missing_files(self):
make("gen/dirs.h")
make("gen/static_filters.src.cpp")
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.set("ASPELL_CONF", f"prefix {self.prefix}")

View File

@@ -20,7 +20,7 @@ class AsperaCli(Package):
expand=False,
)
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.prepend_path("PATH", self.prefix.cli.bin)
def install(self, spec, prefix):

View File

@@ -46,5 +46,5 @@ def install(self, spec, prefix):
filter_file("^java", java, script, **kwargs)
filter_file("astral.jar", join_path(prefix.tools, jar_file), script, **kwargs)
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.set("ASTRAL_HOME", self.prefix.tools)

View File

@@ -56,15 +56,19 @@ def url_for_version(self, version):
url = "http://ftp.gnome.org/pub/gnome/sources/at-spi2-core"
return url + f"/{version.up_to(2)}/at-spi2-core-{version}.tar.xz"
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.prepend_path("GI_TYPELIB_PATH", join_path(self.prefix.lib, "girepository-1.0"))
def setup_dependent_build_environment(self, env, dependent_spec):
def setup_dependent_build_environment(
self, env: EnvironmentModifications, dependent_spec: Spec
) -> None:
env.prepend_path("GI_TYPELIB_PATH", join_path(self.prefix.lib, "girepository-1.0"))
def setup_dependent_run_environment(self, env, dependent_spec):
def setup_dependent_run_environment(
self, env: EnvironmentModifications, dependent_spec: Spec
) -> None:
env.prepend_path("GI_TYPELIB_PATH", join_path(self.prefix.lib, "girepository-1.0"))
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
# this avoids an "import site" error in the build
env.unset("PYTHONHOME")

View File

@@ -179,7 +179,7 @@ class Athena(AutotoolsPackage):
patch("missing-separator.patch")
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
spec = self.spec
env.set("OPT", "-O3")

View File

@@ -39,10 +39,12 @@ def url_for_version(self, version):
f"{version.up_to(2)}/atk-{version}.tar.xz"
)
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
env.prepend_path("GI_TYPELIB_PATH", join_path(self.prefix.lib, "girepository-1.0"))
def setup_dependent_build_environment(self, env, dependent_spec):
def setup_dependent_build_environment(
self, env: EnvironmentModifications, dependent_spec: Spec
) -> None:
env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
env.prepend_path("GI_TYPELIB_PATH", join_path(self.prefix.lib, "girepository-1.0"))

View File

@@ -25,7 +25,7 @@ class Atop(Package):
depends_on("ncurses")
depends_on("gmake", type="build")
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
env.append_flags("LDFLAGS", "-ltinfo")
def install(self, spec, prefix):

View File

@@ -173,7 +173,7 @@ def filter_sbang(self):
files = glob.glob("*.py")
filter_file(pattern, repl, *files, backup=False)
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
htslib = self.spec["htslib"].prefix
bamtools = self.spec["bamtools"].prefix
@@ -184,6 +184,6 @@ def setup_build_environment(self, env):
env.set("HTSLIB_INSTALL_DIR", htslib)
env.set("BAMTOOLS_INSTALL_DIR", bamtools)
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.set("AUGUSTUS_CONFIG_PATH", join_path(self.prefix, "config"))
env.prepend_path("PATH", join_path(self.prefix, "scripts"))

View File

@@ -19,7 +19,7 @@ class Authd(MakefilePackage):
depends_on("c", type="build") # generated
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.prepend_path("PATH", self.prefix.sbin)
def install(self, spec, prefix):

View File

@@ -34,6 +34,8 @@ class AutoconfArchive(AutotoolsPackage, GNUMirrorPackage):
# The package does not produce any libraries and does not use libtool:
patch_libtool = False
def setup_dependent_build_environment(self, env, dependent_spec):
def setup_dependent_build_environment(
self, env: EnvironmentModifications, dependent_spec: Spec
) -> None:
"""Adds the ACLOCAL path for autotools."""
env.append_path("ACLOCAL_PATH", self.prefix.share.aclocal)

View File

@@ -31,6 +31,6 @@ def patch(self):
def install(self, spec, prefix):
install_tree(self.stage.source_path, prefix)
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.prepend_path("PATH", self.prefix.scripts)
env.set("PATH2AUTOFACT", self.prefix)

View File

@@ -62,7 +62,7 @@ class Avizo(Package):
license_files = ["share/license/password.dat"]
license_vars = ["MCSLMD_LICENSE_FILE"]
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.set("MCSLMD_LICENSE_FILE", join_path(self.prefix.share.license, "password.dat"))
def install(self, spec, prefix):

View File

@@ -55,11 +55,13 @@ def url_for_version(self, version):
return url_fmt.format(version)
# To enable this plug-in to work with NCCL add it to the LD_LIBRARY_PATH
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.append_path("LD_LIBRARY_PATH", self.prefix.lib)
# To enable this plug-in to work with NCCL add it to the LD_LIBRARY_PATH
def setup_dependent_run_environment(self, env, dependent_spec):
def setup_dependent_run_environment(
self, env: EnvironmentModifications, dependent_spec: Spec
) -> None:
env.append_path("LD_LIBRARY_PATH", self.prefix.lib)
def configure_args(self):

View File

@@ -36,11 +36,13 @@ class AwsOfiRccl(AutotoolsPackage):
depends_on("libtool", type="build")
# To enable this plug-in to work with RCCL add it to the LD_LIBRARY_PATH
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.prepend_path("LD_LIBRARY_PATH", self.prefix.lib)
# To enable this plug-in to work with RCCL add it to the LD_LIBRARY_PATH
def setup_dependent_run_environment(self, env, dependent_spec):
def setup_dependent_run_environment(
self, env: EnvironmentModifications, dependent_spec: Spec
) -> None:
env.prepend_path("LD_LIBRARY_PATH", self.prefix.lib)
def configure_args(self):

View File

@@ -30,7 +30,7 @@ class Babelflow(CMakePackage):
# Fix missing implicit includes
@when("%gcc@7:")
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
env.append_flags("CXXFLAGS", "-include limits")
def cmake_args(self):

View File

@@ -831,7 +831,7 @@ def edit(self, pkg, spec, prefix):
for key in config:
inc.write("{0} = {1}\n".format(key, config[key]))
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
######################################
# Build and Installation Directories #
######################################

View File

@@ -36,8 +36,12 @@ class Babl(MesonPackage):
depends_on("lcms")
depends_on("gobject-introspection")
def setup_dependent_build_environment(self, env, dependent_spec):
def setup_dependent_build_environment(
self, env: EnvironmentModifications, dependent_spec: Spec
) -> None:
env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
def setup_dependent_run_environment(self, env, dependent_spec):
def setup_dependent_run_environment(
self, env: EnvironmentModifications, dependent_spec: Spec
) -> None:
env.prepend_path("XDG_DATA_DIRS", self.prefix.share)

View File

@@ -22,5 +22,5 @@ class Backupninja(AutotoolsPackage):
depends_on("bash", type="build")
depends_on("gawk", type="build")
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.prepend_path("PATH", self.prefix.sbin)

View File

@@ -19,5 +19,5 @@ class BamReadcount(CMakePackage):
depends_on("c", type="build")
depends_on("cxx", type="build") # generated
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
env.append_flags("CFLAGS", self.compiler.cc_pic_flag)

View File

@@ -19,6 +19,6 @@ class Bamaddrg(MakefilePackage):
depends_on("bamtools", type="build")
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
env.set("BAMTOOLS_ROOT", self.spec["bamtools"].prefix)
env.set("PREFIX", self.prefix)

View File

@@ -85,5 +85,5 @@ def install(self, spec, prefix):
install("python/bartview.py", join_path(prefix.bin, "bartview"))
filter_file(r"#!/usr/bin/python", "#!/usr/bin/env python", prefix.bin.bartview)
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.set("TOOLBOX_PATH", self.prefix)

View File

@@ -25,7 +25,7 @@ class Barvinok(AutotoolsPackage):
depends_on("llvm +clang", when="+pet")
depends_on("libyaml", when="+pet")
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
env.set("CFLAGS", "-pthread")
def configure_args(self):

View File

@@ -256,7 +256,7 @@ def determine_version(cls, exe):
match = re.search(r"Build label: ([\d.]+)", output)
return match.group(1) if match else None
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
# fix the broken linking (on power9)
# https://github.com/bazelbuild/bazel/issues/10327
env.set("BAZEL_LINKOPTS", "")

View File

@@ -25,6 +25,6 @@ class Bbmap(Package, SourceforgePackage):
def install(self, spec, prefix):
install_tree(".", prefix.bin)
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.set("BBMAP_CONFIG", self.prefix.bin.config)
env.set("BBMAP_RESOURCES", self.prefix.bin.resources)

View File

@@ -133,5 +133,5 @@ def install(self, spec, prefix):
install("plugins/*.so", self.prefix.libexec.bcftools)
@when("@1.2")
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.set("BCFTOOLS_PLUGINS", self.prefix.libexec.bcftools)

View File

@@ -25,7 +25,7 @@ def url_for_version(self, ver):
base = "https://github.com/beast-dev/beast-mcmc/releases/download"
return "{0}/v{1}/BEASTv{1}.tgz".format(base, ver.dotted)
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.set("BEAST1", self.prefix)
env.set("BEAST_LIB", self.prefix.lib)

View File

@@ -49,7 +49,7 @@ def patch(self):
r"(beast\.pkgmgmt.*\b)|(viz.*\b)", "{0} {1} \\1".format(javafx, modules), i
)
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.set("BEAST", self.prefix)
def install(self, spec, prefix):

View File

@@ -63,7 +63,7 @@ class Biopieces(Package):
def install(self, spec, prefix):
install_tree(".", prefix)
def setup_run_environment(self, env):
def setup_run_environment(self, env: EnvironmentModifications) -> None:
# Note: user will need to set environment variables on their own,
# dependent on where they will want data to be located:
# BP_DATA - Contains genomic data etc.

View File

@@ -30,5 +30,5 @@ def patch(self):
def configure_args(self):
return ["--with-QDpath=" + self.spec["qd"].prefix, "--enable-pythoninterface=no"]
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
env.append_flags("CXXFLAGS", "-Wno-deprecated")

View File

@@ -32,7 +32,7 @@ def flag_handler(self, name, flags):
flags.append("-fcommon")
return (flags, None, None)
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
env.set("MACHTYPE", "x86_64")
def install(self, spec, prefix):

View File

@@ -55,7 +55,7 @@ class Bml(CMakePackage):
)
depends_on("cuda", when="+cusolver")
def setup_build_environment(self, env):
def setup_build_environment(self, env: EnvironmentModifications) -> None:
if "+magma" in self.spec:
env.set("MAGMA_ROOT", self.spec["magma"].prefix)

Some files were not shown because too many files have changed in this diff Show More