summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorHarmen Stoppels <me@harmenstoppels.nl>2024-11-15 09:13:10 +0100
committerGitHub <noreply@github.com>2024-11-15 09:13:10 +0100
commitb7993317ea8e9319d1b02a901fbfe58447faf910 (patch)
treeac4e1d68f0746d0f559b4c87e299f72ce45f8a3b /var
parent66622ec4d0903123de65974516ba7e5480206be1 (diff)
downloadspack-b7993317ea8e9319d1b02a901fbfe58447faf910.tar.gz
spack-b7993317ea8e9319d1b02a901fbfe58447faf910.tar.bz2
spack-b7993317ea8e9319d1b02a901fbfe58447faf910.tar.xz
spack-b7993317ea8e9319d1b02a901fbfe58447faf910.zip
Improve type hints for package API (#47576)
by disentangling `package_base`, `builder` and `directives`.
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builder.test/packages/builder-and-mixins/package.py4
-rw-r--r--var/spack/repos/builtin.mock/packages/py-test-callback/package.py6
-rw-r--r--var/spack/repos/builtin/packages/adios2/package.py5
-rw-r--r--var/spack/repos/builtin/packages/assimp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bacio/package.py2
-rw-r--r--var/spack/repos/builtin/packages/blaspp/package.py4
-rw-r--r--var/spack/repos/builtin/packages/boost/package.py12
-rw-r--r--var/spack/repos/builtin/packages/bufr/package.py2
-rw-r--r--var/spack/repos/builtin/packages/g2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/g2c/package.py2
-rw-r--r--var/spack/repos/builtin/packages/g2tmpl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/gfsio/package.py2
-rw-r--r--var/spack/repos/builtin/packages/glib/package.py6
-rw-r--r--var/spack/repos/builtin/packages/grib-util/package.py2
-rw-r--r--var/spack/repos/builtin/packages/hipblas/package.py4
-rw-r--r--var/spack/repos/builtin/packages/hipsolver/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ip/package.py2
-rw-r--r--var/spack/repos/builtin/packages/landsfcutil/package.py2
-rw-r--r--var/spack/repos/builtin/packages/lapackpp/package.py4
-rw-r--r--var/spack/repos/builtin/packages/lc-framework/package.py3
-rw-r--r--var/spack/repos/builtin/packages/libxml2/package.py7
-rw-r--r--var/spack/repos/builtin/packages/mapl/package.py2
-rw-r--r--var/spack/repos/builtin/packages/mercury/package.py2
-rw-r--r--var/spack/repos/builtin/packages/ncio/package.py2
-rw-r--r--var/spack/repos/builtin/packages/nemsio/package.py2
-rw-r--r--var/spack/repos/builtin/packages/nemsiogfs/package.py2
-rw-r--r--var/spack/repos/builtin/packages/netcdf-c/package.py9
-rw-r--r--var/spack/repos/builtin/packages/nimrod-aai/package.py2
-rw-r--r--var/spack/repos/builtin/packages/prod-util/package.py2
-rw-r--r--var/spack/repos/builtin/packages/proj/package.py7
-rw-r--r--var/spack/repos/builtin/packages/raja/package.py2
-rw-r--r--var/spack/repos/builtin/packages/rocthrust/package.py2
-rw-r--r--var/spack/repos/builtin/packages/sfcio/package.py2
-rw-r--r--var/spack/repos/builtin/packages/sigio/package.py2
-rw-r--r--var/spack/repos/builtin/packages/sp/package.py2
-rw-r--r--var/spack/repos/builtin/packages/strumpack/package.py2
-rw-r--r--var/spack/repos/builtin/packages/sundials/package.py2
-rw-r--r--var/spack/repos/builtin/packages/superlu/package.py6
-rw-r--r--var/spack/repos/builtin/packages/tcl/package.py40
-rw-r--r--var/spack/repos/builtin/packages/vtk-m/package.py5
-rw-r--r--var/spack/repos/builtin/packages/w3emc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/xsdk-examples/package.py2
42 files changed, 80 insertions, 96 deletions
diff --git a/var/spack/repos/builder.test/packages/builder-and-mixins/package.py b/var/spack/repos/builder.test/packages/builder-and-mixins/package.py
index 2e12b0e806..354f1bcd1a 100644
--- a/var/spack/repos/builder.test/packages/builder-and-mixins/package.py
+++ b/var/spack/repos/builder.test/packages/builder-and-mixins/package.py
@@ -2,7 +2,7 @@
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
-import spack.builder
+import spack.phase_callbacks
from spack.build_systems import generic
from spack.package import *
@@ -17,7 +17,7 @@ class BuilderAndMixins(Package):
version("1.0", md5="0123456789abcdef0123456789abcdef")
-class BuilderMixin(metaclass=spack.builder.PhaseCallbacksMeta):
+class BuilderMixin(metaclass=spack.phase_callbacks.PhaseCallbacksMeta):
@run_before("install")
def before_install(self):
pass
diff --git a/var/spack/repos/builtin.mock/packages/py-test-callback/package.py b/var/spack/repos/builtin.mock/packages/py-test-callback/package.py
index b152490895..4abad2f679 100644
--- a/var/spack/repos/builtin.mock/packages/py-test-callback/package.py
+++ b/var/spack/repos/builtin.mock/packages/py-test-callback/package.py
@@ -4,7 +4,7 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import spack.pkg.builtin.mock.python as mp
-from spack.build_systems._checks import BaseBuilder, execute_install_time_tests
+from spack.build_systems._checks import BuilderWithDefaults, execute_install_time_tests
from spack.package import *
@@ -31,7 +31,7 @@ class PyTestCallback(mp.Python):
@spack.builder.builder("testcallback")
-class MyBuilder(BaseBuilder):
+class MyBuilder(BuilderWithDefaults):
phases = ("install",)
#: Callback names for install-time test
@@ -40,7 +40,7 @@ class MyBuilder(BaseBuilder):
def install(self, pkg, spec, prefix):
pkg.install(spec, prefix)
- spack.builder.run_after("install")(execute_install_time_tests)
+ spack.phase_callbacks.run_after("install")(execute_install_time_tests)
def test_callback(self):
self.pkg.test_callback()
diff --git a/var/spack/repos/builtin/packages/adios2/package.py b/var/spack/repos/builtin/packages/adios2/package.py
index dabe5554a3..b3a966110c 100644
--- a/var/spack/repos/builtin/packages/adios2/package.py
+++ b/var/spack/repos/builtin/packages/adios2/package.py
@@ -6,6 +6,7 @@
import os
import tempfile
+from spack.build_systems.cmake import CMakeBuilder
from spack.package import *
@@ -313,11 +314,11 @@ class Adios2(CMakePackage, CudaPackage, ROCmPackage):
# hip support
if spec.satisfies("+cuda"):
- args.append(self.builder.define_cuda_architectures(self))
+ args.append(CMakeBuilder.define_cuda_architectures(self))
# hip support
if spec.satisfies("+rocm"):
- args.append(self.builder.define_hip_architectures(self))
+ args.append(CMakeBuilder.define_hip_architectures(self))
return args
diff --git a/var/spack/repos/builtin/packages/assimp/package.py b/var/spack/repos/builtin/packages/assimp/package.py
index 2e51f75e53..ec8f239e4c 100644
--- a/var/spack/repos/builtin/packages/assimp/package.py
+++ b/var/spack/repos/builtin/packages/assimp/package.py
@@ -70,7 +70,7 @@ class Assimp(CMakePackage):
return (None, None, flags)
def check(self):
- unit = Executable(join_path(self.builder.build_directory, "bin", "unit"))
+ unit = Executable(join_path(self.build_directory, "bin", "unit"))
skipped_tests = [
"AssimpAPITest_aiMatrix3x3.aiMatrix3FromToTest",
"AssimpAPITest_aiMatrix4x4.aiMatrix4FromToTest",
diff --git a/var/spack/repos/builtin/packages/bacio/package.py b/var/spack/repos/builtin/packages/bacio/package.py
index 676dab9849..18a80fdcd3 100644
--- a/var/spack/repos/builtin/packages/bacio/package.py
+++ b/var/spack/repos/builtin/packages/bacio/package.py
@@ -39,5 +39,5 @@ class Bacio(CMakePackage):
filter_file(".+", "2.4.1", "VERSION")
def check(self):
- with working_dir(self.builder.build_directory):
+ with working_dir(self.build_directory):
make("test")
diff --git a/var/spack/repos/builtin/packages/blaspp/package.py b/var/spack/repos/builtin/packages/blaspp/package.py
index 2bdaf62c74..9974e1d397 100644
--- a/var/spack/repos/builtin/packages/blaspp/package.py
+++ b/var/spack/repos/builtin/packages/blaspp/package.py
@@ -117,8 +117,8 @@ class Blaspp(CMakePackage, CudaPackage, ROCmPackage):
def check(self):
# If the tester fails to build, ensure that the check() fails.
- if os.path.isfile(join_path(self.builder.build_directory, "test", "tester")):
- with working_dir(self.builder.build_directory):
+ if os.path.isfile(join_path(self.build_directory, "test", "tester")):
+ with working_dir(self.build_directory):
make("check")
else:
raise Exception("The tester was not built!")
diff --git a/var/spack/repos/builtin/packages/boost/package.py b/var/spack/repos/builtin/packages/boost/package.py
index dc7317c6bc..ecc493a3b0 100644
--- a/var/spack/repos/builtin/packages/boost/package.py
+++ b/var/spack/repos/builtin/packages/boost/package.py
@@ -823,18 +823,6 @@ class Boost(Package):
def setup_run_environment(self, env):
env.set("BOOST_ROOT", self.prefix)
- def setup_dependent_package(self, module, dependent_spec):
- # Disable find package's config mode for versions of Boost that
- # didn't provide it. See https://github.com/spack/spack/issues/20169
- # and https://cmake.org/cmake/help/latest/module/FindBoost.html
- if self.spec.satisfies("boost@:1.69.0") and dependent_spec.satisfies("build_system=cmake"):
- args_fn = type(dependent_spec.package.builder).cmake_args
-
- def _cmake_args(self):
- return ["-DBoost_NO_BOOST_CMAKE=ON"] + args_fn(self)
-
- type(dependent_spec.package.builder).cmake_args = _cmake_args
-
def setup_dependent_build_environment(self, env, dependent_spec):
if "+context" in self.spec and "context-impl" in self.spec.variants:
context_impl = self.spec.variants["context-impl"].value
diff --git a/var/spack/repos/builtin/packages/bufr/package.py b/var/spack/repos/builtin/packages/bufr/package.py
index be3431fe6a..1d74b9aaf6 100644
--- a/var/spack/repos/builtin/packages/bufr/package.py
+++ b/var/spack/repos/builtin/packages/bufr/package.py
@@ -129,5 +129,5 @@ class Bufr(CMakePackage):
self._setup_bufr_environment(env, suffix)
def check(self):
- with working_dir(self.builder.build_directory):
+ with working_dir(self.build_directory):
make("test")
diff --git a/var/spack/repos/builtin/packages/g2/package.py b/var/spack/repos/builtin/packages/g2/package.py
index 3f64de93c2..b8d4a9be51 100644
--- a/var/spack/repos/builtin/packages/g2/package.py
+++ b/var/spack/repos/builtin/packages/g2/package.py
@@ -98,5 +98,5 @@ class G2(CMakePackage):
env.set("G2_INC" + suffix, join_path(self.prefix, "include_" + suffix))
def check(self):
- with working_dir(self.builder.build_directory):
+ with working_dir(self.build_directory):
make("test")
diff --git a/var/spack/repos/builtin/packages/g2c/package.py b/var/spack/repos/builtin/packages/g2c/package.py
index d4cb7c74a2..0554ccf7b8 100644
--- a/var/spack/repos/builtin/packages/g2c/package.py
+++ b/var/spack/repos/builtin/packages/g2c/package.py
@@ -94,5 +94,5 @@ class G2c(CMakePackage):
env.set("G2C_INC", join_path(self.prefix, "include"))
def check(self):
- with working_dir(self.builder.build_directory):
+ with working_dir(self.build_directory):
make("test")
diff --git a/var/spack/repos/builtin/packages/g2tmpl/package.py b/var/spack/repos/builtin/packages/g2tmpl/package.py
index b5ad734b01..b76804e873 100644
--- a/var/spack/repos/builtin/packages/g2tmpl/package.py
+++ b/var/spack/repos/builtin/packages/g2tmpl/package.py
@@ -38,5 +38,5 @@ class G2tmpl(CMakePackage):
return args
def check(self):
- with working_dir(self.builder.build_directory):
+ with working_dir(self.build_directory):
make("test")
diff --git a/var/spack/repos/builtin/packages/gfsio/package.py b/var/spack/repos/builtin/packages/gfsio/package.py
index e478a8b8ed..590f70dac5 100644
--- a/var/spack/repos/builtin/packages/gfsio/package.py
+++ b/var/spack/repos/builtin/packages/gfsio/package.py
@@ -46,5 +46,5 @@ class Gfsio(CMakePackage):
return (None, None, flags)
def check(self):
- with working_dir(self.builder.build_directory):
+ with working_dir(self.build_directory):
make("test")
diff --git a/var/spack/repos/builtin/packages/glib/package.py b/var/spack/repos/builtin/packages/glib/package.py
index efdcfa90c1..057d180dd6 100644
--- a/var/spack/repos/builtin/packages/glib/package.py
+++ b/var/spack/repos/builtin/packages/glib/package.py
@@ -208,7 +208,7 @@ class Glib(MesonPackage, AutotoolsPackage):
return find_libraries(["libglib*"], root=self.prefix, recursive=True)
-class BaseBuilder(metaclass=spack.builder.PhaseCallbacksMeta):
+class AnyBuilder(BaseBuilder):
@property
def dtrace_copy_path(self):
return join_path(self.stage.source_path, "dtrace-copy")
@@ -288,7 +288,7 @@ class BaseBuilder(metaclass=spack.builder.PhaseCallbacksMeta):
filter_file(pattern, repl, myfile, backup=False)
-class MesonBuilder(BaseBuilder, spack.build_systems.meson.MesonBuilder):
+class MesonBuilder(AnyBuilder, spack.build_systems.meson.MesonBuilder):
def meson_args(self):
args = []
if self.spec.satisfies("@2.63.5:"):
@@ -330,7 +330,7 @@ class MesonBuilder(BaseBuilder, spack.build_systems.meson.MesonBuilder):
return args
-class AutotoolsBuilder(BaseBuilder, spack.build_systems.autotools.AutotoolsBuilder):
+class AutotoolsBuilder(AnyBuilder, spack.build_systems.autotools.AutotoolsBuilder):
def configure_args(self):
args = []
if self.spec.satisfies("+libmount"):
diff --git a/var/spack/repos/builtin/packages/grib-util/package.py b/var/spack/repos/builtin/packages/grib-util/package.py
index b8e2aaee37..b44e86134e 100644
--- a/var/spack/repos/builtin/packages/grib-util/package.py
+++ b/var/spack/repos/builtin/packages/grib-util/package.py
@@ -56,5 +56,5 @@ class GribUtil(CMakePackage):
return args
def check(self):
- with working_dir(self.builder.build_directory):
+ with working_dir(self.build_directory):
make("test")
diff --git a/var/spack/repos/builtin/packages/hipblas/package.py b/var/spack/repos/builtin/packages/hipblas/package.py
index 1e928b27d5..e4b0ccc8d5 100644
--- a/var/spack/repos/builtin/packages/hipblas/package.py
+++ b/var/spack/repos/builtin/packages/hipblas/package.py
@@ -145,7 +145,5 @@ class Hipblas(CMakePackage, CudaPackage, ROCmPackage):
return args
def check(self):
- exe = Executable(
- join_path(self.builder.build_directory, "clients", "staging", "hipblas-test")
- )
+ exe = Executable(join_path(self.build_directory, "clients", "staging", "hipblas-test"))
exe("--gtest_filter=-*known_bug*")
diff --git a/var/spack/repos/builtin/packages/hipsolver/package.py b/var/spack/repos/builtin/packages/hipsolver/package.py
index 9769f44ebb..5df642cd90 100644
--- a/var/spack/repos/builtin/packages/hipsolver/package.py
+++ b/var/spack/repos/builtin/packages/hipsolver/package.py
@@ -119,7 +119,7 @@ class Hipsolver(CMakePackage, CudaPackage, ROCmPackage):
patch("0001-suite-sparse-include-path-6.1.1.patch", when="@6.1.1:")
def check(self):
- exe = join_path(self.builder.build_directory, "clients", "staging", "hipsolver-test")
+ exe = join_path(self.build_directory, "clients", "staging", "hipsolver-test")
exe = which(exe)
exe(["--gtest_filter=-*known_bug*"])
diff --git a/var/spack/repos/builtin/packages/ip/package.py b/var/spack/repos/builtin/packages/ip/package.py
index 5a55f37b81..e87a5fb6f7 100644
--- a/var/spack/repos/builtin/packages/ip/package.py
+++ b/var/spack/repos/builtin/packages/ip/package.py
@@ -121,5 +121,5 @@ class Ip(CMakePackage):
@when("@4:")
def check(self):
- with working_dir(self.builder.build_directory):
+ with working_dir(self.build_directory):
make("test")
diff --git a/var/spack/repos/builtin/packages/landsfcutil/package.py b/var/spack/repos/builtin/packages/landsfcutil/package.py
index 9027d4eeda..c137cb2e90 100644
--- a/var/spack/repos/builtin/packages/landsfcutil/package.py
+++ b/var/spack/repos/builtin/packages/landsfcutil/package.py
@@ -48,5 +48,5 @@ class Landsfcutil(CMakePackage):
return (None, None, flags)
def check(self):
- with working_dir(self.builder.build_directory):
+ with working_dir(self.build_directory):
make("test")
diff --git a/var/spack/repos/builtin/packages/lapackpp/package.py b/var/spack/repos/builtin/packages/lapackpp/package.py
index a975792555..7e3577aa28 100644
--- a/var/spack/repos/builtin/packages/lapackpp/package.py
+++ b/var/spack/repos/builtin/packages/lapackpp/package.py
@@ -129,8 +129,8 @@ class Lapackpp(CMakePackage, CudaPackage, ROCmPackage):
def check(self):
# If the tester fails to build, ensure that the check() fails.
- if os.path.isfile(join_path(self.builder.build_directory, "test", "tester")):
- with working_dir(self.builder.build_directory):
+ if os.path.isfile(join_path(self.build_directory, "test", "tester")):
+ with working_dir(self.build_directory):
make("check")
else:
raise Exception("The tester was not built!")
diff --git a/var/spack/repos/builtin/packages/lc-framework/package.py b/var/spack/repos/builtin/packages/lc-framework/package.py
index 60ff03576b..0f9f1b1be2 100644
--- a/var/spack/repos/builtin/packages/lc-framework/package.py
+++ b/var/spack/repos/builtin/packages/lc-framework/package.py
@@ -3,6 +3,7 @@
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+from spack.build_systems.cmake import CMakeBuilder
from spack.package import *
@@ -45,6 +46,6 @@ class LcFramework(CMakePackage, CudaPackage):
args = [self.define_from_variant("LC_BUILD_LIBPRESSIO_PLUGIN", "libpressio")]
if self.spec.satisfies("+cuda"):
args.append(self.define_from_variant("LC_BUILD_CUDA", "cuda"))
- args.append(self.builder.define_cuda_architectures(self))
+ args.append(CMakeBuilder.define_cuda_architectures(self))
return args
diff --git a/var/spack/repos/builtin/packages/libxml2/package.py b/var/spack/repos/builtin/packages/libxml2/package.py
index 048debd658..8bd6a23b31 100644
--- a/var/spack/repos/builtin/packages/libxml2/package.py
+++ b/var/spack/repos/builtin/packages/libxml2/package.py
@@ -6,7 +6,6 @@ import os
import llnl.util.filesystem as fs
-import spack.builder
from spack.build_systems import autotools, nmake
from spack.package import *
@@ -225,7 +224,7 @@ class Libxml2(AutotoolsPackage, NMakePackage):
xmllint("--dtdvalid", dtd_path, data_dir.join("info.xml"))
-class BaseBuilder(metaclass=spack.builder.PhaseCallbacksMeta):
+class AnyBuilder(BaseBuilder):
@run_after("install")
@on_package_attributes(run_tests=True)
def import_module_test(self):
@@ -234,7 +233,7 @@ class BaseBuilder(metaclass=spack.builder.PhaseCallbacksMeta):
python("-c", "import libxml2")
-class AutotoolsBuilder(BaseBuilder, autotools.AutotoolsBuilder):
+class AutotoolsBuilder(AnyBuilder, autotools.AutotoolsBuilder):
def configure_args(self):
spec = self.spec
@@ -260,7 +259,7 @@ class AutotoolsBuilder(BaseBuilder, autotools.AutotoolsBuilder):
return args
-class NMakeBuilder(BaseBuilder, nmake.NMakeBuilder):
+class NMakeBuilder(AnyBuilder, nmake.NMakeBuilder):
phases = ("configure", "build", "install")
@property
diff --git a/var/spack/repos/builtin/packages/mapl/package.py b/var/spack/repos/builtin/packages/mapl/package.py
index 9f31c3be66..4fa64a712e 100644
--- a/var/spack/repos/builtin/packages/mapl/package.py
+++ b/var/spack/repos/builtin/packages/mapl/package.py
@@ -423,7 +423,7 @@ class Mapl(CMakePackage):
@run_after("build")
@on_package_attributes(run_tests=True)
def check(self):
- with working_dir(self.builder.build_directory):
+ with working_dir(self.build_directory):
# The test suite contains a lot of tests. We select only those
# that are cheap. Note this requires MPI and 6 processes
ctest("--output-on-failure", "-L", "ESSENTIAL")
diff --git a/var/spack/repos/builtin/packages/mercury/package.py b/var/spack/repos/builtin/packages/mercury/package.py
index 9a533cde8c..bf4de22b88 100644
--- a/var/spack/repos/builtin/packages/mercury/package.py
+++ b/var/spack/repos/builtin/packages/mercury/package.py
@@ -160,5 +160,5 @@ class Mercury(CMakePackage):
def check(self):
"""Unit tests fail when run in parallel."""
- with working_dir(self.builder.build_directory):
+ with working_dir(self.build_directory):
make("test", parallel=False)
diff --git a/var/spack/repos/builtin/packages/ncio/package.py b/var/spack/repos/builtin/packages/ncio/package.py
index d710a81923..665742c633 100644
--- a/var/spack/repos/builtin/packages/ncio/package.py
+++ b/var/spack/repos/builtin/packages/ncio/package.py
@@ -36,5 +36,5 @@ class Ncio(CMakePackage):
env.set("NCIO_LIBDIR", lib[0])
def check(self):
- with working_dir(self.builder.build_directory):
+ with working_dir(self.build_directory):
make("test")
diff --git a/var/spack/repos/builtin/packages/nemsio/package.py b/var/spack/repos/builtin/packages/nemsio/package.py
index 0677376d15..20696a70f6 100644
--- a/var/spack/repos/builtin/packages/nemsio/package.py
+++ b/var/spack/repos/builtin/packages/nemsio/package.py
@@ -48,5 +48,5 @@ class Nemsio(CMakePackage):
return args
def check(self):
- with working_dir(self.builder.build_directory):
+ with working_dir(self.build_directory):
make("test")
diff --git a/var/spack/repos/builtin/packages/nemsiogfs/package.py b/var/spack/repos/builtin/packages/nemsiogfs/package.py
index e38f5a0adf..21bb43c2ba 100644
--- a/var/spack/repos/builtin/packages/nemsiogfs/package.py
+++ b/var/spack/repos/builtin/packages/nemsiogfs/package.py
@@ -26,5 +26,5 @@ class Nemsiogfs(CMakePackage):
depends_on("nemsio")
def check(self):
- with working_dir(self.builder.build_directory):
+ with working_dir(self.build_directory):
make("test")
diff --git a/var/spack/repos/builtin/packages/netcdf-c/package.py b/var/spack/repos/builtin/packages/netcdf-c/package.py
index 986fbfe749..d2d05a29d6 100644
--- a/var/spack/repos/builtin/packages/netcdf-c/package.py
+++ b/var/spack/repos/builtin/packages/netcdf-c/package.py
@@ -9,7 +9,6 @@ import sys
from llnl.util.lang import dedupe
-import spack.builder
from spack.build_systems import autotools, cmake
from spack.package import *
from spack.util.environment import filter_system_paths
@@ -291,7 +290,7 @@ class NetcdfC(CMakePackage, AutotoolsPackage):
env.append_path("HDF5_PLUGIN_PATH", self.prefix.plugins)
def flag_handler(self, name, flags):
- if self.builder.build_system == "autotools":
+ if self.spec.satisfies("build_system=autotools"):
if name == "cflags":
if "+pic" in self.spec:
flags.append(self.compiler.cc_pic_flag)
@@ -305,7 +304,7 @@ class NetcdfC(CMakePackage, AutotoolsPackage):
return find_libraries("libnetcdf", root=self.prefix, shared=shared, recursive=True)
-class BaseBuilder(metaclass=spack.builder.PhaseCallbacksMeta):
+class AnyBuilder(BaseBuilder):
def setup_dependent_build_environment(self, env, dependent_spec):
# Some packages, e.g. ncview, refuse to build if the compiler path returned by nc-config
# differs from the path to the compiler that the package should be built with. Therefore,
@@ -329,7 +328,7 @@ class BaseBuilder(metaclass=spack.builder.PhaseCallbacksMeta):
filter_compiler_wrappers("nc-config", relative_root="bin")
-class CMakeBuilder(BaseBuilder, cmake.CMakeBuilder):
+class CMakeBuilder(AnyBuilder, cmake.CMakeBuilder):
def cmake_args(self):
base_cmake_args = [
self.define_from_variant("BUILD_SHARED_LIBS", "shared"),
@@ -376,7 +375,7 @@ class CMakeBuilder(BaseBuilder, cmake.CMakeBuilder):
filter_file(f"hdf5_hl-{config}", "hdf5_hl", *files, ignore_absent=True)
-class AutotoolsBuilder(BaseBuilder, autotools.AutotoolsBuilder):
+class AutotoolsBuilder(AnyBuilder, autotools.AutotoolsBuilder):
@property
def force_autoreconf(self):
return any(self.spec.satisfies(s) for s in self.pkg._force_autoreconf_when)
diff --git a/var/spack/repos/builtin/packages/nimrod-aai/package.py b/var/spack/repos/builtin/packages/nimrod-aai/package.py
index 0b24858ef8..2bfc608861 100644
--- a/var/spack/repos/builtin/packages/nimrod-aai/package.py
+++ b/var/spack/repos/builtin/packages/nimrod-aai/package.py
@@ -69,5 +69,5 @@ class NimrodAai(CMakePackage):
@run_after("build")
@on_package_attributes(run_tests=True)
def check(self):
- with working_dir(self.builder.build_directory):
+ with working_dir(self.build_directory):
ctest("--output-on-failure")
diff --git a/var/spack/repos/builtin/packages/prod-util/package.py b/var/spack/repos/builtin/packages/prod-util/package.py
index e7c5b37485..0fe46740f1 100644
--- a/var/spack/repos/builtin/packages/prod-util/package.py
+++ b/var/spack/repos/builtin/packages/prod-util/package.py
@@ -34,5 +34,5 @@ class ProdUtil(CMakePackage):
depends_on("w3emc", when="@2:")
def check(self):
- with working_dir(self.builder.build_directory):
+ with working_dir(self.build_directory):
make("test")
diff --git a/var/spack/repos/builtin/packages/proj/package.py b/var/spack/repos/builtin/packages/proj/package.py
index d9ed3ef11d..17d7da99ec 100644
--- a/var/spack/repos/builtin/packages/proj/package.py
+++ b/var/spack/repos/builtin/packages/proj/package.py
@@ -3,7 +3,6 @@
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
-import spack.builder
from spack.build_systems import autotools, cmake
from spack.package import *
@@ -145,7 +144,7 @@ class Proj(CMakePackage, AutotoolsPackage):
env.set("PROJ_LIB", self.prefix.share.proj)
-class BaseBuilder(metaclass=spack.builder.PhaseCallbacksMeta):
+class AnyBuilder(BaseBuilder):
def setup_build_environment(self, env):
env.set("PROJ_LIB", join_path(self.pkg.stage.source_path, "nad"))
@@ -154,7 +153,7 @@ class BaseBuilder(metaclass=spack.builder.PhaseCallbacksMeta):
install_tree(join_path("share", "proj"), self.prefix.share.proj)
-class CMakeBuilder(BaseBuilder, cmake.CMakeBuilder):
+class CMakeBuilder(AnyBuilder, cmake.CMakeBuilder):
def cmake_args(self):
shared_arg = "BUILD_SHARED_LIBS" if self.spec.satisfies("@7:") else "BUILD_LIBPROJ_SHARED"
args = [
@@ -177,7 +176,7 @@ class CMakeBuilder(BaseBuilder, cmake.CMakeBuilder):
return args
-class AutotoolsBuilder(BaseBuilder, autotools.AutotoolsBuilder):
+class AutotoolsBuilder(AnyBuilder, autotools.AutotoolsBuilder):
def configure_args(self):
args = []
diff --git a/var/spack/repos/builtin/packages/raja/package.py b/var/spack/repos/builtin/packages/raja/package.py
index 39f1d10862..1894598f76 100644
--- a/var/spack/repos/builtin/packages/raja/package.py
+++ b/var/spack/repos/builtin/packages/raja/package.py
@@ -448,7 +448,7 @@ class Raja(CachedCMakePackage, CudaPackage, ROCmPackage):
@property
def build_relpath(self):
"""Relative path to the cmake build subdirectory."""
- return join_path("..", self.builder.build_dirname)
+ return join_path("..", self.build_dirname)
@run_after("install")
def setup_build_tests(self):
diff --git a/var/spack/repos/builtin/packages/rocthrust/package.py b/var/spack/repos/builtin/packages/rocthrust/package.py
index 93b017243f..29029e992a 100644
--- a/var/spack/repos/builtin/packages/rocthrust/package.py
+++ b/var/spack/repos/builtin/packages/rocthrust/package.py
@@ -77,7 +77,7 @@ class Rocthrust(CMakePackage):
depends_on(f"rocm-cmake@{ver}:", type="build", when=f"@{ver}")
def check(self):
- with working_dir(self.builder.build_directory):
+ with working_dir(self.build_directory):
make("test")
def setup_build_environment(self, env):
diff --git a/var/spack/repos/builtin/packages/sfcio/package.py b/var/spack/repos/builtin/packages/sfcio/package.py
index afe4ed84c7..5ee64f7092 100644
--- a/var/spack/repos/builtin/packages/sfcio/package.py
+++ b/var/spack/repos/builtin/packages/sfcio/package.py
@@ -46,5 +46,5 @@ class Sfcio(CMakePackage):
return (None, None, flags)
def check(self):
- with working_dir(self.builder.build_directory):
+ with working_dir(self.build_directory):
make("test")
diff --git a/var/spack/repos/builtin/packages/sigio/package.py b/var/spack/repos/builtin/packages/sigio/package.py
index 305f0e9958..b6d3020211 100644
--- a/var/spack/repos/builtin/packages/sigio/package.py
+++ b/var/spack/repos/builtin/packages/sigio/package.py
@@ -44,5 +44,5 @@ class Sigio(CMakePackage):
return (None, None, flags)
def check(self):
- with working_dir(self.builder.build_directory):
+ with working_dir(self.build_directory):
make("test")
diff --git a/var/spack/repos/builtin/packages/sp/package.py b/var/spack/repos/builtin/packages/sp/package.py
index 5b3b7b4840..7b22e688b8 100644
--- a/var/spack/repos/builtin/packages/sp/package.py
+++ b/var/spack/repos/builtin/packages/sp/package.py
@@ -66,5 +66,5 @@ class Sp(CMakePackage):
return args
def check(self):
- with working_dir(self.builder.build_directory):
+ with working_dir(self.build_directory):
make("test")
diff --git a/var/spack/repos/builtin/packages/strumpack/package.py b/var/spack/repos/builtin/packages/strumpack/package.py
index fc600ac42e..28cc57f26d 100644
--- a/var/spack/repos/builtin/packages/strumpack/package.py
+++ b/var/spack/repos/builtin/packages/strumpack/package.py
@@ -226,7 +226,7 @@ class Strumpack(CMakePackage, CudaPackage, ROCmPackage):
)
with working_dir(test_dir):
- opts = self.builder.std_cmake_args + self.cmake_args() + ["."]
+ opts = self.std_cmake_args + self.cmake_args() + ["."]
cmake = self.spec["cmake"].command
cmake(*opts)
diff --git a/var/spack/repos/builtin/packages/sundials/package.py b/var/spack/repos/builtin/packages/sundials/package.py
index 5be35b6bb0..41f939df5b 100644
--- a/var/spack/repos/builtin/packages/sundials/package.py
+++ b/var/spack/repos/builtin/packages/sundials/package.py
@@ -743,7 +743,7 @@ class Sundials(CMakePackage, CudaPackage, ROCmPackage):
@on_package_attributes(run_tests=True)
def check_test_install(self):
"""Perform test_install on the build."""
- with working_dir(self.builder.build_directory):
+ with working_dir(self.build_directory):
make("test_install")
@property
diff --git a/var/spack/repos/builtin/packages/superlu/package.py b/var/spack/repos/builtin/packages/superlu/package.py
index 6a62ae9e17..92f7481bef 100644
--- a/var/spack/repos/builtin/packages/superlu/package.py
+++ b/var/spack/repos/builtin/packages/superlu/package.py
@@ -84,7 +84,7 @@ class Superlu(CMakePackage, Package):
superlu()
-class BaseBuilder(metaclass=spack.builder.PhaseCallbacksMeta):
+class AnyBuilder(BaseBuilder):
@run_after("install")
def setup_standalone_tests(self):
"""Set up and copy example source files after the package is installed
@@ -138,7 +138,7 @@ class BaseBuilder(metaclass=spack.builder.PhaseCallbacksMeta):
]
-class CMakeBuilder(BaseBuilder, spack.build_systems.cmake.CMakeBuilder):
+class CMakeBuilder(AnyBuilder, spack.build_systems.cmake.CMakeBuilder):
def cmake_args(self):
if self.pkg.version > Version("5.2.1"):
_blaslib_key = "enable_internal_blaslib"
@@ -153,7 +153,7 @@ class CMakeBuilder(BaseBuilder, spack.build_systems.cmake.CMakeBuilder):
return args
-class GenericBuilder(BaseBuilder, spack.build_systems.generic.GenericBuilder):
+class GenericBuilder(AnyBuilder, spack.build_systems.generic.GenericBuilder):
def install(self, pkg, spec, prefix):
"""Use autotools before version 5"""
# Define make.inc file
diff --git a/var/spack/repos/builtin/packages/tcl/package.py b/var/spack/repos/builtin/packages/tcl/package.py
index d95d80331e..a6b243d4bf 100644
--- a/var/spack/repos/builtin/packages/tcl/package.py
+++ b/var/spack/repos/builtin/packages/tcl/package.py
@@ -14,22 +14,20 @@ from spack.util.environment import is_system_path
is_windows = sys.platform == "win32"
-class TclHelper:
- @staticmethod
- def find_script_dir(spec):
- # Put more-specific prefixes first
- check_prefixes = [
- join_path(spec.prefix, "share", "tcl{0}".format(spec.package.version.up_to(2))),
- spec.prefix,
- ]
- for prefix in check_prefixes:
- result = find_first(prefix, "init.tcl")
- if result:
- return os.path.dirname(result)
- raise RuntimeError("Cannot locate init.tcl")
-
-
-class Tcl(AutotoolsPackage, NMakePackage, SourceforgePackage, TclHelper):
+def find_script_dir(spec: Spec) -> str:
+ # Put more-specific prefixes first
+ check_prefixes = [
+ join_path(spec.prefix, "share", "tcl{0}".format(spec.package.version.up_to(2))),
+ spec.prefix,
+ ]
+ for prefix in check_prefixes:
+ result = find_first(prefix, "init.tcl")
+ if result:
+ return os.path.dirname(result)
+ raise RuntimeError("Cannot locate init.tcl")
+
+
+class Tcl(AutotoolsPackage, NMakePackage, SourceforgePackage):
"""Tcl (Tool Command Language) is a very powerful but easy to learn dynamic
programming language, suitable for a very wide range of uses, including web and
desktop applications, networking, administration, testing and many more. Open source
@@ -105,7 +103,7 @@ class Tcl(AutotoolsPackage, NMakePackage, SourceforgePackage, TclHelper):
"""
# When using tkinter from within spack provided python+tkinter,
# python will not be able to find Tcl unless TCL_LIBRARY is set.
- env.set("TCL_LIBRARY", TclHelper.find_script_dir(self.spec))
+ env.set("TCL_LIBRARY", find_script_dir(self.spec))
def setup_dependent_run_environment(self, env, dependent_spec):
"""Set TCLLIBPATH to include the tcl-shipped directory for
@@ -123,7 +121,7 @@ class Tcl(AutotoolsPackage, NMakePackage, SourceforgePackage, TclHelper):
env.prepend_path("TCLLIBPATH", tcllibpath, separator=" ")
-class BaseBuilder(TclHelper, metaclass=spack.builder.PhaseCallbacksMeta):
+class AnyBuilder(BaseBuilder):
@run_after("install")
def symlink_tclsh(self):
# There's some logic regarding this suffix in the build system
@@ -151,7 +149,7 @@ class BaseBuilder(TclHelper, metaclass=spack.builder.PhaseCallbacksMeta):
* https://wiki.tcl-lang.org/page/TCL_LIBRARY
* https://wiki.tcl-lang.org/page/TCLLIBPATH
"""
- env.set("TCL_LIBRARY", TclHelper.find_script_dir(self.spec))
+ env.set("TCL_LIBRARY", find_script_dir(self.spec))
# If we set TCLLIBPATH, we must also ensure that the corresponding
# tcl is found in the build environment. This to prevent cases
@@ -182,7 +180,7 @@ class BaseBuilder(TclHelper, metaclass=spack.builder.PhaseCallbacksMeta):
env.prepend_path("TCLLIBPATH", tcllibpath, separator=" ")
-class AutotoolsBuilder(BaseBuilder, spack.build_systems.autotools.AutotoolsBuilder):
+class AutotoolsBuilder(AnyBuilder, spack.build_systems.autotools.AutotoolsBuilder):
configure_directory = "unix"
def install(self, pkg, spec, prefix):
@@ -215,7 +213,7 @@ class AutotoolsBuilder(BaseBuilder, spack.build_systems.autotools.AutotoolsBuild
make("clean")
-class NMakeBuilder(BaseBuilder, spack.build_systems.nmake.NMakeBuilder):
+class NMakeBuilder(AnyBuilder, spack.build_systems.nmake.NMakeBuilder):
build_targets = ["all"]
install_targets = ["install"]
diff --git a/var/spack/repos/builtin/packages/vtk-m/package.py b/var/spack/repos/builtin/packages/vtk-m/package.py
index c5cef49c58..f896e2160e 100644
--- a/var/spack/repos/builtin/packages/vtk-m/package.py
+++ b/var/spack/repos/builtin/packages/vtk-m/package.py
@@ -7,6 +7,7 @@
import os
import sys
+from spack.build_systems.cmake import CMakeBuilder
from spack.package import *
@@ -249,7 +250,7 @@ class VtkM(CMakePackage, CudaPackage, ROCmPackage):
options.append("-DCMAKE_CUDA_HOST_COMPILER={0}".format(env["SPACK_CXX"]))
if spec.satisfies("@1.9.0:") and spec.satisfies("^cmake@3.18:"):
- options.append(self.builder.define_cuda_architectures(self))
+ options.append(CMakeBuilder.define_cuda_architectures(self))
else:
# VTKm_CUDA_Architecture only accepts a single CUDA arch
@@ -269,7 +270,7 @@ class VtkM(CMakePackage, CudaPackage, ROCmPackage):
# hip support
if "+rocm" in spec:
- options.append(self.builder.define_hip_architectures(self))
+ options.append(CMakeBuilder.define_hip_architectures(self))
return options
diff --git a/var/spack/repos/builtin/packages/w3emc/package.py b/var/spack/repos/builtin/packages/w3emc/package.py
index 82dbf7bf8c..7e0967bcde 100644
--- a/var/spack/repos/builtin/packages/w3emc/package.py
+++ b/var/spack/repos/builtin/packages/w3emc/package.py
@@ -95,5 +95,5 @@ class W3emc(CMakePackage):
return args
def check(self):
- with working_dir(self.builder.build_directory):
+ with working_dir(self.build_directory):
make("test")
diff --git a/var/spack/repos/builtin/packages/xsdk-examples/package.py b/var/spack/repos/builtin/packages/xsdk-examples/package.py
index 66f1ee05a7..4cdb496b97 100644
--- a/var/spack/repos/builtin/packages/xsdk-examples/package.py
+++ b/var/spack/repos/builtin/packages/xsdk-examples/package.py
@@ -101,5 +101,5 @@ class XsdkExamples(CMakePackage, CudaPackage, ROCmPackage):
return args
def check(self):
- with working_dir(self.builder.build_directory):
+ with working_dir(self.build_directory):
ctest("--output-on-failure")