Package.do_install
: removed install_self
from arguments (#1956)
* Removes the extra argument from Package.do_install while maintaining the changes in behavior pulled in #1603 * install : removed -i and -d shorthands (breaks backward compatibility) * Change ':' to ','
This commit is contained in:
parent
0e59ade030
commit
0a3cc5e8e3
@ -35,12 +35,15 @@
|
|||||||
|
|
||||||
def setup_parser(subparser):
|
def setup_parser(subparser):
|
||||||
subparser.add_argument(
|
subparser.add_argument(
|
||||||
'-i', '--ignore-dependencies', action='store_true', dest='ignore_deps',
|
'--only',
|
||||||
help="Do not try to install dependencies of requested packages.")
|
default='package,dependencies',
|
||||||
subparser.add_argument(
|
dest='things_to_install',
|
||||||
'-d', '--dependencies-only', action='store_true', dest='deps_only',
|
choices=['package', 'dependencies', 'package,dependencies'],
|
||||||
help='Install dependencies of this package, ' +
|
help="""Select the mode of installation.
|
||||||
'but not the package itself.')
|
The default is to install the package along with all its dependencies.
|
||||||
|
Alternatively one can decide to install only the package or only
|
||||||
|
the dependencies."""
|
||||||
|
)
|
||||||
subparser.add_argument(
|
subparser.add_argument(
|
||||||
'-j', '--jobs', action='store', type=int,
|
'-j', '--jobs', action='store', type=int,
|
||||||
help="Explicitly set number of make jobs. Default is #cpus.")
|
help="Explicitly set number of make jobs. Default is #cpus.")
|
||||||
@ -63,15 +66,17 @@ def setup_parser(subparser):
|
|||||||
'--dirty', action='store_true', dest='dirty',
|
'--dirty', action='store_true', dest='dirty',
|
||||||
help="Install a package *without* cleaning the environment.")
|
help="Install a package *without* cleaning the environment.")
|
||||||
subparser.add_argument(
|
subparser.add_argument(
|
||||||
'packages', nargs=argparse.REMAINDER,
|
'package',
|
||||||
help="specs of packages to install")
|
nargs=argparse.REMAINDER,
|
||||||
|
help="spec of the package to install"
|
||||||
|
)
|
||||||
subparser.add_argument(
|
subparser.add_argument(
|
||||||
'--run-tests', action='store_true', dest='run_tests',
|
'--run-tests', action='store_true', dest='run_tests',
|
||||||
help="Run tests during installation of a package.")
|
help="Run tests during installation of a package.")
|
||||||
|
|
||||||
|
|
||||||
def install(parser, args):
|
def install(parser, args):
|
||||||
if not args.packages:
|
if not args.package:
|
||||||
tty.die("install requires at least one package argument")
|
tty.die("install requires at least one package argument")
|
||||||
|
|
||||||
if args.jobs is not None:
|
if args.jobs is not None:
|
||||||
@ -81,17 +86,33 @@ def install(parser, args):
|
|||||||
if args.no_checksum:
|
if args.no_checksum:
|
||||||
spack.do_checksum = False # TODO: remove this global.
|
spack.do_checksum = False # TODO: remove this global.
|
||||||
|
|
||||||
specs = spack.cmd.parse_specs(args.packages, concretize=True)
|
# Parse cli arguments and construct a dictionary
|
||||||
for spec in specs:
|
# that will be passed to Package.do_install API
|
||||||
|
kwargs = {
|
||||||
|
'keep_prefix': args.keep_prefix,
|
||||||
|
'keep_stage': args.keep_stage,
|
||||||
|
'install_deps': 'dependencies' in args.things_to_install,
|
||||||
|
'make_jobs': args.jobs,
|
||||||
|
'run_tests': args.run_tests,
|
||||||
|
'verbose': args.verbose,
|
||||||
|
'fake': args.fake,
|
||||||
|
'dirty': args.dirty
|
||||||
|
}
|
||||||
|
|
||||||
|
# Spec from cli
|
||||||
|
specs = spack.cmd.parse_specs(args.package, concretize=True)
|
||||||
|
if len(specs) != 1:
|
||||||
|
tty.error('only one spec can be installed at a time.')
|
||||||
|
spec = specs.pop()
|
||||||
|
|
||||||
|
if args.things_to_install == 'dependencies':
|
||||||
|
# Install dependencies as-if they were installed
|
||||||
|
# for root (explicit=False in the DB)
|
||||||
|
kwargs['explicit'] = False
|
||||||
|
for s in spec.dependencies():
|
||||||
|
p = spack.repo.get(s)
|
||||||
|
p.do_install(**kwargs)
|
||||||
|
else:
|
||||||
package = spack.repo.get(spec)
|
package = spack.repo.get(spec)
|
||||||
package.do_install(
|
kwargs['explicit'] = True
|
||||||
keep_prefix=args.keep_prefix,
|
package.do_install(**kwargs)
|
||||||
keep_stage=args.keep_stage,
|
|
||||||
install_deps=not args.ignore_deps,
|
|
||||||
install_self=not args.deps_only,
|
|
||||||
make_jobs=args.jobs,
|
|
||||||
run_tests=args.run_tests,
|
|
||||||
verbose=args.verbose,
|
|
||||||
fake=args.fake,
|
|
||||||
dirty=args.dirty,
|
|
||||||
explicit=True)
|
|
||||||
|
@ -92,7 +92,6 @@ def setup(self, args):
|
|||||||
package.do_install(
|
package.do_install(
|
||||||
keep_prefix=True, # Don't remove install directory
|
keep_prefix=True, # Don't remove install directory
|
||||||
install_deps=not args.ignore_deps,
|
install_deps=not args.ignore_deps,
|
||||||
install_self=True,
|
|
||||||
verbose=args.verbose,
|
verbose=args.verbose,
|
||||||
keep_stage=True, # don't remove source dir for SETUP.
|
keep_stage=True, # don't remove source dir for SETUP.
|
||||||
install_phases=set(['setup', 'provenance']),
|
install_phases=set(['setup', 'provenance']),
|
||||||
|
@ -181,7 +181,6 @@ def install_single_spec(spec, number_of_jobs):
|
|||||||
package.do_install(keep_prefix=False,
|
package.do_install(keep_prefix=False,
|
||||||
keep_stage=True,
|
keep_stage=True,
|
||||||
install_deps=True,
|
install_deps=True,
|
||||||
install_self=True,
|
|
||||||
make_jobs=number_of_jobs,
|
make_jobs=number_of_jobs,
|
||||||
verbose=True,
|
verbose=True,
|
||||||
fake=False)
|
fake=False)
|
||||||
|
@ -952,8 +952,6 @@ def do_install(self,
|
|||||||
even with exceptions.
|
even with exceptions.
|
||||||
:param install_deps: Install dependencies before installing this \
|
:param install_deps: Install dependencies before installing this \
|
||||||
package
|
package
|
||||||
:param install_self: Install this package once dependencies have \
|
|
||||||
been installed.
|
|
||||||
:param fake: Don't really build; install fake stub files instead.
|
:param fake: Don't really build; install fake stub files instead.
|
||||||
:param skip_patch: Skip patch stage of build if True.
|
:param skip_patch: Skip patch stage of build if True.
|
||||||
:param verbose: Display verbose build output (by default, suppresses \
|
:param verbose: Display verbose build output (by default, suppresses \
|
||||||
@ -998,7 +996,6 @@ def do_install(self,
|
|||||||
keep_prefix=keep_prefix,
|
keep_prefix=keep_prefix,
|
||||||
keep_stage=keep_stage,
|
keep_stage=keep_stage,
|
||||||
install_deps=install_deps,
|
install_deps=install_deps,
|
||||||
install_self=True,
|
|
||||||
fake=fake,
|
fake=fake,
|
||||||
skip_patch=skip_patch,
|
skip_patch=skip_patch,
|
||||||
verbose=verbose,
|
verbose=verbose,
|
||||||
@ -1006,11 +1003,6 @@ def do_install(self,
|
|||||||
run_tests=run_tests,
|
run_tests=run_tests,
|
||||||
dirty=dirty)
|
dirty=dirty)
|
||||||
|
|
||||||
# The rest of this function is to install ourself,
|
|
||||||
# once deps have been installed.
|
|
||||||
if not install_self:
|
|
||||||
return
|
|
||||||
|
|
||||||
# Set run_tests flag before starting build.
|
# Set run_tests flag before starting build.
|
||||||
self.run_tests = run_tests
|
self.run_tests = run_tests
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user