This adds support for multi-platform methods.

You can now do this:
class MyPackage(Package):
    def install(self):
        ...default install...

    @platform('bgqos_0')
    def install(self):
        ...specialized install for bgq...

This works on functions other than install, as well (as long as they're in a Package)
This commit is contained in:
Todd Gamblin
2013-04-04 09:52:15 -07:00
parent e1551de976
commit 422d291b11
14 changed files with 334 additions and 82 deletions

View File

@@ -15,6 +15,7 @@ sys.path.insert(0, SPACK_LIB_PATH)
# clean up the scope and start using spack package instead.
del SPACK_FILE, SPACK_PREFIX, SPACK_LIB_PATH
import spack
import spack.tty as tty
# Command parsing
parser = argparse.ArgumentParser(
@@ -43,4 +44,7 @@ spack.debug = args.debug
# Try to load the particular command asked for and run it
command = spack.cmd.get_command(args.command)
command(parser, args)
try:
command(parser, args)
except KeyboardInterrupt:
tty.die("Got a keyboard interrupt from the user.")