spack setup: remove the command for v0.17.0 (#20277)
spack setup was deprecated in 0.16 and will be removed in 0.17 Follow-up to #18240
This commit is contained in:
parent
0366d49c6e
commit
aa8e026242
@ -262,20 +262,7 @@ def _commands(parser, args):
|
||||
if args.header and not os.path.exists(args.header):
|
||||
tty.die("No such file: '%s'" % args.header)
|
||||
|
||||
# if we're updating an existing file, only write output if a command
|
||||
# or the header is newer than the file.
|
||||
if args.update:
|
||||
if os.path.exists(args.update):
|
||||
files = [
|
||||
spack.cmd.get_module(command).__file__.rstrip('c') # pyc -> py
|
||||
for command in spack.cmd.all_commands()]
|
||||
if args.header:
|
||||
files.append(args.header)
|
||||
last_update = os.path.getmtime(args.update)
|
||||
if not any(os.path.getmtime(f) > last_update for f in files):
|
||||
tty.msg('File is up to date: %s' % args.update)
|
||||
return
|
||||
|
||||
tty.msg('Updating file: %s' % args.update)
|
||||
with open(args.update, 'w') as f:
|
||||
prepend_header(args, f)
|
||||
|
@ -1,163 +0,0 @@
|
||||
# Copyright 2013-2021 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 argparse
|
||||
import copy
|
||||
import os
|
||||
import sys
|
||||
|
||||
import llnl.util.tty as tty
|
||||
from llnl.util.filesystem import set_executable
|
||||
|
||||
import spack.repo
|
||||
import spack.store
|
||||
import spack.build_systems.cmake
|
||||
import spack.cmd
|
||||
import spack.cmd.install as install
|
||||
import spack.cmd.common.arguments as arguments
|
||||
from spack.util.executable import which
|
||||
|
||||
from spack.stage import DIYStage
|
||||
|
||||
description = "create a configuration script and module, but don't build"
|
||||
section = "build"
|
||||
level = "long"
|
||||
|
||||
|
||||
def setup_parser(subparser):
|
||||
subparser.add_argument(
|
||||
'-i', '--ignore-dependencies', action='store_true', dest='ignore_deps',
|
||||
help="do not try to install dependencies of requested packages")
|
||||
arguments.add_common_arguments(subparser, ['no_checksum', 'spec'])
|
||||
subparser.add_argument(
|
||||
'-v', '--verbose', action='store_true', dest='verbose',
|
||||
help="display verbose build output while installing")
|
||||
|
||||
cd_group = subparser.add_mutually_exclusive_group()
|
||||
arguments.add_common_arguments(cd_group, ['clean', 'dirty'])
|
||||
subparser.epilog = 'DEPRECATED: use `spack dev-build` instead'
|
||||
|
||||
|
||||
def write_spconfig(package, dirty):
|
||||
# Set-up the environment
|
||||
spack.build_environment.setup_package(package, dirty)
|
||||
|
||||
cmd = [str(which('cmake'))] + package.std_cmake_args + package.cmake_args()
|
||||
|
||||
env = dict()
|
||||
|
||||
paths = os.environ['PATH'].split(':')
|
||||
paths = [item for item in paths if 'spack/env' not in item]
|
||||
env['PATH'] = ':'.join(paths)
|
||||
env['CMAKE_PREFIX_PATH'] = os.environ['CMAKE_PREFIX_PATH']
|
||||
env['SPACK_INCLUDE_DIRS'] = os.environ['SPACK_INCLUDE_DIRS']
|
||||
env['CC'] = os.environ['SPACK_CC']
|
||||
env['CXX'] = os.environ['SPACK_CXX']
|
||||
env['FC'] = os.environ['SPACK_FC']
|
||||
|
||||
setup_fname = 'spconfig.py'
|
||||
with open(setup_fname, 'w') as fout:
|
||||
fout.write(
|
||||
r"""#!%s
|
||||
#
|
||||
|
||||
import sys
|
||||
import os
|
||||
import subprocess
|
||||
|
||||
def cmdlist(str):
|
||||
return list(x.strip().replace("'",'') for x in str.split('\n') if x)
|
||||
env = dict(os.environ)
|
||||
""" % sys.executable)
|
||||
|
||||
env_vars = sorted(list(env.keys()))
|
||||
for name in env_vars:
|
||||
val = env[name]
|
||||
if name.find('PATH') < 0:
|
||||
fout.write('env[%s] = %s\n' % (repr(name), repr(val)))
|
||||
else:
|
||||
if name == 'SPACK_INCLUDE_DIRS':
|
||||
sep = ';'
|
||||
else:
|
||||
sep = ':'
|
||||
|
||||
fout.write(
|
||||
'env[%s] = "%s".join(cmdlist("""\n' % (repr(name), sep))
|
||||
for part in val.split(sep):
|
||||
fout.write(' %s\n' % part)
|
||||
fout.write('"""))\n')
|
||||
|
||||
fout.write('\ncmd = cmdlist("""\n')
|
||||
fout.write('%s\n' % cmd[0])
|
||||
for arg in cmd[1:]:
|
||||
fout.write(' %s\n' % arg)
|
||||
fout.write('""") + sys.argv[1:]\n')
|
||||
fout.write('\nproc = subprocess.Popen(cmd, env=env)\nproc.wait()\n')
|
||||
set_executable(setup_fname)
|
||||
|
||||
|
||||
def setup(self, args):
|
||||
tty.warn('DEPRECATED: use `spack dev-build` instead')
|
||||
|
||||
if not args.spec:
|
||||
tty.die("spack setup requires a package spec argument.")
|
||||
|
||||
specs = spack.cmd.parse_specs(args.spec)
|
||||
if len(specs) > 1:
|
||||
tty.die("spack setup only takes one spec.")
|
||||
|
||||
# Take a write lock before checking for existence.
|
||||
with spack.store.db.write_transaction():
|
||||
spec = specs[0]
|
||||
if not spack.repo.path.exists(spec.name):
|
||||
tty.die("No package for '{0}' was found.".format(spec.name),
|
||||
" Use `spack create` to create a new package")
|
||||
if not spec.versions.concrete:
|
||||
tty.die(
|
||||
"spack setup spec must have a single, concrete version. "
|
||||
"Did you forget a package version number?")
|
||||
|
||||
spec.concretize()
|
||||
package = spack.repo.get(spec)
|
||||
if not isinstance(package, spack.build_systems.cmake.CMakePackage):
|
||||
tty.die(
|
||||
'Support for {0} derived packages not yet implemented'.format(
|
||||
package.build_system_class))
|
||||
|
||||
# It's OK if the package is already installed.
|
||||
|
||||
# Forces the build to run out of the current directory.
|
||||
package.stage = DIYStage(os.getcwd())
|
||||
|
||||
# disable checksumming if requested
|
||||
if args.no_checksum:
|
||||
spack.config.set('config:checksum', False, scope='command_line')
|
||||
|
||||
# Install dependencies if requested to do so
|
||||
if not args.ignore_deps:
|
||||
parser = argparse.ArgumentParser()
|
||||
install.setup_parser(parser)
|
||||
inst_args = copy.deepcopy(args)
|
||||
inst_args = parser.parse_args(
|
||||
['--only=dependencies'] + args.spec,
|
||||
namespace=inst_args
|
||||
)
|
||||
install.install(parser, inst_args)
|
||||
|
||||
# Generate spconfig.py
|
||||
tty.msg(
|
||||
'Generating spconfig.py [{0}]'.format(package.spec.cshort_spec)
|
||||
)
|
||||
dirty = args.dirty
|
||||
write_spconfig(package, dirty)
|
||||
|
||||
# Install this package to register it in the DB and permit
|
||||
# module file regeneration
|
||||
inst_args = copy.deepcopy(args)
|
||||
inst_args = parser.parse_args(
|
||||
['--only=package', '--fake'] + args.spec,
|
||||
namespace=inst_args
|
||||
)
|
||||
install.install(parser, inst_args)
|
@ -118,48 +118,21 @@ def test_rst_with_header(tmpdir):
|
||||
def test_rst_update(tmpdir):
|
||||
update_file = tmpdir.join('output')
|
||||
|
||||
# not yet created when commands is run
|
||||
commands('--update', str(update_file))
|
||||
assert update_file.exists()
|
||||
with update_file.open() as f:
|
||||
assert f.read()
|
||||
|
||||
# created but older than commands
|
||||
with update_file.open('w') as f:
|
||||
f.write('empty\n')
|
||||
update_file.setmtime(0)
|
||||
commands('--update', str(update_file))
|
||||
assert update_file.exists()
|
||||
with update_file.open() as f:
|
||||
assert f.read() != 'empty\n'
|
||||
|
||||
# newer than commands
|
||||
with update_file.open('w') as f:
|
||||
f.write('empty\n')
|
||||
commands('--update', str(update_file))
|
||||
assert update_file.exists()
|
||||
with update_file.open() as f:
|
||||
assert f.read() == 'empty\n'
|
||||
|
||||
|
||||
def test_update_with_header(tmpdir):
|
||||
update_file = tmpdir.join('output')
|
||||
|
||||
# not yet created when commands is run
|
||||
commands('--update', str(update_file))
|
||||
assert update_file.exists()
|
||||
with update_file.open() as f:
|
||||
assert f.read()
|
||||
fake_header = 'this is a header!\n\n'
|
||||
|
||||
filename = tmpdir.join('header.txt')
|
||||
with filename.open('w') as f:
|
||||
f.write(fake_header)
|
||||
|
||||
# created, newer than commands, but older than header
|
||||
commands('--update', str(update_file), '--header', str(filename))
|
||||
|
||||
# newer than commands and header
|
||||
commands('--update', str(update_file), '--header', str(filename))
|
||||
|
||||
|
||||
@ -229,7 +202,6 @@ def test_update_completion_arg(tmpdir, monkeypatch):
|
||||
old_file = old.read()
|
||||
with open(mock_args['bash']['update'], 'w') as mock:
|
||||
mock.write(old_file.replace("--update-completion", ""))
|
||||
mock_bashfile.setmtime(0) # ensure mtime triggers update
|
||||
|
||||
monkeypatch.setattr(
|
||||
spack.cmd.commands, 'update_completion_args', mock_args)
|
||||
|
@ -333,7 +333,7 @@ _spack() {
|
||||
then
|
||||
SPACK_COMPREPLY="-h --help -H --all-help --color -C --config-scope -d --debug --timestamp --pdb -e --env -D --env-dir -E --no-env --use-env-repo -k --insecure -l --enable-locks -L --disable-locks -m --mock -p --profile --sorted-profile --lines -v --verbose --stacktrace -V --version --print-shell-vars"
|
||||
else
|
||||
SPACK_COMPREPLY="activate add arch blame build-env buildcache cd checksum ci clean clone commands compiler compilers concretize config containerize create deactivate debug dependencies dependents deprecate dev-build develop docs edit env extensions external fetch find flake8 gc gpg graph help info install license list load location log-parse maintainers mark mirror module patch pkg providers pydoc python reindex remove rm repo resource restage setup solve spec stage style test test-env tutorial undevelop uninstall unit-test unload url verify versions view"
|
||||
SPACK_COMPREPLY="activate add arch blame build-env buildcache cd checksum ci clean clone commands compiler compilers concretize config containerize create deactivate debug dependencies dependents deprecate dev-build develop docs edit env extensions external fetch find flake8 gc gpg graph help info install license list load location log-parse maintainers mark mirror module patch pkg providers pydoc python reindex remove rm repo resource restage solve spec stage style test test-env tutorial undevelop uninstall unit-test unload url verify versions view"
|
||||
fi
|
||||
}
|
||||
|
||||
@ -1481,15 +1481,6 @@ _spack_restage() {
|
||||
fi
|
||||
}
|
||||
|
||||
_spack_setup() {
|
||||
if $list_options
|
||||
then
|
||||
SPACK_COMPREPLY="-h --help -i --ignore-dependencies -n --no-checksum -v --verbose --clean --dirty"
|
||||
else
|
||||
_all_packages
|
||||
fi
|
||||
}
|
||||
|
||||
_spack_solve() {
|
||||
if $list_options
|
||||
then
|
||||
|
Loading…
Reference in New Issue
Block a user