Allow fake installations (just make the directory).
- Use for debugging.
This commit is contained in:
parent
f1c5e64c23
commit
08f1701e35
@ -43,6 +43,9 @@ def setup_parser(subparser):
|
||||
subparser.add_argument(
|
||||
'-n', '--no-checksum', action='store_true', dest='no_checksum',
|
||||
help="Do not check packages against checksum")
|
||||
subparser.add_argument(
|
||||
'--fake', action='store_true', dest='fake',
|
||||
help="Fake install. Just remove the prefix and touch a fake file in it.")
|
||||
subparser.add_argument(
|
||||
'packages', nargs=argparse.REMAINDER, help="specs of packages to install")
|
||||
|
||||
@ -59,4 +62,5 @@ def install(parser, args):
|
||||
package = spack.db.get(spec)
|
||||
package.do_install(keep_prefix=args.keep_prefix,
|
||||
keep_stage=args.keep_stage,
|
||||
ignore_deps=args.ignore_deps)
|
||||
ignore_deps=args.ignore_deps,
|
||||
fake=args.fake)
|
||||
|
@ -709,9 +709,10 @@ def do_install(self, **kwargs):
|
||||
Package implementations should override install().
|
||||
"""
|
||||
# whether to keep the prefix on failure. Default is to destroy it.
|
||||
keep_prefix = kwargs.get('keep_prefix', False)
|
||||
keep_stage = kwargs.get('keep_stage', False)
|
||||
ignore_deps = kwargs.get('ignore_deps', False)
|
||||
keep_prefix = kwargs.get('keep_prefix', False)
|
||||
keep_stage = kwargs.get('keep_stage', False)
|
||||
ignore_deps = kwargs.get('ignore_deps', False)
|
||||
fake_install = kwargs.get('fake', False)
|
||||
|
||||
if not self.spec.concrete:
|
||||
raise ValueError("Can only install concrete packages.")
|
||||
@ -725,7 +726,8 @@ def do_install(self, **kwargs):
|
||||
if not ignore_deps:
|
||||
self.do_install_dependencies()
|
||||
|
||||
self.do_patch()
|
||||
if not fake_install:
|
||||
self.do_patch()
|
||||
|
||||
# Fork a child process to do the build. This allows each
|
||||
# package authors to have full control over their environment,
|
||||
@ -750,8 +752,14 @@ def do_install(self, **kwargs):
|
||||
build_env.set_build_environment_variables(self)
|
||||
build_env.set_module_variables_for_package(self)
|
||||
|
||||
# Subclasses implement install() to do the real work.
|
||||
self.install(self.spec, self.prefix)
|
||||
if fake_install:
|
||||
mkdirp(self.prefix.bin)
|
||||
touch(join_path(self.prefix.bin, 'fake'))
|
||||
mkdirp(self.prefix.lib)
|
||||
mkdirp(self.prefix.man1)
|
||||
else:
|
||||
# Subclasses implement install() to do the real work.
|
||||
self.install(self.spec, self.prefix)
|
||||
|
||||
# Ensure that something was actually installed.
|
||||
if not os.listdir(self.prefix):
|
||||
|
Loading…
Reference in New Issue
Block a user