summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTodd Gamblin <tgamblin@llnl.gov>2020-07-31 18:51:12 -0700
committerTodd Gamblin <tgamblin@llnl.gov>2020-08-12 23:58:10 -0700
commitaff0e8b592ea087905ad3ae267a3290b9c0052f5 (patch)
tree0f5432ddb60399123e95a596b4086bf57b953f2a
parent7302dd834f4eb3166115543c9ad8169218aa6c62 (diff)
downloadspack-aff0e8b592ea087905ad3ae267a3290b9c0052f5.tar.gz
spack-aff0e8b592ea087905ad3ae267a3290b9c0052f5.tar.bz2
spack-aff0e8b592ea087905ad3ae267a3290b9c0052f5.tar.xz
spack-aff0e8b592ea087905ad3ae267a3290b9c0052f5.zip
architecture: make it easier to get a Spec for the default arch
- [x] Make it easier to get a `Spec` with a proper `ArchSpec` from an `Arch` object via new `Arch.to_spec()` method. - [x] Pull `spack.architecture.default_arch()` out of `spack.architecture.sys_type()` so we can get an `Arch` instead of a string.
-rw-r--r--lib/spack/spack/architecture.py17
1 files changed, 15 insertions, 2 deletions
diff --git a/lib/spack/spack/architecture.py b/lib/spack/spack/architecture.py
index 963fecd375..a7c8062fad 100644
--- a/lib/spack/spack/architecture.py
+++ b/lib/spack/spack/architecture.py
@@ -436,6 +436,12 @@ class Arch(object):
('target', self.target.to_dict_or_value())])
return syaml_dict([('arch', d)])
+ def to_spec(self):
+ """Convert this Arch to an anonymous Spec with architecture defined."""
+ spec = spack.spec.Spec()
+ spec.architecture = spack.spec.ArchSpec(str(self))
+ return spec
+
@staticmethod
def from_dict(d):
spec = spack.spec.ArchSpec.from_dict(d)
@@ -518,6 +524,14 @@ def platform():
@memoized
+def default_arch():
+ """Default ``Arch`` object for this machine.
+
+ See ``sys_type()``.
+ """
+ return Arch(platform(), 'default_os', 'default_target')
+
+
def sys_type():
"""Print out the "default" platform-os-target tuple for this machine.
@@ -530,8 +544,7 @@ def sys_type():
architectures.
"""
- arch = Arch(platform(), 'default_os', 'default_target')
- return str(arch)
+ return str(default_arch())
@memoized