summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMatt Belhorn <belhornmp@ornl.gov>2016-10-31 00:02:27 -0400
committerTodd Gamblin <tgamblin@llnl.gov>2016-10-30 21:02:27 -0700
commit7ccf56a0b72fc6ce550d10e125a0dfa99d8b5f51 (patch)
treed3092d5780c0f6c6f38e053a945d91e3eefb93d8 /lib
parenta714377123cf2aefb895badfbf9d4baf81b39654 (diff)
downloadspack-7ccf56a0b72fc6ce550d10e125a0dfa99d8b5f51.tar.gz
spack-7ccf56a0b72fc6ce550d10e125a0dfa99d8b5f51.tar.bz2
spack-7ccf56a0b72fc6ce550d10e125a0dfa99d8b5f51.tar.xz
spack-7ccf56a0b72fc6ce550d10e125a0dfa99d8b5f51.zip
Removes cyclic dependency on spack.config. (#2121)
Merge #2030 added a cyclic dependency between the Cray platform needing to read a `targets.yaml` config file and `config.py` needing to get the platform names. This commit removes the cyclic dependency in favor of the more general config scheme. It also removes the now functionless `targets.yaml` config file. This breaks 'frontend' targets on the Cray platform but all architecture targets, including the frontend, that are provided by CrayPE are added to the Platform anyway so users can be explicit about the architecture targeted by the Cray compiler wrappers: ``` spack spec libelf arch=cray-CNL-frontend ``` becomes ``` spack spec libelf arch=cray-CNL-mc8 # on an XK7 or spack spec libelf arch=cray-CNL-sandybridge # on an older XC30, etc.. ``` The only way the 'frontend' target can be defined after this commit is through target environment variables.
Diffstat (limited to 'lib')
-rw-r--r--lib/spack/spack/config.py1
-rw-r--r--lib/spack/spack/platforms/cray.py7
-rw-r--r--lib/spack/spack/schema/targets.py45
3 files changed, 2 insertions, 51 deletions
diff --git a/lib/spack/spack/config.py b/lib/spack/spack/config.py
index 6a67f01d66..de5f55775c 100644
--- a/lib/spack/spack/config.py
+++ b/lib/spack/spack/config.py
@@ -179,7 +179,6 @@ section_schemas = {
'mirrors': spack.schema.mirrors.schema,
'repos': spack.schema.repos.schema,
'packages': spack.schema.packages.schema,
- 'targets': spack.schema.targets.schema,
'modules': spack.schema.modules.schema,
}
diff --git a/lib/spack/spack/platforms/cray.py b/lib/spack/spack/platforms/cray.py
index 9138ad7afe..94e2949e4a 100644
--- a/lib/spack/spack/platforms/cray.py
+++ b/lib/spack/spack/platforms/cray.py
@@ -1,7 +1,7 @@
import os
import re
-import spack.config
import llnl.util.tty as tty
+from spack import build_env_path
from spack.util.executable import which
from spack.architecture import Platform, Target, NoPlatformError
from spack.operating_systems.linux_distro import LinuxDistro
@@ -46,13 +46,10 @@ class Cray(Platform):
self.add_target(name, Target(name, 'craype-%s' % target))
# Get aliased targets from config or best guess from environment:
- conf = spack.config.get_config('targets')
for name in ('front_end', 'back_end'):
_target = getattr(self, name, None)
if _target is None:
_target = os.environ.get('SPACK_' + name.upper())
- if _target is None:
- _target = conf.get(name)
if _target is None and name == 'back_end':
_target = self._default_target_from_env()
if _target is not None:
@@ -82,7 +79,7 @@ class Cray(Platform):
similar to linux/standard linker behavior
"""
env.set('CRAYPE_LINK_TYPE', 'dynamic')
- cray_wrapper_names = join_path(spack.build_env_path, 'cray')
+ cray_wrapper_names = join_path(build_env_path, 'cray')
if os.path.isdir(cray_wrapper_names):
env.prepend_path('PATH', cray_wrapper_names)
env.prepend_path('SPACK_ENV_PATH', cray_wrapper_names)
diff --git a/lib/spack/spack/schema/targets.py b/lib/spack/spack/schema/targets.py
deleted file mode 100644
index 312474cab4..0000000000
--- a/lib/spack/spack/schema/targets.py
+++ /dev/null
@@ -1,45 +0,0 @@
-##############################################################################
-# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
-# Produced at the Lawrence Livermore National Laboratory.
-#
-# This file is part of Spack.
-# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
-# LLNL-CODE-647188
-#
-# For details, see https://github.com/llnl/spack
-# Please also see the LICENSE file for our notice and the LGPL.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License (as
-# published by the Free Software Foundation) version 2.1, February 1999.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
-# conditions of the GNU Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-##############################################################################
-"""Schema for target configuration files."""
-
-
-schema = {
- '$schema': 'http://json-schema.org/schema#',
- 'title': 'Spack target configuration file schema',
- 'type': 'object',
- 'additionalProperties': False,
- 'patternProperties': {
- r'targets:?': {
- 'type': 'object',
- 'default': {},
- 'additionalProperties': False,
- 'patternProperties': {
- r'\w[\w-]*': { # target name
- 'type': 'string',
- },
- },
- },
- },
-}