summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorkwryankrattiger <80296582+kwryankrattiger@users.noreply.github.com>2024-01-22 09:31:16 -0600
committerGitHub <noreply@github.com>2024-01-22 16:31:16 +0100
commit2d9c6c32228f94e3e5595283b52ae7cc5a160e16 (patch)
treef11c3ffba04496f7878a0a4dff57e030f6c9bed0 /var
parentb28692dc723fa74a19d0b0795b46176b2dc59c5c (diff)
downloadspack-2d9c6c32228f94e3e5595283b52ae7cc5a160e16.tar.gz
spack-2d9c6c32228f94e3e5595283b52ae7cc5a160e16.tar.bz2
spack-2d9c6c32228f94e3e5595283b52ae7cc5a160e16.tar.xz
spack-2d9c6c32228f94e3e5595283b52ae7cc5a160e16.zip
CMakePackage pass python hints automatically (#42201)
This commit ensures that CMake packages that also have Python as a build/link dep get a couple defines for the Python path so that CMake's builtin `FindPython3`, `FindPython`, `FindPythonInterp` modules can locate Python correctly. The main problem with those CMake modules is that they first search for Python versions known at the time of release, meaning that old CMake maybe find older system Python 3.8 even though Python 3.11 comes first in `CMAKE_PREFIX_PATH` and `PATH`. Package maintainers can opt out of this by overriding the `find_python_hints = False` attribute in the package class.
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/acts/package.py4
-rw-r--r--var/spack/repos/builtin/packages/adios2/package.py4
-rw-r--r--var/spack/repos/builtin/packages/bohrium/package.py2
-rw-r--r--var/spack/repos/builtin/packages/caliper/package.py1
-rw-r--r--var/spack/repos/builtin/packages/clingo/package.py18
-rw-r--r--var/spack/repos/builtin/packages/cvise/package.py3
-rw-r--r--var/spack/repos/builtin/packages/dd4hep/package.py1
-rw-r--r--var/spack/repos/builtin/packages/dealii/package.py11
-rw-r--r--var/spack/repos/builtin/packages/doxygen/package.py9
-rw-r--r--var/spack/repos/builtin/packages/eccodes/package.py3
-rw-r--r--var/spack/repos/builtin/packages/ecflow/package.py1
-rw-r--r--var/spack/repos/builtin/packages/ecmwf-atlas/package.py1
-rw-r--r--var/spack/repos/builtin/packages/faiss/package.py3
-rw-r--r--var/spack/repos/builtin/packages/fckit/package.py1
-rw-r--r--var/spack/repos/builtin/packages/flann/package.py4
-rw-r--r--var/spack/repos/builtin/packages/gnina/package.py5
-rw-r--r--var/spack/repos/builtin/packages/gnuradio/package.py5
-rw-r--r--var/spack/repos/builtin/packages/halide/package.py1
-rw-r--r--var/spack/repos/builtin/packages/henson/package.py7
-rw-r--r--var/spack/repos/builtin/packages/hoomd-blue/package.py5
-rw-r--r--var/spack/repos/builtin/packages/lammps/package.py3
-rw-r--r--var/spack/repos/builtin/packages/libmolgrid/package.py7
-rw-r--r--var/spack/repos/builtin/packages/libpressio/package.py1
-rw-r--r--var/spack/repos/builtin/packages/llvm-doe/package.py7
-rw-r--r--var/spack/repos/builtin/packages/llvm/package.py7
-rw-r--r--var/spack/repos/builtin/packages/neuron/package.py3
-rw-r--r--var/spack/repos/builtin/packages/nlopt/package.py8
-rw-r--r--var/spack/repos/builtin/packages/odgi/package.py6
-rw-r--r--var/spack/repos/builtin/packages/omnitrace/package.py5
-rw-r--r--var/spack/repos/builtin/packages/open3d/package.py7
-rw-r--r--var/spack/repos/builtin/packages/openbabel/package.py8
-rw-r--r--var/spack/repos/builtin/packages/opencv/package.py1
-rw-r--r--var/spack/repos/builtin/packages/openmolcas/package.py6
-rw-r--r--var/spack/repos/builtin/packages/openpmd-api/package.py8
-rw-r--r--var/spack/repos/builtin/packages/openspeedshop-utils/package.py33
-rw-r--r--var/spack/repos/builtin/packages/openspeedshop/package.py34
-rw-r--r--var/spack/repos/builtin/packages/openturns/package.py4
-rw-r--r--var/spack/repos/builtin/packages/openwsman/package.py1
-rw-r--r--var/spack/repos/builtin/packages/pagmo/package.py4
-rw-r--r--var/spack/repos/builtin/packages/paraview/package.py1
-rw-r--r--var/spack/repos/builtin/packages/pfunit/package.py1
-rw-r--r--var/spack/repos/builtin/packages/precice/package.py3
-rw-r--r--var/spack/repos/builtin/packages/py-pybind11/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-pykokkos-base/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-tfdlpack/package.py9
-rw-r--r--var/spack/repos/builtin/packages/qmcpack/package.py1
-rw-r--r--var/spack/repos/builtin/packages/rdma-core/package.py7
-rw-r--r--var/spack/repos/builtin/packages/root/package.py4
-rw-r--r--var/spack/repos/builtin/packages/scine-database/package.py5
-rw-r--r--var/spack/repos/builtin/packages/scine-molassembler/package.py5
-rw-r--r--var/spack/repos/builtin/packages/scine-readuct/package.py5
-rw-r--r--var/spack/repos/builtin/packages/scine-serenity/package.py5
-rw-r--r--var/spack/repos/builtin/packages/scine-sparrow/package.py5
-rw-r--r--var/spack/repos/builtin/packages/scine-utilities/package.py6
-rw-r--r--var/spack/repos/builtin/packages/scine-xtb/package.py5
-rw-r--r--var/spack/repos/builtin/packages/sensei/package.py32
-rw-r--r--var/spack/repos/builtin/packages/serenity/package.py5
-rw-r--r--var/spack/repos/builtin/packages/sollve/package.py1
-rw-r--r--var/spack/repos/builtin/packages/spectre/package.py1
-rw-r--r--var/spack/repos/builtin/packages/steps/package.py1
-rw-r--r--var/spack/repos/builtin/packages/tasmanian/package.py5
-rw-r--r--var/spack/repos/builtin/packages/templight/package.py1
-rw-r--r--var/spack/repos/builtin/packages/tfel/package.py2
-rw-r--r--var/spack/repos/builtin/packages/timemory/package.py5
-rw-r--r--var/spack/repos/builtin/packages/tiramisu/package.py5
-rw-r--r--var/spack/repos/builtin/packages/vdt/package.py5
-rw-r--r--var/spack/repos/builtin/packages/vtk/package.py2
-rw-r--r--var/spack/repos/builtin/packages/xcfun/package.py1
-rw-r--r--var/spack/repos/builtin/packages/xrootd/package.py7
-rw-r--r--var/spack/repos/builtin/packages/xtensor-python/package.py8
70 files changed, 74 insertions, 320 deletions
diff --git a/var/spack/repos/builtin/packages/acts/package.py b/var/spack/repos/builtin/packages/acts/package.py
index b3eef6dfa6..a622609087 100644
--- a/var/spack/repos/builtin/packages/acts/package.py
+++ b/var/spack/repos/builtin/packages/acts/package.py
@@ -458,10 +458,6 @@ class Acts(CMakePackage, CudaPackage):
if cuda_arch != "none":
args.append(f"-DCUDA_FLAGS=-arch=sm_{cuda_arch[0]}")
- if "+python" in spec:
- python = spec["python"].command.path
- args.append(f"-DPython_EXECUTABLE={python}")
-
args.append(self.define_from_variant("CMAKE_CXX_STANDARD", "cxxstd"))
return args
diff --git a/var/spack/repos/builtin/packages/adios2/package.py b/var/spack/repos/builtin/packages/adios2/package.py
index b345f5e4c5..2f70cd0582 100644
--- a/var/spack/repos/builtin/packages/adios2/package.py
+++ b/var/spack/repos/builtin/packages/adios2/package.py
@@ -292,10 +292,6 @@ class Adios2(CMakePackage, CudaPackage, ROCmPackage):
if "%fj" in spec:
args.extend(["-DCMAKE_Fortran_SUBMODULE_EXT=.smod", "-DCMAKE_Fortran_SUBMODULE_SEP=."])
- if "+python" in spec or self.run_tests:
- args.append(f"-DPYTHON_EXECUTABLE:FILEPATH={spec['python'].command.path}")
- args.append(f"-DPython_EXECUTABLE:FILEPATH={spec['python'].command.path}")
-
# hip support
if "+cuda" in spec:
args.append(self.builder.define_cuda_architectures(self))
diff --git a/var/spack/repos/builtin/packages/bohrium/package.py b/var/spack/repos/builtin/packages/bohrium/package.py
index ec77b88633..64ad8c100e 100644
--- a/var/spack/repos/builtin/packages/bohrium/package.py
+++ b/var/spack/repos/builtin/packages/bohrium/package.py
@@ -119,8 +119,6 @@ class Bohrium(CMakePackage, CudaPackage):
# different hosts.
args = [
- # Choose a particular python version
- "-DPYTHON_EXECUTABLE:FILEPATH=" + spec["python"].command.path,
#
# Hard-disable Jupyter, since this would override a config
# file in the user's home directory in some cases during
diff --git a/var/spack/repos/builtin/packages/caliper/package.py b/var/spack/repos/builtin/packages/caliper/package.py
index e66fa57146..f1ae9a92cc 100644
--- a/var/spack/repos/builtin/packages/caliper/package.py
+++ b/var/spack/repos/builtin/packages/caliper/package.py
@@ -129,7 +129,6 @@ class Caliper(CMakePackage, CudaPackage, ROCmPackage):
spec = self.spec
args = [
- ("-DPYTHON_EXECUTABLE=%s" % spec["python"].command.path),
"-DBUILD_TESTING=Off",
"-DBUILD_DOCS=Off",
self.define_from_variant("BUILD_SHARED_LIBS", "shared"),
diff --git a/var/spack/repos/builtin/packages/clingo/package.py b/var/spack/repos/builtin/packages/clingo/package.py
index 46b3f5278b..ac242c57cd 100644
--- a/var/spack/repos/builtin/packages/clingo/package.py
+++ b/var/spack/repos/builtin/packages/clingo/package.py
@@ -92,22 +92,6 @@ class Clingo(CMakePackage):
)
@property
- def cmake_python_hints(self):
- """Return standard CMake defines to ensure that the
- current spec is the one found by CMake find_package(Python, ...)
- """
- python = self.spec["python"]
- return [
- self.define("Python_EXECUTABLE", python.command.path),
- self.define("Python_INCLUDE_DIR", python.headers.directories[0]),
- self.define("Python_LIBRARIES", python.libs[0]),
- # XCode command line tools on macOS has no python-config executable, and
- # CMake assumes you have python 2 if it does not find a python-config,
- # so we set the version explicitly so that it's passed to FindPython.
- self.define("CLINGO_PYTHON_VERSION", python.version.up_to(2)),
- ]
-
- @property
def cmake_py_shared(self):
return self.define("CLINGO_BUILD_PY_SHARED", "ON")
@@ -127,8 +111,6 @@ class Clingo(CMakePackage):
"-DPYCLINGO_USE_INSTALL_PREFIX=ON",
self.cmake_py_shared,
]
- if self.spec["cmake"].satisfies("@3.16.0:"):
- args += self.cmake_python_hints
else:
args += ["-DCLINGO_BUILD_WITH_PYTHON=OFF"]
diff --git a/var/spack/repos/builtin/packages/cvise/package.py b/var/spack/repos/builtin/packages/cvise/package.py
index 5a4e2f7b7e..48def2cf00 100644
--- a/var/spack/repos/builtin/packages/cvise/package.py
+++ b/var/spack/repos/builtin/packages/cvise/package.py
@@ -33,6 +33,3 @@ class Cvise(CMakePackage):
depends_on("py-pytest", when="+pytest", type=("build", "run"))
depends_on("colordiff", when="+colordiff", type=("build", "run"))
-
- def cmake_args(self):
- return ["-DPYTHON_EXECUTABLE=" + self.spec["python"].command.path]
diff --git a/var/spack/repos/builtin/packages/dd4hep/package.py b/var/spack/repos/builtin/packages/dd4hep/package.py
index 0f6965fdb9..d8b7d3549c 100644
--- a/var/spack/repos/builtin/packages/dd4hep/package.py
+++ b/var/spack/repos/builtin/packages/dd4hep/package.py
@@ -232,7 +232,6 @@ class Dd4hep(CMakePackage):
"-DBUILD_TESTING={0}".format(self.run_tests),
"-DBOOST_ROOT={0}".format(spec["boost"].prefix),
"-DBoost_NO_BOOST_CMAKE=ON",
- "-DPYTHON_EXECUTABLE={0}".format(spec["python"].command.path),
]
subpackages = []
if spec.satisfies("+ddg4"):
diff --git a/var/spack/repos/builtin/packages/dealii/package.py b/var/spack/repos/builtin/packages/dealii/package.py
index ee181553a3..f9ec14adf3 100644
--- a/var/spack/repos/builtin/packages/dealii/package.py
+++ b/var/spack/repos/builtin/packages/dealii/package.py
@@ -539,17 +539,6 @@ class Dealii(CMakePackage, CudaPackage):
# Python bindings
if spec.satisfies("@8.5.0:"):
options.append(self.define_from_variant("DEAL_II_COMPONENT_PYTHON_BINDINGS", "python"))
- if "+python" in spec:
- python_exe = spec["python"].command.path
- python_library = spec["python"].libs[0]
- python_include = spec["python"].headers.directories[0]
- options.extend(
- [
- self.define("PYTHON_EXECUTABLE", python_exe),
- self.define("PYTHON_INCLUDE_DIR", python_include),
- self.define("PYTHON_LIBRARY", python_library),
- ]
- )
# Simplex support (no longer experimental)
if spec.satisfies("@9.3.0:9.4.0"):
diff --git a/var/spack/repos/builtin/packages/doxygen/package.py b/var/spack/repos/builtin/packages/doxygen/package.py
index b47a6f7aea..e6c099cb57 100644
--- a/var/spack/repos/builtin/packages/doxygen/package.py
+++ b/var/spack/repos/builtin/packages/doxygen/package.py
@@ -124,12 +124,3 @@ class Doxygen(CMakePackage):
join_path("cmake", "FindIconv.cmake"),
string=True,
)
-
- def cmake_args(self):
- args = [
- # Doxygen's build system uses CMake's deprecated `FindPythonInterp`,
- # which can get confused by other `python` executables in the PATH.
- # See issue: https://github.com/spack/spack/issues/28215
- self.define("PYTHON_EXECUTABLE", self.spec["python"].command.path)
- ]
- return args
diff --git a/var/spack/repos/builtin/packages/eccodes/package.py b/var/spack/repos/builtin/packages/eccodes/package.py
index 362d0de274..66967690db 100644
--- a/var/spack/repos/builtin/packages/eccodes/package.py
+++ b/var/spack/repos/builtin/packages/eccodes/package.py
@@ -351,9 +351,6 @@ class Eccodes(CMakePackage):
# Prevent overriding by environment variables AEC_DIR and AEC_PATH:
args.append(self.define("AEC_DIR", self.spec["libaec"].prefix))
- if "+memfs" in self.spec:
- args.append(self.define("PYTHON_EXECUTABLE", python.path))
-
return args
@run_after("install")
diff --git a/var/spack/repos/builtin/packages/ecflow/package.py b/var/spack/repos/builtin/packages/ecflow/package.py
index 4ee103b983..ea447d5f48 100644
--- a/var/spack/repos/builtin/packages/ecflow/package.py
+++ b/var/spack/repos/builtin/packages/ecflow/package.py
@@ -91,7 +91,6 @@ class Ecflow(CMakePackage):
self.define_from_variant("ENABLE_SSL", "ssl"),
# https://jira.ecmwf.int/browse/SUP-2641#comment-208943
self.define_from_variant("ENABLE_STATIC_BOOST_LIBS", "static_boost"),
- self.define("Python3_EXECUTABLE", spec["python"].package.command),
self.define("BOOST_ROOT", spec["boost"].prefix),
self.define_from_variant("CMAKE_POSITION_INDEPENDENT_CODE", "pic"),
]
diff --git a/var/spack/repos/builtin/packages/ecmwf-atlas/package.py b/var/spack/repos/builtin/packages/ecmwf-atlas/package.py
index 25fe5e78f9..f1320c9266 100644
--- a/var/spack/repos/builtin/packages/ecmwf-atlas/package.py
+++ b/var/spack/repos/builtin/packages/ecmwf-atlas/package.py
@@ -73,7 +73,6 @@ class EcmwfAtlas(CMakePackage):
self.define_from_variant("ENABLE_TRANS", "trans"),
self.define_from_variant("ENABLE_EIGEN", "eigen"),
self.define_from_variant("ENABLE_FFTW", "fftw"),
- "-DPYTHON_EXECUTABLE:FILEPATH=" + self.spec["python"].command.path,
]
if "~shared" in self.spec:
args.append("-DBUILD_SHARED_LIBS=OFF")
diff --git a/var/spack/repos/builtin/packages/faiss/package.py b/var/spack/repos/builtin/packages/faiss/package.py
index d67bc55544..8f4b6acb69 100644
--- a/var/spack/repos/builtin/packages/faiss/package.py
+++ b/var/spack/repos/builtin/packages/faiss/package.py
@@ -96,9 +96,6 @@ class CMakeBuilder(spack.build_systems.cmake.CMakeBuilder):
self.define_from_variant("BUILD_TESTING", "tests"),
self.define("FAISS_OPT_LEVEL", "generic"),
]
- if "+python" in spec:
- pyexe = spec["python"].command.path
- args.append(self.define("Python_EXECUTABLE", pyexe))
if "+cuda" in spec:
key = "CMAKE_CUDA_ARCHITECTURES"
diff --git a/var/spack/repos/builtin/packages/fckit/package.py b/var/spack/repos/builtin/packages/fckit/package.py
index 517fd302bd..5822e13344 100644
--- a/var/spack/repos/builtin/packages/fckit/package.py
+++ b/var/spack/repos/builtin/packages/fckit/package.py
@@ -62,7 +62,6 @@ class Fckit(CMakePackage):
args = [
self.define_from_variant("ENABLE_ECKIT", "eckit"),
self.define_from_variant("ENABLE_OMP", "openmp"),
- "-DPYTHON_EXECUTABLE:FILEPATH=" + self.spec["python"].command.path,
"-DFYPP_NO_LINE_NUMBERING=ON",
]
diff --git a/var/spack/repos/builtin/packages/flann/package.py b/var/spack/repos/builtin/packages/flann/package.py
index e915599a39..301d1d88f5 100644
--- a/var/spack/repos/builtin/packages/flann/package.py
+++ b/var/spack/repos/builtin/packages/flann/package.py
@@ -123,8 +123,4 @@ class Flann(CMakePackage):
use_mpi = "ON" if "+mpi" in spec else "OFF"
args.append("-DUSE_MPI:BOOL={0}".format(use_mpi))
- # Configure the proper python executable
- if "+python" in spec:
- args.append("-DPYTHON_EXECUTABLE={0}".format(spec["python"].command.path))
-
return args
diff --git a/var/spack/repos/builtin/packages/gnina/package.py b/var/spack/repos/builtin/packages/gnina/package.py
index 5b9ae74c3e..dcfa07c259 100644
--- a/var/spack/repos/builtin/packages/gnina/package.py
+++ b/var/spack/repos/builtin/packages/gnina/package.py
@@ -70,10 +70,7 @@ class Gnina(CMakePackage, CudaPackage):
depends_on("cudnn", when="+cudnn")
def cmake_args(self):
- args = [
- "-DBLAS=Open", # Use OpenBLAS instead of Atlas' BLAS
- f"-DPYTHON_EXECUTABLE={self.spec['python'].command.path}",
- ]
+ args = ["-DBLAS=Open"] # Use OpenBLAS instead of Atlas' BLAS
if "+gninavis" in self.spec:
args.append(f"-DRDKIT_INCLUDE_DIR={self.spec['rdkit'].prefix.include.rdkit}")
diff --git a/var/spack/repos/builtin/packages/gnuradio/package.py b/var/spack/repos/builtin/packages/gnuradio/package.py
index ddc2db5604..cb4f86c7a8 100644
--- a/var/spack/repos/builtin/packages/gnuradio/package.py
+++ b/var/spack/repos/builtin/packages/gnuradio/package.py
@@ -61,10 +61,7 @@ class Gnuradio(CMakePackage):
extends("python")
def cmake_args(self):
- args = []
- args.append("-DPYTHON_EXECUTABLE={0}".format(self.spec["python"].command.path))
- args.append("-DENABLE_INTERNAL_VOLK=OFF")
- return args
+ return ["-DENABLE_INTERNAL_VOLK=OFF"]
def setup_dependent_build_environment(self, env, dependent_spec):
env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
diff --git a/var/spack/repos/builtin/packages/halide/package.py b/var/spack/repos/builtin/packages/halide/package.py
index f9e95e6756..282fda8733 100644
--- a/var/spack/repos/builtin/packages/halide/package.py
+++ b/var/spack/repos/builtin/packages/halide/package.py
@@ -108,7 +108,6 @@ class Halide(CMakePackage, PythonExtension):
if "+python" in spec:
args += [
- self.define("Python3_EXECUTABLE", spec["python"].command.path),
self.define("PYBIND11_USE_FETCHCONTENT", False),
self.define("Halide_INSTALL_PYTHONDIR", python_platlib),
]
diff --git a/var/spack/repos/builtin/packages/henson/package.py b/var/spack/repos/builtin/packages/henson/package.py
index b347adc120..d1be8ba2cd 100644
--- a/var/spack/repos/builtin/packages/henson/package.py
+++ b/var/spack/repos/builtin/packages/henson/package.py
@@ -32,13 +32,8 @@ class Henson(CMakePackage):
conflicts("^openmpi", when="+mpi-wrappers")
def cmake_args(self):
- args = [
+ return [
self.define_from_variant("python", "python"),
self.define_from_variant("mpi-wrappers", "mpi-wrappers"),
self.define_from_variant("use_boost", "boost"),
]
-
- if self.spec.satisfies("+python"):
- args += [self.define("PYTHON_EXECUTABLE", self.spec["python"].command.path)]
-
- return args
diff --git a/var/spack/repos/builtin/packages/hoomd-blue/package.py b/var/spack/repos/builtin/packages/hoomd-blue/package.py
index a69a801526..54afb419c1 100644
--- a/var/spack/repos/builtin/packages/hoomd-blue/package.py
+++ b/var/spack/repos/builtin/packages/hoomd-blue/package.py
@@ -65,10 +65,7 @@ class HoomdBlue(CMakePackage):
def cmake_args(self):
spec = self.spec
- cmake_args = [
- "-DPYTHON_EXECUTABLE={0}".format(spec["python"].command.path),
- "-DCMAKE_INSTALL_PREFIX={0}".format(python_platlib),
- ]
+ cmake_args = ["-DCMAKE_INSTALL_PREFIX={0}".format(python_platlib)]
# MPI support
if "+mpi" in spec:
diff --git a/var/spack/repos/builtin/packages/lammps/package.py b/var/spack/repos/builtin/packages/lammps/package.py
index ca0df298e1..8588f5fdf6 100644
--- a/var/spack/repos/builtin/packages/lammps/package.py
+++ b/var/spack/repos/builtin/packages/lammps/package.py
@@ -860,9 +860,6 @@ class Lammps(CMakePackage, CudaPackage, ROCmPackage, PythonExtension):
if "+rocm" in spec:
args.append(self.define("CMAKE_CXX_COMPILER", spec["hip"].hipcc))
- if "+python" in spec:
- args.append(self.define("Python_EXECUTABLE", spec["python"].command.path))
-
return args
def setup_build_environment(self, env):
diff --git a/var/spack/repos/builtin/packages/libmolgrid/package.py b/var/spack/repos/builtin/packages/libmolgrid/package.py
index 883231ec33..86bb4e7e0d 100644
--- a/var/spack/repos/builtin/packages/libmolgrid/package.py
+++ b/var/spack/repos/builtin/packages/libmolgrid/package.py
@@ -35,9 +35,4 @@ class Libmolgrid(CMakePackage):
ob_incl = os.path.join(self.spec["openbabel"].prefix.include, "openbabel3")
ob_libs = self.spec["openbabel"].libs.joined(";")
- args = [
- "-DOPENBABEL3_INCLUDE_DIR=" + ob_incl,
- "-DOPENBABEL3_LIBRARIES=" + ob_libs,
- f"-DPYTHON_EXECUTABLE={self.spec['python'].command.path}",
- ]
- return args
+ return ["-DOPENBABEL3_INCLUDE_DIR=" + ob_incl, "-DOPENBABEL3_LIBRARIES=" + ob_libs]
diff --git a/var/spack/repos/builtin/packages/libpressio/package.py b/var/spack/repos/builtin/packages/libpressio/package.py
index f020cb3800..f1828bcf51 100644
--- a/var/spack/repos/builtin/packages/libpressio/package.py
+++ b/var/spack/repos/builtin/packages/libpressio/package.py
@@ -278,7 +278,6 @@ class Libpressio(CMakePackage, CudaPackage):
if "+python" in self.spec:
args.append("-DLIBPRESSIO_PYTHON_SITELIB={0}".format(python_platlib))
args.append("-DBUILD_PYTHON_WRAPPER=ON")
- args.append("-DPython3_EXECUTABLE={0}".format(self.spec["python"].command))
if "+mpi" in self.spec:
args.append("-DLIBPRESSIO_HAS_MPI4PY=ON")
if "+hdf5" in self.spec:
diff --git a/var/spack/repos/builtin/packages/llvm-doe/package.py b/var/spack/repos/builtin/packages/llvm-doe/package.py
index 90faf6e135..8402e0c743 100644
--- a/var/spack/repos/builtin/packages/llvm-doe/package.py
+++ b/var/spack/repos/builtin/packages/llvm-doe/package.py
@@ -405,13 +405,11 @@ class LlvmDoe(CMakePackage, CudaPackage):
define = self.define
from_variant = self.define_from_variant
- python = spec["python"]
cmake_args = [
define("LLVM_REQUIRES_RTTI", True),
define("LLVM_ENABLE_RTTI", True),
define("LLVM_ENABLE_EH", True),
define("CLANG_DEFAULT_OPENMP_RUNTIME", "libomp"),
- define("PYTHON_EXECUTABLE", python.command.path),
define("LIBOMP_USE_HWLOC", True),
define("LIBOMP_HWLOC_INSTALL_DIR", spec["hwloc"].prefix),
]
@@ -420,11 +418,6 @@ class LlvmDoe(CMakePackage, CudaPackage):
if version_suffix != "none":
cmake_args.append(define("LLVM_VERSION_SUFFIX", version_suffix))
- if python.version >= Version("3"):
- cmake_args.append(define("Python3_EXECUTABLE", python.command.path))
- else:
- cmake_args.append(define("Python2_EXECUTABLE", python.command.path))
-
projects = []
runtimes = []
diff --git a/var/spack/repos/builtin/packages/llvm/package.py b/var/spack/repos/builtin/packages/llvm/package.py
index f32e3494e4..c19792be4c 100644
--- a/var/spack/repos/builtin/packages/llvm/package.py
+++ b/var/spack/repos/builtin/packages/llvm/package.py
@@ -781,13 +781,11 @@ class Llvm(CMakePackage, CudaPackage):
define = self.define
from_variant = self.define_from_variant
- python = spec["python"]
cmake_args = [
define("LLVM_REQUIRES_RTTI", True),
define("LLVM_ENABLE_RTTI", True),
define("LLVM_ENABLE_LIBXML2", False),
define("CLANG_DEFAULT_OPENMP_RUNTIME", "libomp"),
- define("PYTHON_EXECUTABLE", python.command.path),
define("LIBOMP_USE_HWLOC", True),
define("LIBOMP_HWLOC_INSTALL_DIR", spec["hwloc"].prefix),
from_variant("LLVM_ENABLE_ZSTD", "zstd"),
@@ -811,11 +809,6 @@ class Llvm(CMakePackage, CudaPackage):
if shlib_symbol_version is not None and shlib_symbol_version.value != "none":
cmake_args.append(define("LLVM_SHLIB_SYMBOL_VERSION", shlib_symbol_version.value))
- if python.version >= Version("3"):
- cmake_args.append(define("Python3_EXECUTABLE", python.command.path))
- else:
- cmake_args.append(define("Python2_EXECUTABLE", python.command.path))
-
projects = []
runtimes = []
diff --git a/var/spack/repos/builtin/packages/neuron/package.py b/var/spack/repos/builtin/packages/neuron/package.py
index aa3b0c76d5..edad5ec994 100644
--- a/var/spack/repos/builtin/packages/neuron/package.py
+++ b/var/spack/repos/builtin/packages/neuron/package.py
@@ -86,9 +86,6 @@ class Neuron(CMakePackage):
if "~mpi" in spec and "+coreneuron" in spec:
args.append("-DCORENRN_ENABLE_MPI=OFF")
- if "+python" in spec:
- args.append("-DPYTHON_EXECUTABLE:FILEPATH=" + spec["python"].command.path)
-
if spec.variants["build_type"].value == "Debug":
args.append("-DCMAKE_C_FLAGS=-g -O0")
args.append("-DCMAKE_CXX_FLAGS=-g -O0")
diff --git a/var/spack/repos/builtin/packages/nlopt/package.py b/var/spack/repos/builtin/packages/nlopt/package.py
index b4aa99199d..cf49d5e26e 100644
--- a/var/spack/repos/builtin/packages/nlopt/package.py
+++ b/var/spack/repos/builtin/packages/nlopt/package.py
@@ -53,16 +53,12 @@ class Nlopt(CMakePackage):
# Specify on command line to alter defaults:
# eg: spack install nlopt@master +guile -octave +cxx
- # Spack should locate python by default - but to point to a build
- if "+python" in spec:
- args.append("-DPYTHON_EXECUTABLE=%s" % spec["python"].command.path)
-
# On is default
- if "-shared" in spec:
+ if "~shared" in spec:
args.append("-DBUILD_SHARED_LIBS:Bool=OFF")
# On is default
- if "-octave" in spec:
+ if "~octave" in spec:
args.append("-DNLOPT_OCTAVE:Bool=OFF")
if "+cxx" in spec:
diff --git a/var/spack/repos/builtin/packages/odgi/package.py b/var/spack/repos/builtin/packages/odgi/package.py
index 0f4177d315..0c4b9ea2ff 100644
--- a/var/spack/repos/builtin/packages/odgi/package.py
+++ b/var/spack/repos/builtin/packages/odgi/package.py
@@ -41,8 +41,4 @@ class Odgi(CMakePackage):
# >>> Dependencies list ends here
def cmake_args(self):
- args = [
- "-DCMAKE_CXX_STANDARD_REQUIRED:BOOL=ON",
- "-DPYTHON_EXECUTABLE:FILEPATH={0}".format(self.spec["python"].command),
- ]
- return args
+ return ["-DCMAKE_CXX_STANDARD_REQUIRED:BOOL=ON"]
diff --git a/var/spack/repos/builtin/packages/omnitrace/package.py b/var/spack/repos/builtin/packages/omnitrace/package.py
index c23ffc755e..bc3ed31758 100644
--- a/var/spack/repos/builtin/packages/omnitrace/package.py
+++ b/var/spack/repos/builtin/packages/omnitrace/package.py
@@ -126,11 +126,6 @@ class Omnitrace(CMakePackage):
tau_root = spec["tau"].prefix
args.append(self.define("TAU_ROOT_DIR", tau_root))
- if "+python" in spec:
- pyexe = spec["python"].command.path
- args.append(self.define("PYTHON_EXECUTABLE", pyexe))
- args.append(self.define("Python3_EXECUTABLE", pyexe))
-
if "+mpi" in spec:
args.append(self.define("MPI_C_COMPILER", spec["mpi"].mpicc))
args.append(self.define("MPI_CXX_COMPILER", spec["mpi"].mpicxx))
diff --git a/var/spack/repos/builtin/packages/open3d/package.py b/var/spack/repos/builtin/packages/open3d/package.py
index 85fea1a181..2a63de25ca 100644
--- a/var/spack/repos/builtin/packages/open3d/package.py
+++ b/var/spack/repos/builtin/packages/open3d/package.py
@@ -70,7 +70,7 @@ class Open3d(CMakePackage, CudaPackage):
)
def cmake_args(self):
- args = [
+ return [
self.define("BUILD_UNIT_TESTS", self.run_tests),
self.define_from_variant("BUILD_PYTHON_MODULE", "python"),
self.define_from_variant("BUILD_CUDA_MODULE", "cuda"),
@@ -95,11 +95,6 @@ class Open3d(CMakePackage, CudaPackage):
# self.define('USE_SYSTEM_TINYOBJLOADER', True),
]
- if "+python" in self.spec:
- args.append(self.define("PYTHON_EXECUTABLE", self.spec["python"].command.path))
-
- return args
-
def check(self):
with working_dir(self.build_directory):
tests = Executable(os.path.join("bin", "tests"))
diff --git a/var/spack/repos/builtin/packages/openbabel/package.py b/var/spack/repos/builtin/packages/openbabel/package.py
index 346367cc15..65cff9e35c 100644
--- a/var/spack/repos/builtin/packages/openbabel/package.py
+++ b/var/spack/repos/builtin/packages/openbabel/package.py
@@ -63,13 +63,7 @@ class Openbabel(CMakePackage):
args = []
if "+python" in spec:
- args.extend(
- [
- "-DPYTHON_BINDINGS=ON",
- "-DPYTHON_EXECUTABLE={0}".format(spec["python"].command.path),
- "-DRUN_SWIG=ON",
- ]
- )
+ args.extend(["-DPYTHON_BINDINGS=ON", "-DRUN_SWIG=ON"])
else:
args.append("-DPYTHON_BINDINGS=OFF")
diff --git a/var/spack/repos/builtin/packages/opencv/package.py b/var/spack/repos/builtin/packages/opencv/package.py
index 1f23970a7b..8e3f3236bb 100644
--- a/var/spack/repos/builtin/packages/opencv/package.py
+++ b/var/spack/repos/builtin/packages/opencv/package.py
@@ -15,6 +15,7 @@ class Opencv(CMakePackage, CudaPackage):
homepage = "https://opencv.org/"
url = "https://github.com/opencv/opencv/archive/4.5.0.tar.gz"
git = "https://github.com/opencv/opencv.git"
+ find_python_hints = False # opencv uses custom OpenCVDetectPython.cmake
maintainers("bvanessen", "adamjstewart")
diff --git a/var/spack/repos/builtin/packages/openmolcas/package.py b/var/spack/repos/builtin/packages/openmolcas/package.py
index 7d53000ab7..c3a59df79d 100644
--- a/var/spack/repos/builtin/packages/openmolcas/package.py
+++ b/var/spack/repos/builtin/packages/openmolcas/package.py
@@ -44,11 +44,7 @@ class Openmolcas(CMakePackage):
env.append_path("PATH", self.prefix)
def cmake_args(self):
- args = [
- "-DLINALG=OpenBLAS",
- "-DOPENBLASROOT=%s" % self.spec["openblas"].prefix,
- "-DPYTHON_EXECUTABLE=%s" % self.spec["python"].command.path,
- ]
+ args = ["-DLINALG=OpenBLAS", "-DOPENBLASROOT=%s" % self.spec["openblas"].prefix]
if "+mpi" in self.spec:
mpi_args = [
"-DMPI=ON",
diff --git a/var/spack/repos/builtin/packages/openpmd-api/package.py b/var/spack/repos/builtin/packages/openpmd-api/package.py
index 694b785094..b114ed8efe 100644
--- a/var/spack/repos/builtin/packages/openpmd-api/package.py
+++ b/var/spack/repos/builtin/packages/openpmd-api/package.py
@@ -123,13 +123,7 @@ class OpenpmdApi(CMakePackage):
# switch internally shipped third-party libraries for spack
if spec.satisfies("+python"):
- py_exe_define = (
- "Python_EXECUTABLE" if spec.version >= Version("0.13.0") else "PYTHON_EXECUTABLE"
- )
- args += [
- self.define(py_exe_define, self.spec["python"].command.path),
- self.define("openPMD_USE_INTERNAL_PYBIND11", False),
- ]
+ args.append(self.define("openPMD_USE_INTERNAL_PYBIND11", False))
args.append(self.define("openPMD_USE_INTERNAL_JSON", False))
if spec.satisfies("@:0.14"): # pre C++17 releases
diff --git a/var/spack/repos/builtin/packages/openspeedshop-utils/package.py b/var/spack/repos/builtin/packages/openspeedshop-utils/package.py
index 8df48bf495..7fa3e646e3 100644
--- a/var/spack/repos/builtin/packages/openspeedshop-utils/package.py
+++ b/var/spack/repos/builtin/packages/openspeedshop-utils/package.py
@@ -236,26 +236,19 @@ class OpenspeedshopUtils(CMakePackage):
# Appends to cmake_options the options that will enable
# the appropriate base level options to the openspeedshop
# cmake build.
- python_exe = spec["python"].command.path
- python_library = spec["python"].libs[0]
- python_include = spec["python"].headers.directories[0]
-
- base_options = []
-
- base_options.append("-DBINUTILS_DIR=%s" % spec["binutils"].prefix)
- base_options.append("-DLIBELF_DIR=%s" % spec["elfutils"].prefix)
- base_options.append("-DLIBDWARF_DIR=%s" % spec["libdwarf"].prefix)
- base_options.append("-DPYTHON_EXECUTABLE=%s" % python_exe)
- base_options.append("-DPYTHON_INCLUDE_DIR=%s" % python_include)
- base_options.append("-DPYTHON_LIBRARY=%s" % python_library)
- base_options.append("-DBoost_NO_SYSTEM_PATHS=TRUE")
- base_options.append("-DBoost_NO_BOOST_CMAKE=TRUE")
- base_options.append("-DBOOST_ROOT=%s" % spec["boost"].prefix)
- base_options.append("-DBoost_DIR=%s" % spec["boost"].prefix)
- base_options.append("-DBOOST_LIBRARYDIR=%s" % spec["boost"].prefix.lib)
- base_options.append("-DDYNINST_DIR=%s" % spec["dyninst"].prefix)
-
- cmake_options.extend(base_options)
+ cmake_options.extend(
+ [
+ self.define("BINUTILS_DIR", spec["binutils"].prefix),
+ self.define("LIBELF_DIR", spec["elfutils"].prefix),
+ self.define("LIBDWARF_DIR", spec["libdwarf"].prefix),
+ self.define("Boost_NO_SYSTEM_PATHS", True),
+ self.define("Boost_NO_BOOST_CMAKE", True),
+ self.define("BOOST_ROOT", spec["boost"].prefix),
+ self.define("Boost_DIR", spec["boost"].prefix),
+ self.define("BOOST_LIBRARYDIR", spec["boost"].prefix.lib),
+ self.define("DYNINST_DIR", spec["dyninst"].prefix),
+ ]
+ )
def set_mpi_cmake_options(self, spec, cmake_options):
# Appends to cmake_options the options that will enable
diff --git a/var/spack/repos/builtin/packages/openspeedshop/package.py b/var/spack/repos/builtin/packages/openspeedshop/package.py
index 101cf783b6..5ef937a0f8 100644
--- a/var/spack/repos/builtin/packages/openspeedshop/package.py
+++ b/var/spack/repos/builtin/packages/openspeedshop/package.py
@@ -254,27 +254,19 @@ class Openspeedshop(CMakePackage):
# Appends to cmake_options the options that will enable
# the appropriate base level options to the openspeedshop
# cmake build.
- python_exe = spec["python"].command.path
- python_library = spec["python"].libs[0]
- python_include = spec["python"].headers.directories[0]
- true_value = "TRUE"
-
- base_options = []
-
- base_options.append("-DBINUTILS_DIR=%s" % spec["binutils"].prefix)
- base_options.append("-DLIBELF_DIR=%s" % spec["elfutils"].prefix)
- base_options.append("-DLIBDWARF_DIR=%s" % spec["libdwarf"].prefix)
- base_options.append("-DPYTHON_EXECUTABLE=%s" % python_exe)
- base_options.append("-DPYTHON_INCLUDE_DIR=%s" % python_include)
- base_options.append("-DPYTHON_LIBRARY=%s" % python_library)
- base_options.append("-DBoost_NO_SYSTEM_PATHS=%s" % true_value)
- base_options.append("-DBoost_NO_BOOST_CMAKE=%s" % true_value)
- base_options.append("-DBOOST_ROOT=%s" % spec["boost"].prefix)
- base_options.append("-DBoost_DIR=%s" % spec["boost"].prefix)
- base_options.append("-DBOOST_LIBRARYDIR=%s" % spec["boost"].prefix.lib)
- base_options.append("-DDYNINST_DIR=%s" % spec["dyninst"].prefix)
-
- cmake_options.extend(base_options)
+ cmake_options.extend(
+ [
+ self.define("BINUTILS_DIR", spec["binutils"].prefix),
+ self.define("LIBELF_DIR", spec["elfutils"].prefix),
+ self.define("LIBDWARF_DIR", spec["libdwarf"].prefix),
+ self.define("Boost_NO_SYSTEM_PATHS", True),
+ self.define("Boost_NO_BOOST_CMAKE", True),
+ self.define("BOOST_ROOT", spec["boost"].prefix),
+ self.define("Boost_DIR", spec["boost"].prefix),
+ self.define("BOOST_LIBRARYDIR", spec["boost"].prefix.lib),
+ self.define("DYNINST_DIR", spec["dyninst"].prefix),
+ ]
+ )
def set_mpi_cmake_options(self, spec, cmake_options):
# Appends to cmake_options the options that will enable
diff --git a/var/spack/repos/builtin/packages/openturns/package.py b/var/spack/repos/builtin/packages/openturns/package.py
index a40462c9cc..d5e0d5d1a2 100644
--- a/var/spack/repos/builtin/packages/openturns/package.py
+++ b/var/spack/repos/builtin/packages/openturns/package.py
@@ -59,10 +59,8 @@ class Openturns(CMakePackage):
if "+python" in spec:
args.extend(
[
- # By default picks up the system python not the Spack build
- "-DPYTHON_EXECUTABLE={0}".format(spec["python"].command.path),
# By default installs to the python prefix
- "-DPYTHON_SITE_PACKAGES={0}".format(python_platlib),
+ "-DPYTHON_SITE_PACKAGES={0}".format(python_platlib)
]
)
diff --git a/var/spack/repos/builtin/packages/openwsman/package.py b/var/spack/repos/builtin/packages/openwsman/package.py
index c6ec676f38..4be921bad9 100644
--- a/var/spack/repos/builtin/packages/openwsman/package.py
+++ b/var/spack/repos/builtin/packages/openwsman/package.py
@@ -55,7 +55,6 @@ class Openwsman(CMakePackage):
arg.extend([define("BUILD_PYTHON", False), define("BUILD_PYTHON3", True)])
else:
arg.extend([define("BUILD_PYTHON", True), define("BUILD_PYTHON3", False)])
- arg.append(define("PYTHON_EXECUTABLE", spec["python"].command.path))
else:
arg.extend([define("BUILD_PYTHON", False), define("BUILD_PYTHON3", False)])
return arg
diff --git a/var/spack/repos/builtin/packages/pagmo/package.py b/var/spack/repos/builtin/packages/pagmo/package.py
index 05baf7bbf5..0a7538d2e3 100644
--- a/var/spack/repos/builtin/packages/pagmo/package.py
+++ b/var/spack/repos/builtin/packages/pagmo/package.py
@@ -99,10 +99,8 @@ class Pagmo(CMakePackage):
if "+python" in spec:
args.extend(
[
- # By default picks up the system python not the Spack build
- "-DPYTHON_EXECUTABLE={0}".format(spec["python"].command.path),
# By default installs to the python prefix not the pagmo prefix
- "-DPYTHON_MODULES_DIR={0}".format(python_platlib),
+ "-DPYTHON_MODULES_DIR={0}".format(python_platlib)
]
)
diff --git a/var/spack/repos/builtin/packages/paraview/package.py b/var/spack/repos/builtin/packages/paraview/package.py
index 85694e5e2f..5d87021f04 100644
--- a/var/spack/repos/builtin/packages/paraview/package.py
+++ b/var/spack/repos/builtin/packages/paraview/package.py
@@ -537,7 +537,6 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage):
cmake_args.extend(
[
"-DPARAVIEW_%s_PYTHON:BOOL=ON" % py_use_opt,
- "-DPYTHON_EXECUTABLE:FILEPATH=%s" % spec["python"].command.path,
"-D%s_PYTHON_VERSION:STRING=%d" % (py_ver_opt, py_ver_val),
]
)
diff --git a/var/spack/repos/builtin/packages/pfunit/package.py b/var/spack/repos/builtin/packages/pfunit/package.py
index ac19168b50..671ae7ca01 100644
--- a/var/spack/repos/builtin/packages/pfunit/package.py
+++ b/var/spack/repos/builtin/packages/pfunit/package.py
@@ -152,7 +152,6 @@ class Pfunit(CMakePackage):
def cmake_args(self):
spec = self.spec
args = [
- self.define("Python_EXECUTABLE", spec["python"].command),
self.define("BUILD_SHARED_LIBS", False),
self.define("CMAKE_Fortran_MODULE_DIRECTORY", spec.prefix.include),
self.define_from_variant("ENABLE_BUILD_DOXYGEN", "docs"),
diff --git a/var/spack/repos/builtin/packages/precice/package.py b/var/spack/repos/builtin/packages/precice/package.py
index 185a0a9d72..943a2f088d 100644
--- a/var/spack/repos/builtin/packages/precice/package.py
+++ b/var/spack/repos/builtin/packages/precice/package.py
@@ -172,7 +172,8 @@ class Precice(CMakePackage):
cmake_args.extend(["-DPETSC_DIR=%s" % spec["petsc"].prefix, "-DPETSC_ARCH=."])
# Python
- if "+python" in spec:
+ if "@:2.3 +python" in spec:
+ # 2.4.0 and higher use find_package(Python3).
python_library = spec["python"].libs[0]
python_include = spec["python"].headers.directories[0]
numpy_include = join_path(
diff --git a/var/spack/repos/builtin/packages/py-pybind11/package.py b/var/spack/repos/builtin/packages/py-pybind11/package.py
index 9aceb4b02a..b4baeeb035 100644
--- a/var/spack/repos/builtin/packages/py-pybind11/package.py
+++ b/var/spack/repos/builtin/packages/py-pybind11/package.py
@@ -84,10 +84,7 @@ class PyPybind11(CMakePackage, PythonExtension):
class CMakeBuilder(spack.build_systems.cmake.CMakeBuilder):
def cmake_args(self):
- return [
- self.define("PYTHON_EXECUTABLE:FILEPATH", self.spec["python"].command.path),
- self.define("PYBIND11_TEST", self.pkg.run_tests),
- ]
+ return [self.define("PYBIND11_TEST", self.pkg.run_tests)]
def install(self, pkg, spec, prefix):
super().install(pkg, spec, prefix)
diff --git a/var/spack/repos/builtin/packages/py-pykokkos-base/package.py b/var/spack/repos/builtin/packages/py-pykokkos-base/package.py
index 381a1fd111..6bf307a58e 100644
--- a/var/spack/repos/builtin/packages/py-pykokkos-base/package.py
+++ b/var/spack/repos/builtin/packages/py-pykokkos-base/package.py
@@ -44,13 +44,9 @@ class PyPykokkosBase(CMakePackage, PythonExtension):
depends_on("python@3:", type=("build", "run"))
def cmake_args(self):
- spec = self.spec
-
args = [
self.define("ENABLE_INTERNAL_KOKKOS", False),
self.define("ENABLE_INTERNAL_PYBIND11", False),
- self.define("PYTHON_EXECUTABLE", spec["python"].command.path),
- self.define("Python3_EXECUTABLE", spec["python"].command.path),
self.define_from_variant("ENABLE_VIEW_RANKS", "view_ranks"),
]
diff --git a/var/spack/repos/builtin/packages/py-tfdlpack/package.py b/var/spack/repos/builtin/packages/py-tfdlpack/package.py
index 32612e56f6..ac747b3f36 100644
--- a/var/spack/repos/builtin/packages/py-tfdlpack/package.py
+++ b/var/spack/repos/builtin/packages/py-tfdlpack/package.py
@@ -33,14 +33,7 @@ class PyTfdlpack(CMakePackage, PythonExtension):
depends_on("py-tensorflow", type=("build", "run"))
def cmake_args(self):
- args = ["-DPYTHON_EXECUTABLE=" + self.spec["python"].command.path]
-
- if "+cuda" in self.spec:
- args.append("-DUSE_CUDA=ON")
- else:
- args.append("-DUSE_CUDA=OFF")
-
- return args
+ return [self.define_from_variant("USE_CUDA", "cuda")]
def install(self, spec, prefix):
with working_dir("python"):
diff --git a/var/spack/repos/builtin/packages/qmcpack/package.py b/var/spack/repos/builtin/packages/qmcpack/package.py
index 70077558f4..33e1580946 100644
--- a/var/spack/repos/builtin/packages/qmcpack/package.py
+++ b/var/spack/repos/builtin/packages/qmcpack/package.py
@@ -391,7 +391,6 @@ class Qmcpack(CMakePackage, CudaPackage):
else:
args.append("-DBUILD_PPCONVERT=0")
- args.append(self.define("Python3_EXECUTABLE", self.spec["python"].command.path))
return args
# QMCPACK needs custom install method for the following reason:
diff --git a/var/spack/repos/builtin/packages/rdma-core/package.py b/var/spack/repos/builtin/packages/rdma-core/package.py
index 6d2dbfbbc2..8c2998e5da 100644
--- a/var/spack/repos/builtin/packages/rdma-core/package.py
+++ b/var/spack/repos/builtin/packages/rdma-core/package.py
@@ -107,11 +107,4 @@ class RdmaCore(CMakePackage):
if self.spec.satisfies("~man_pages"):
cmake_args.append("-DNO_MAN_PAGES=1")
- if self.spec.satisfies("@:39.0"):
- cmake_args.extend(
- [
- self.define("PYTHON_LIBRARY", self.spec["python"].libs[0]),
- self.define("PYTHON_INCLUDE_DIR", self.spec["python"].headers.directories[0]),
- ]
- )
return cmake_args
diff --git a/var/spack/repos/builtin/packages/root/package.py b/var/spack/repos/builtin/packages/root/package.py
index 54ea8a1ef9..bbd29cc2c4 100644
--- a/var/spack/repos/builtin/packages/root/package.py
+++ b/var/spack/repos/builtin/packages/root/package.py
@@ -511,7 +511,6 @@ class Root(CMakePackage):
return " ".join(v)
def cmake_args(self):
- spec = self.spec
define = self.define
define_from_variant = self.define_from_variant
options = []
@@ -694,9 +693,6 @@ class Root(CMakePackage):
ftgl_prefix = self.spec["ftgl"].prefix
options.append(define("FTGL_ROOT_DIR", ftgl_prefix))
options.append(define("FTGL_INCLUDE_DIR", ftgl_prefix.include))
- if "+python" in self.spec:
- # See https://github.com/spack/spack/pull/11579
- options.append(define("PYTHON_EXECUTABLE", spec["python"].command.path))
return options
diff --git a/var/spack/repos/builtin/packages/scine-database/package.py b/var/spack/repos/builtin/packages/scine-database/package.py
index b66da59a26..7efd86781b 100644
--- a/var/spack/repos/builtin/packages/scine-database/package.py
+++ b/var/spack/repos/builtin/packages/scine-database/package.py
@@ -51,11 +51,8 @@ class ScineDatabase(CMakePackage):
)
def cmake_args(self):
- args = [
+ return [
self.define("SCINE_BUILD_TESTS", self.run_tests),
self.define("SCINE_BUILD_PYTHON_BINDINGS", "+python" in self.spec),
self.define("SCINE_MARCH", ""),
]
- if "+python" in self.spec:
- args.append(self.define("PYTHON_EXECUTABLE", self.spec["python"].command.path))
- return args
diff --git a/var/spack/repos/builtin/packages/scine-molassembler/package.py b/var/spack/repos/builtin/packages/scine-molassembler/package.py
index 79a8b17ac0..6c1bc87663 100644
--- a/var/spack/repos/builtin/packages/scine-molassembler/package.py
+++ b/var/spack/repos/builtin/packages/scine-molassembler/package.py
@@ -84,7 +84,7 @@ class ScineMolassembler(CMakePackage):
)
def cmake_args(self):
- args = [
+ return [
self.define("BUILD_SHARED_LIBS", True),
self.define("SCINE_BUILD_TESTS", self.run_tests),
self.define("SCINE_BUILD_PYTHON_BINDINGS", "+python" in self.spec),
@@ -95,6 +95,3 @@ class ScineMolassembler(CMakePackage):
self.define("BOOST_NO_SYSTEM_PATHS", True),
self.define("Boost_NO_BOOST_CMAKE", True),
]
- if "+python" in self.spec:
- args.append(self.define("PYTHON_EXECUTABLE", self.spec["python"].command.path))
- return args
diff --git a/var/spack/repos/builtin/packages/scine-readuct/package.py b/var/spack/repos/builtin/packages/scine-readuct/package.py
index 1844037743..f00bc645e4 100644
--- a/var/spack/repos/builtin/packages/scine-readuct/package.py
+++ b/var/spack/repos/builtin/packages/scine-readuct/package.py
@@ -54,7 +54,7 @@ class ScineReaduct(CMakePackage):
)
def cmake_args(self):
- args = [
+ return [
self.define("SCINE_BUILD_TESTS", self.run_tests),
self.define("SCINE_BUILD_PYTHON_BINDINGS", "+python" in self.spec),
self.define("SCINE_MARCH", ""),
@@ -64,6 +64,3 @@ class ScineReaduct(CMakePackage):
self.define("BOOST_NO_SYSTEM_PATHS", True),
self.define("Boost_NO_BOOST_CMAKE", True),
]
- if "+python" in self.spec:
- args.append(self.define("PYTHON_EXECUTABLE", self.spec["python"].command.path))
- return args
diff --git a/var/spack/repos/builtin/packages/scine-serenity/package.py b/var/spack/repos/builtin/packages/scine-serenity/package.py
index ca2924b2c0..7dd6d8dd39 100644
--- a/var/spack/repos/builtin/packages/scine-serenity/package.py
+++ b/var/spack/repos/builtin/packages/scine-serenity/package.py
@@ -57,7 +57,7 @@ class ScineSerenity(CMakePackage):
)
def cmake_args(self):
- args = [
+ return [
self.define("SCINE_BUILD_TESTS", self.run_tests),
self.define_from_variant("SCINE_BUILD_PYTHON_BINDINGS", "python"),
self.define("SCINE_MARCH", ""),
@@ -69,6 +69,3 @@ class ScineSerenity(CMakePackage):
self.define("BOOST_NO_SYSTEM_PATHS", True),
self.define("Boost_NO_BOOST_CMAKE", True),
]
- if "+python" in self.spec:
- args.append(self.define("PYTHON_EXECUTABLE", self.spec["python"].command.path))
- return args
diff --git a/var/spack/repos/builtin/packages/scine-sparrow/package.py b/var/spack/repos/builtin/packages/scine-sparrow/package.py
index 0d8fbf855b..44d1ccf84a 100644
--- a/var/spack/repos/builtin/packages/scine-sparrow/package.py
+++ b/var/spack/repos/builtin/packages/scine-sparrow/package.py
@@ -76,7 +76,7 @@ class ScineSparrow(CMakePackage):
)
def cmake_args(self):
- args = [
+ return [
self.define("SCINE_BUILD_TESTS", self.run_tests),
self.define("SCINE_BUILD_PYTHON_BINDINGS", "+python" in self.spec),
self.define("SCINE_MARCH", ""),
@@ -86,9 +86,6 @@ class ScineSparrow(CMakePackage):
self.define("BOOST_NO_SYSTEM_PATHS", True),
self.define("Boost_NO_BOOST_CMAKE", True),
]
- if "+python" in self.spec:
- args.append(self.define("PYTHON_EXECUTABLE", self.spec["python"].command.path))
- return args
# Adapted from ddd in MacPorts: cmake will build the executable
# "sparrow" right next to the copy of the source directory "Sparrow".
diff --git a/var/spack/repos/builtin/packages/scine-utilities/package.py b/var/spack/repos/builtin/packages/scine-utilities/package.py
index 4f65702afb..3dcf0fb2a9 100644
--- a/var/spack/repos/builtin/packages/scine-utilities/package.py
+++ b/var/spack/repos/builtin/packages/scine-utilities/package.py
@@ -67,7 +67,7 @@ class ScineUtilities(CMakePackage):
)
def cmake_args(self):
- args = [
+ return [
self.define("SCINE_BUILD_TESTS", self.run_tests),
self.define_from_variant("SCINE_BUILD_PYTHON_BINDINGS", "python"),
self.define("SCINE_MARCH", ""),
@@ -77,7 +77,3 @@ class ScineUtilities(CMakePackage):
self.define("BOOST_NO_SYSTEM_PATHS", True),
self.define("Boost_NO_BOOST_CMAKE", True),
]
- if "+python" in self.spec:
- args.append(self.define("PYTHON_EXECUTABLE", self.spec["python"].command.path))
-
- return args
diff --git a/var/spack/repos/builtin/packages/scine-xtb/package.py b/var/spack/repos/builtin/packages/scine-xtb/package.py
index f06bc13003..9cd7dca182 100644
--- a/var/spack/repos/builtin/packages/scine-xtb/package.py
+++ b/var/spack/repos/builtin/packages/scine-xtb/package.py
@@ -52,7 +52,7 @@ class ScineXtb(CMakePackage):
os.rename("_dev", "dev")
def cmake_args(self):
- args = [
+ return [
self.define("SCINE_BUILD_TESTS", self.run_tests),
self.define("SCINE_BUILD_PYTHON_BINDINGS", "+python" in self.spec),
self.define("SCINE_MARCH", ""),
@@ -62,6 +62,3 @@ class ScineXtb(CMakePackage):
self.define("BOOST_NO_SYSTEM_PATHS", True),
self.define("Boost_NO_BOOST_CMAKE", True),
]
- if "+python" in self.spec:
- args.append(self.define("PYTHON_EXECUTABLE", self.spec["python"].command.path))
- return args
diff --git a/var/spack/repos/builtin/packages/sensei/package.py b/var/spack/repos/builtin/packages/sensei/package.py
index 7f79d7df11..96e4dd4393 100644
--- a/var/spack/repos/builtin/packages/sensei/package.py
+++ b/var/spack/repos/builtin/packages/sensei/package.py
@@ -116,27 +116,30 @@ class Sensei(CMakePackage):
def cmake_args(self):
spec = self.spec
+ prefix = ""
+ if spec.satisfies("@5:"):
+ prefix = "SENSEI_"
# -Ox flags are set by default in CMake based on the build type
args = [
self.define_from_variant("BUILD_SHARED_LIBS", "shared"),
self.define("SENSEI_USE_EXTERNAL_pugixml", True),
- self.define("ENABLE_SENSEI", True),
+ self.define(f"{prefix}ENABLE_SENSEI", True),
self.define("MPI_C_COMPILER", spec["mpi"].mpicc),
self.define("MPI_CXX_COMPILER", spec["mpi"].mpicxx),
# Don"t rely on MPI found in cray environment for cray systems.
# On non-cray systems this should be a no-op
- self.define("ENABLE_CRAY_MPICH", False),
- self.define_from_variant("ENABLE_ASCENT", "ascent"),
- self.define_from_variant("ENABLE_VTKM", "vtkm"),
- self.define_from_variant("ENABLE_CATALYST", "catalyst"),
- self.define_from_variant("ENABLE_LIBSIM", "libsim"),
- self.define_from_variant("ENABLE_VTK_IO", "vtkio"),
- self.define_from_variant("ENABLE_PYTHON", "python"),
- self.define_from_variant("ENABLE_ADIOS2", "adios2"),
- self.define_from_variant("ENABLE_HDF5", "hdf5"),
- self.define_from_variant("ENABLE_PARALLEL3D", "miniapps"),
- self.define_from_variant("ENABLE_OSCILLATORS", "miniapps"),
+ self.define(f"{prefix}ENABLE_CRAY_MPICH", False),
+ self.define_from_variant(f"{prefix}ENABLE_ASCENT", "ascent"),
+ self.define_from_variant(f"{prefix}ENABLE_VTKM", "vtkm"),
+ self.define_from_variant(f"{prefix}ENABLE_CATALYST", "catalyst"),
+ self.define_from_variant(f"{prefix}ENABLE_LIBSIM", "libsim"),
+ self.define_from_variant(f"{prefix}ENABLE_VTK_IO", "vtkio"),
+ self.define_from_variant(f"{prefix}ENABLE_PYTHON", "python"),
+ self.define_from_variant(f"{prefix}ENABLE_ADIOS2", "adios2"),
+ self.define_from_variant(f"{prefix}ENABLE_HDF5", "hdf5"),
+ self.define_from_variant(f"{prefix}ENABLE_PARALLEL3D", "miniapps"),
+ self.define_from_variant(f"{prefix}ENABLE_OSCILLATORS", "miniapps"),
]
if "+adios2" in spec:
@@ -151,11 +154,8 @@ class Sensei(CMakePackage):
args.append("-DVISIT_DIR:PATH={0}/current/linux-x86_64".format(spec["visit"].prefix))
if "+python" in spec:
- args.append(self.define("PYTHON_EXECUTABLE", spec["python"].command.path))
- args.append(self.define("Python_EXECUTABLE", spec["python"].command.path))
- args.append(self.define("Python3_EXECUTABLE", spec["python"].command.path))
if spec.satisfies("@3:"):
args.append(self.define("SENSEI_PYTHON_VERSION", 3))
- args.append(self.define_from_variant("ENABLE_CATALYST_PYTHON", "catalyst"))
+ args.append(self.define_from_variant(f"{prefix}ENABLE_CATALYST_PYTHON", "catalyst"))
return args
diff --git a/var/spack/repos/builtin/packages/serenity/package.py b/var/spack/repos/builtin/packages/serenity/package.py
index 6a3e69c515..12c05b147a 100644
--- a/var/spack/repos/builtin/packages/serenity/package.py
+++ b/var/spack/repos/builtin/packages/serenity/package.py
@@ -115,7 +115,7 @@ class Serenity(CMakePackage):
)
def cmake_args(self):
- args = [
+ return [
self.define("SERENITY_BUILD_TESTS", self.run_tests),
self.define_from_variant("SERENITY_BUILD_PYTHON_BINDINGS", "python"),
self.define("SERENITY_MARCH", ""),
@@ -137,6 +137,3 @@ class Serenity(CMakePackage):
self.define("BOOST_NO_SYSTEM_PATHS", True),
self.define("Boost_NO_BOOST_CMAKE", True),
]
- if "+python" in self.spec:
- args.append(self.define("PYTHON_EXECUTABLE", self.spec["python"].command.path))
- return args
diff --git a/var/spack/repos/builtin/packages/sollve/package.py b/var/spack/repos/builtin/packages/sollve/package.py
index f9783acc52..3cb3e5cd7e 100644
--- a/var/spack/repos/builtin/packages/sollve/package.py
+++ b/var/spack/repos/builtin/packages/sollve/package.py
@@ -259,7 +259,6 @@ class Sollve(CMakePackage):
"-DLLVM_ENABLE_RTTI:BOOL=ON",
"-DLLVM_ENABLE_EH:BOOL=ON",
"-DCLANG_DEFAULT_OPENMP_RUNTIME:STRING=libomp",
- "-DPYTHON_EXECUTABLE:PATH={0}".format(spec["python"].command.path),
]
# TODO: Instead of unconditionally disabling CUDA, add a "cuda" variant
diff --git a/var/spack/repos/builtin/packages/spectre/package.py b/var/spack/repos/builtin/packages/spectre/package.py
index 4f40fa4cf8..6d288e8fea 100644
--- a/var/spack/repos/builtin/packages/spectre/package.py
+++ b/var/spack/repos/builtin/packages/spectre/package.py
@@ -307,7 +307,6 @@ class Spectre(CMakePackage):
args = [
self.define("CHARM_ROOT", self.spec["charmpp"].prefix),
self.define_from_variant("BUILD_SHARED_LIBS", "shared"),
- self.define("Python_EXECUTABLE", self.spec["python"].command.path),
self.define_from_variant("BUILD_PYTHON_BINDINGS", "python"),
self.define("BUILD_TESTING", self.run_tests),
self.define_from_variant("BUILD_DOCS", "doc"),
diff --git a/var/spack/repos/builtin/packages/steps/package.py b/var/spack/repos/builtin/packages/steps/package.py
index 7d6c59657a..f616d30d15 100644
--- a/var/spack/repos/builtin/packages/steps/package.py
+++ b/var/spack/repos/builtin/packages/steps/package.py
@@ -85,7 +85,6 @@ class Steps(CMakePackage):
def cmake_args(self):
args = [
self.define("BLAS_LIBRARIES", self.spec["blas"].libs.joined(";")),
- self.define("PYTHON_EXECUTABLE", self.spec["python"].command),
self.define("STEPS_INSTALL_PYTHON_DEPS", False),
self.define_from_variant("BUILD_STOCHASTIC_TESTS", "stochtests"),
self.define_from_variant("BUILD_TESTING", "codechecks"),
diff --git a/var/spack/repos/builtin/packages/tasmanian/package.py b/var/spack/repos/builtin/packages/tasmanian/package.py
index dcbaa2e793..c9285453f4 100644
--- a/var/spack/repos/builtin/packages/tasmanian/package.py
+++ b/var/spack/repos/builtin/packages/tasmanian/package.py
@@ -114,11 +114,6 @@ class Tasmanian(CMakePackage, CudaPackage, ROCmPackage):
args.append("-DBLAS_LIBRARIES={0}".format(spec["blas"].libs.joined(";")))
args.append("-DLAPACK_LIBRARIES={0}".format(spec["lapack"].libs.joined(";")))
- if spec.satisfies("+python"):
- args.append(
- "-DPYTHON_EXECUTABLE:FILEPATH={0}".format(self.spec["python"].command.path)
- )
-
return args
@run_after("install")
diff --git a/var/spack/repos/builtin/packages/templight/package.py b/var/spack/repos/builtin/packages/templight/package.py
index e49375e30e..76df5f2bed 100644
--- a/var/spack/repos/builtin/packages/templight/package.py
+++ b/var/spack/repos/builtin/packages/templight/package.py
@@ -128,7 +128,6 @@ class Templight(CMakePackage):
cmake_args = [
"-DLLVM_REQUIRES_RTTI:BOOL=ON",
"-DCLANG_DEFAULT_OPENMP_RUNTIME:STRING=libomp",
- "-DPYTHON_EXECUTABLE:PATH={0}".format(spec["python"].command.path),
"-DLLVM_EXTERNAL_POLLY_BUILD:Bool=OFF",
"-DLLVM_TOOL_POLLY_BUILD:Bool=OFF",
"-DLLVM_POLLY_BUILD:Bool=OFF",
diff --git a/var/spack/repos/builtin/packages/tfel/package.py b/var/spack/repos/builtin/packages/tfel/package.py
index 540d6f2503..39d13b29cd 100644
--- a/var/spack/repos/builtin/packages/tfel/package.py
+++ b/var/spack/repos/builtin/packages/tfel/package.py
@@ -180,6 +180,8 @@ class Tfel(CMakePackage):
args.append("-Denable-python-bindings=OFF")
if ("+python" in self.spec) or ("+python_bindings" in self.spec):
+ # Note: calls find_package(PythonLibs) before find_package(PythonInterp), so these
+ # variables are required.
python = self.spec["python"]
args.append("-DPYTHON_LIBRARY={0}".format(python.libs[0]))
args.append("-DPYTHON_INCLUDE_DIR={0}".format(python.headers.directories[0]))
diff --git a/var/spack/repos/builtin/packages/timemory/package.py b/var/spack/repos/builtin/packages/timemory/package.py
index fa5eb2bdc5..290a85bc9f 100644
--- a/var/spack/repos/builtin/packages/timemory/package.py
+++ b/var/spack/repos/builtin/packages/timemory/package.py
@@ -322,11 +322,6 @@ class Timemory(CMakePackage, PythonExtension):
self.define_from_variant("TIMEMORY_USE_ALLINEA_MAP", "allinea_map"),
]
- if "+python" in spec:
- pyexe = spec["python"].command.path
- args.append(self.define("PYTHON_EXECUTABLE=", pyexe))
- args.append(self.define("Python3_EXECUTABLE", pyexe))
-
if "+mpi" in spec:
args.append(self.define("MPI_C_COMPILER", spec["mpi"].mpicc))
args.append(self.define("MPI_CXX_COMPILER", spec["mpi"].mpicxx))
diff --git a/var/spack/repos/builtin/packages/tiramisu/package.py b/var/spack/repos/builtin/packages/tiramisu/package.py
index b3c95a0738..c6e74e1546 100644
--- a/var/spack/repos/builtin/packages/tiramisu/package.py
+++ b/var/spack/repos/builtin/packages/tiramisu/package.py
@@ -57,10 +57,7 @@ class Tiramisu(CMakePackage, CudaPackage, PythonExtension):
self.define("USE_FLEXNLP", False),
]
if "+python" in spec:
- args += [
- self.define("Tiramisu_INSTALL_PYTHONDIR", python_platlib),
- self.define("Python3_EXECUTABLE", spec["python"].command.path),
- ]
+ args += [self.define("Tiramisu_INSTALL_PYTHONDIR", python_platlib)]
return args
@property
diff --git a/var/spack/repos/builtin/packages/vdt/package.py b/var/spack/repos/builtin/packages/vdt/package.py
index 24869c0865..0b5a2aafdf 100644
--- a/var/spack/repos/builtin/packages/vdt/package.py
+++ b/var/spack/repos/builtin/packages/vdt/package.py
@@ -46,10 +46,7 @@ class Vdt(CMakePackage):
elif spec.satisfies("target=ppc64le:"):
disable_features.add("fma")
- args = [
- self.define_from_variant("PRELOAD"),
- self.define("PYTHON_EXECUTABLE", spec["python"].command),
- ]
+ args = [self.define_from_variant("PRELOAD")]
for f in ["sse", "avx", "avx2", "fma", "neon"]:
args.append(
self.define(f.upper(), f not in disable_features and f in self.spec.target)
diff --git a/var/spack/repos/builtin/packages/vtk/package.py b/var/spack/repos/builtin/packages/vtk/package.py
index de16f92e6f..38863fdcc3 100644
--- a/var/spack/repos/builtin/packages/vtk/package.py
+++ b/var/spack/repos/builtin/packages/vtk/package.py
@@ -310,8 +310,6 @@ class Vtk(CMakePackage):
# Enable/Disable wrappers for Python.
if "+python" in spec:
cmake_args.append("-DVTK_WRAP_PYTHON=ON")
- if spec.satisfies("@:8"):
- cmake_args.append("-DPYTHON_EXECUTABLE={0}".format(spec["python"].command.path))
if "+mpi" in spec and spec.satisfies("@:8"):
cmake_args.append("-DVTK_USE_SYSTEM_MPI4PY:BOOL=ON")
if spec.satisfies("@9.0.0: ^python@3:"):
diff --git a/var/spack/repos/builtin/packages/xcfun/package.py b/var/spack/repos/builtin/packages/xcfun/package.py
index 4e803367bc..737e8b356e 100644
--- a/var/spack/repos/builtin/packages/xcfun/package.py
+++ b/var/spack/repos/builtin/packages/xcfun/package.py
@@ -36,7 +36,6 @@ class Xcfun(CMakePackage):
"-DPYMOD_INSTALL_LIBDIR=/python{0}/site-packages".format(spec["python"].version[:-1]),
"-DXCFUN_MAX_ORDER=8",
"-DXCFUN_PYTHON_INTERFACE=ON",
- "-DPYTHON_EXECUTABLE={0}".format(spec["python"].command),
"-DENABLE_TESTALL=OFF",
]
return args
diff --git a/var/spack/repos/builtin/packages/xrootd/package.py b/var/spack/repos/builtin/packages/xrootd/package.py
index 1d20706fc9..8b96436899 100644
--- a/var/spack/repos/builtin/packages/xrootd/package.py
+++ b/var/spack/repos/builtin/packages/xrootd/package.py
@@ -203,12 +203,7 @@ class Xrootd(CMakePackage):
]
# see https://github.com/spack/spack/pull/11581
if "+python" in self.spec:
- options.extend(
- [
- define("PYTHON_EXECUTABLE", spec["python"].command.path),
- define("XRD_PYTHON_REQ_VERSION", spec["python"].version.up_to(2)),
- ]
- )
+ options.append(define("XRD_PYTHON_REQ_VERSION", spec["python"].version.up_to(2)))
if "+scitokens-cpp" in self.spec:
options.append("-DSCITOKENS_CPP_DIR=%s" % spec["scitokens-cpp"].prefix)
diff --git a/var/spack/repos/builtin/packages/xtensor-python/package.py b/var/spack/repos/builtin/packages/xtensor-python/package.py
index 1b0c883e56..0d277428cd 100644
--- a/var/spack/repos/builtin/packages/xtensor-python/package.py
+++ b/var/spack/repos/builtin/packages/xtensor-python/package.py
@@ -33,11 +33,3 @@ class XtensorPython(CMakePackage):
depends_on("python", type=("build", "link", "run"))
extends("python")
-
- def cmake_args(self):
- spec = self.spec
-
- python_exe = spec["python"].command.path
-
- args = ["-DPYTHON_EXECUTABLE={0}".format(python_exe)]
- return args