diff options
Diffstat (limited to 'var/spack/repos/builtin/packages/py-cmake/package.py')
-rw-r--r-- | var/spack/repos/builtin/packages/py-cmake/package.py | 38 |
1 files changed, 30 insertions, 8 deletions
diff --git a/var/spack/repos/builtin/packages/py-cmake/package.py b/var/spack/repos/builtin/packages/py-cmake/package.py index 15311893f2..3d0ec8d761 100644 --- a/var/spack/repos/builtin/packages/py-cmake/package.py +++ b/var/spack/repos/builtin/packages/py-cmake/package.py @@ -5,10 +5,19 @@ from spack.package import * +pycmake_versions = { + "3.27.9": "d8a40eef1268c91e5b520b28fd5fe0591d750e48e44276dbfd493a14ee595c41", + "3.22.2": "b5bd5eeb488b13cf64ec963800f3d979eaeb90b4382861b86909df503379e219", + "3.21.4": "30fa5ed8a5ad66dcd263adb87f3ce3dc2d0ec0ac3958f5becff577e4b62cd065", + "3.18.0": "52b98c5ee70b5fa30a8623e96482227e065292f78794eb085fdf0fecb204b79b", +} + class PyCmake(PythonPackage): """CMake is an open-source, cross-platform family of tools designed to - build, test and package software + build, test and package software. + + Deprecated: use cmake instead. """ homepage = "https://cmake.org" @@ -17,24 +26,24 @@ class PyCmake(PythonPackage): license("Apache-2.0") - version("3.22.2", sha256="b5bd5eeb488b13cf64ec963800f3d979eaeb90b4382861b86909df503379e219") - version("3.21.4", sha256="30fa5ed8a5ad66dcd263adb87f3ce3dc2d0ec0ac3958f5becff577e4b62cd065") - version("3.18.0", sha256="52b98c5ee70b5fa30a8623e96482227e065292f78794eb085fdf0fecb204b79b") + for v, sha in pycmake_versions.items(): + version(v, sha256=sha, deprecated=True) depends_on("ninja", type="build") depends_on("py-scikit-build@0.12:", type="build") depends_on("py-setuptools@42:", type="build") + depends_on("py-setuptools-scm+toml", when="@3.27.9:", type="build") # in newer pip versions --install-option does not exist depends_on("py-pip@:23.0", type="build") depends_on("git", type="build") - depends_on("cmake@3.22.2", type=("build", "link", "run"), when="@3.22.2") - depends_on("cmake@3.21.4", type=("build", "link", "run"), when="@3.21.4") - depends_on("cmake@3.18.0", type=("build", "link", "run"), when="@3.18.0") + + for v in pycmake_versions.keys(): + depends_on(f"cmake@{v}", type=("build", "link", "run"), when=f"@{v}") # see: # https://github.com/scikit-build/cmake-python-distributions/issues/227 # https://github.com/spack/spack/pull/28760#issuecomment-1029362288 - for v in ["3.22.2", "3.21.4", "3.18.0"]: + for v in pycmake_versions.keys(): resource( name="cmake-src", git="https://gitlab.kitware.com/cmake/cmake.git", @@ -46,3 +55,16 @@ class PyCmake(PythonPackage): def install_options(self, spec, prefix): return ["-DBUILD_CMAKE_FROM_SOURCE=ON", "-DCMakeProject_SOURCE_DIR=cmake-src"] + + def setup_build_environment(self, env): + if self.run_tests: + env.set( + "SKBUILD_CONFIGURE_OPTIONS", + # BootstrapTest is already exlcude upstream, + # The rest are (non-understood) known failures, disabled to get test suite working + # todo: investigate test failures / check if still needed in newer versions + "-DRUN_CMAKE_TEST=ON -DRUN_CMAKE_TEST_EXCLUDE=BootstrapTest|CompileWarningAsError" + "|GET_RUNTIME_DEPENDENCIES", + ) + else: + env.set("SKBUILD_CONFIGURE_OPTIONS", "-DRUN_CMAKE_TEST=OFF") |