summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Pokorny <mpokorny@caltech.edu>2024-06-24 23:35:29 -0600
committerGitHub <noreply@github.com>2024-06-25 07:35:29 +0200
commit822622f07ae574e982428225cee269c03e303c0c (patch)
treed89871cca71c2c0bde6ba7308f42a9b391f49fd4
parentc4194e4f586de870f40b0f9274be7bc1f830c49d (diff)
downloadspack-822622f07ae574e982428225cee269c03e303c0c.tar.gz
spack-822622f07ae574e982428225cee269c03e303c0c.tar.bz2
spack-822622f07ae574e982428225cee269c03e303c0c.tar.xz
spack-822622f07ae574e982428225cee269c03e303c0c.zip
thrust: add v1.17.x (#44561)
-rw-r--r--var/spack/repos/builtin/packages/thrust/package.py34
1 files changed, 32 insertions, 2 deletions
diff --git a/var/spack/repos/builtin/packages/thrust/package.py b/var/spack/repos/builtin/packages/thrust/package.py
index ab37e4b347..93ea42eb33 100644
--- a/var/spack/repos/builtin/packages/thrust/package.py
+++ b/var/spack/repos/builtin/packages/thrust/package.py
@@ -6,15 +6,22 @@
from spack.package import *
-class Thrust(Package):
+class Thrust(Package, CMakePackage):
"""Thrust is a parallel algorithms library
which resembles the C++ Standard Template Library (STL)."""
homepage = "https://thrust.github.io"
url = "https://github.com/NVIDIA/thrust/archive/1.12.0.tar.gz"
+ git = "https://github.com/NVIDIA/thrust.git"
license("BSL-1.0")
+ # to support CMake build system package installation, Thrust
+ # submodules must be downloaded, which aren't included in tarballs
+ version("1.17.2", commit="1ac51f2b6219ff17d15d93f2e0be85038556f346", submodules=True)
+ version("1.17.1", commit="4dd337f41622f5624359d6a958e3cb6ac7c6f57e", submodules=True)
+ version("1.17.0", commit="6a3078c64cab0e2f276340fa5dcafa0d758ed890", submodules=True)
+ # versions prior to 1.17 install from tarballs
version("1.16.0", sha256="93b9553e3ee544e05395022bea67e6d600f8f3eb680950ec7cf73c0f55162487")
version("1.15.0", sha256="0eeaf5a77cd7cb143f3443bd96b215ae1c4eacf18a712762e6a5c85213f80cc2")
version("1.14.0", sha256="ddba9f3ed47b1a33562a4aea2d000a2ca2abcd45ff760af12aa81b8b7e492962")
@@ -45,7 +52,30 @@ class Thrust(Package):
version("1.8.3", sha256="2254200512fde7f4fd0fc74306286e192ea6ac9037576dbd31309c0579229dbb")
version("1.8.2", sha256="83bc9e7b769daa04324c986eeaf48fcb53c2dda26bcc77cb3c07f4b1c359feb8")
- def install(self, spec, prefix):
+ # leave the build system of pre-1.17 as originally implemented,
+ # but use CMake for newer versions
+ build_system(
+ conditional("cmake", when="@1.17:"), conditional("generic", when="@:1.16"), default="cmake"
+ )
+
+ # minimum CMake version is 3.15 for plain package installation (no
+ # examples, tests, etc)
+ depends_on("cmake@3.15:", when="@1.17:", type="build")
+
+
+class CMakeBuilder(spack.build_systems.cmake.CMakeBuilder):
+ def cmake_args(self):
+ return [
+ self.define("THRUST_ENABLE_HEADER_TESTING", "OFF"),
+ self.define("THRUST_ENABLE_TESTING", "OFF"),
+ self.define("THRUST_ENABLE_EXAMPLES", "OFF"),
+ self.define("THRUST_ENABLE_BENCHMARKS", "OFF"),
+ self.define("THRUST_INCLUDE_CUB_CMAKE", "OFF"),
+ ]
+
+
+class GenericBuilder(spack.build_systems.generic.GenericBuilder):
+ def install(self, pkg, spec, prefix):
install_tree("doc", join_path(prefix, "doc"))
install_tree("examples", join_path(prefix, "examples"))
install_tree("thrust", join_path(prefix, "include", "thrust"))