1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import os
from spack.package import *
class Turbine(AutotoolsPackage):
"""Turbine: The Swift/T runtime"""
homepage = "http://swift-lang.org/Swift-T"
url = "https://swift-lang.github.io/swift-t-downloads/spack/turbine-1.3.0.tar.gz"
git = "https://github.com/swift-lang/swift-t.git"
version("master", branch="master")
version("1.3.0", sha256="9709e5dada91a7dce958a7967d6ff2bd39ccc9e7da62d05a875324b5089da393")
version("1.2.3", sha256="a3156c7e0b39e166da3de8892f55fa5d535b0c99c87a9add067c801098fe51ba")
variant("python", default=False, description="Enable calling python")
variant("r", default=False, description="Enable calling R")
variant("hdf5", default=False, description="Enable HDF5 support")
depends_on("adlbx")
depends_on("adlbx@master", when="@master")
depends_on("adlbx@:0.9.2", when="@1.2.3:1.2.99")
depends_on("tcl", type=("build", "run"))
depends_on("zsh", type=("build", "run"))
depends_on("swig", type="build")
depends_on("python", when="+python")
depends_on("r", when="+r")
depends_on("r-rinside", when="+r")
depends_on("hdf5", when="+hdf5")
depends_on("mpi")
depends_on("autoconf", type="build", when="@master")
depends_on("automake", type="build", when="@master")
depends_on("libtool", type="build", when="@master")
depends_on("m4", type=("build", "run"))
def setup_build_environment(self, env):
spec = self.spec
env.set("CC", spec["mpi"].mpicc)
env.set("CXX", spec["mpi"].mpicxx)
env.set("CXXLD", spec["mpi"].mpicxx)
@property
def configure_directory(self):
if self.version == Version("master"):
return "turbine/code"
else:
return "."
def configure_args(self):
args = [
"--with-c-utils=" + self.spec["exmcutils"].prefix,
"--with-adlb=" + self.spec["adlbx"].prefix,
"--with-tcl=" + self.spec["tcl"].prefix,
"--with-mpi=" + self.spec["mpi"].prefix,
"--disable-static-pkg",
]
if "+hdf5" in self.spec:
args.append("--with-hdf5=ON")
else:
args.append("--with-hdf5=OFF")
if "+python" in self.spec:
args.append("--with-python-exe={0}".format(self.spec["python"].command.path))
if "+r" in self.spec:
r_location = "{0}/rlib/R".format(self.spec["r"].prefix)
if not os.path.exists(r_location):
rscript = which("Rscript")
if rscript is not None:
r_location = rscript("-e", "cat(R.home())", output=str)
else:
msg = "Could not locate Rscript on your PATH!"
raise RuntimeError(msg)
args.append("--with-r={0}".format(r_location))
return args
|