summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/spack/spack/architecture.py11
-rw-r--r--lib/spack/spack/architectures/cray.py5
2 files changed, 16 insertions, 0 deletions
diff --git a/lib/spack/spack/architecture.py b/lib/spack/spack/architecture.py
index b251b82dcc..f56e4a3fbb 100644
--- a/lib/spack/spack/architecture.py
+++ b/lib/spack/spack/architecture.py
@@ -86,9 +86,20 @@ class Architecture(object):
self.name = name
def add_target(self, name, target):
+<<<<<<< HEAD
target.set_architecture(self)
self.targets[name] = target
+=======
+ """Used by the architecture specific subclass to list available targets. Raises an error
+ if the architecture specifies a name that is reserved by spack as an alias.
+ """
+ if name in ['front_end', 'fe', 'back_end', 'be', 'default']:
+ raise ValueError("%s is a spack reserved alias and cannot be the name of a target" % name)
+ self.targets[name] = target
+
+
+>>>>>>> 8b3f2ec1d117e1a8b206927f51db8684396c231b
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
diff --git a/lib/spack/spack/architectures/cray.py b/lib/spack/spack/architectures/cray.py
index a79c916684..420b7c589e 100644
--- a/lib/spack/spack/architectures/cray.py
+++ b/lib/spack/spack/architectures/cray.py
@@ -10,6 +10,11 @@ class Cray(Architecture):
def __init__(self):
super(Cray, self).__init__('cray')
+ # Back End compiler needs the proper target module loaded.
+ self.add_target('ivybridge','craype-ivybridge')
+ # Could switch to use modules and fe targets for front end
+ # Currently using compilers by path for front end.
+ self.add_target('sandybridge')
@classmethod
def detect(self):