diff options
author | Gregory Becker <becker33@llnl.gov> | 2015-10-30 15:12:29 -0700 |
---|---|---|
committer | Gregory Becker <becker33@llnl.gov> | 2015-10-30 15:12:29 -0700 |
commit | d177184777591d21cc6a59771ed6f817960394f5 (patch) | |
tree | bf059391a4ac744eb4f65134d1621e5741c6f47b /lib | |
parent | 0a004e0fceb65f388eccbdfc0c7dc611555aa7d3 (diff) | |
download | spack-d177184777591d21cc6a59771ed6f817960394f5.tar.gz spack-d177184777591d21cc6a59771ed6f817960394f5.tar.bz2 spack-d177184777591d21cc6a59771ed6f817960394f5.tar.xz spack-d177184777591d21cc6a59771ed6f817960394f5.zip |
added target method to architecture.py and minor cleanup
Diffstat (limited to 'lib')
-rw-r--r-- | lib/spack/spack/architecture.py | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/lib/spack/spack/architecture.py b/lib/spack/spack/architecture.py index ea1f98e06e..f04fda2ee9 100644 --- a/lib/spack/spack/architecture.py +++ b/lib/spack/spack/architecture.py @@ -58,9 +58,10 @@ class Target(object): # architecture classes handling the aliasing for front-end, back-end and default def __init__(self,name, module_name=None): - self.name = name # case of cray "ivybridge but if it's x86_64 + self.name = name # case of cray "ivybridge" but if it's x86_64 self.module_name = module_name # craype-ivybridge + @property def compiler_strategy(self): if self.module_name: # If there is a module_name given then use MODULES return "MODULES" @@ -73,10 +74,9 @@ class Architecture(object): """ priority = None # Subclass needs to set this number. This controls order in which arch is detected. - front = None - back = None - default_front = None # The default front end target. On cray sandybridge - default_back = None # The default back end target. On cray ivybridge + front-end = None + back-end = None + default = None # The default back end target. On cray ivybridge def __init__(self, name): self.targets = {} @@ -85,7 +85,19 @@ class Architecture(object): def add_target(self, name, target): self.targets[name] = target - + def target(self, name): + """This is a getter method for the target dictionary that handles defaulting based + on the values provided by default, front-end, and back-end. This can be overwritten + by a subclass for which we want to provide further aliasing options. + """ + if name == 'default': + name = default + elif name == 'front_end': + name = front-end + elif name == 'back_end': + name = back-end + return self.targets[name] + @classmethod def detect(self): """ Subclass is responsible for implementing this method. |