From 8c429dd22ab441dd57fa5b9e74932170ee0b4aa8 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Thu, 2 Aug 2018 17:28:21 -0500 Subject: [PATCH 1/2] Add spack arch --operating-system and --target flags --- lib/spack/spack/cmd/arch.py | 19 ++++++++++++++++--- lib/spack/spack/cmd/help.py | 4 ++-- lib/spack/spack/test/cmd/arch.py | 23 ++++++++++++++++++++++- 3 files changed, 40 insertions(+), 6 deletions(-) diff --git a/lib/spack/spack/cmd/arch.py b/lib/spack/spack/cmd/arch.py index adec8db139774..da76968cd8bc8 100644 --- a/lib/spack/spack/cmd/arch.py +++ b/lib/spack/spack/cmd/arch.py @@ -35,11 +35,24 @@ def setup_parser(subparser): parts = subparser.add_mutually_exclusive_group() parts.add_argument( '-p', '--platform', action='store_true', default=False, - help="print only the platform") + help='print only the platform') + parts.add_argument( + '-o', '--operating-system', action='store_true', default=False, + help='print only the operating system') + parts.add_argument( + '-t', '--target', action='store_true', default=False, + help='print only the target') def arch(parser, args): + arch = architecture.Arch( + architecture.platform(), 'default_os', 'default_target') + if args.platform: - print(architecture.platform()) + print(arch.platform) + elif args.operating_system: + print(arch.platform_os) + elif args.target: + print(arch.target) else: - print(architecture.sys_type()) + print(arch) diff --git a/lib/spack/spack/cmd/help.py b/lib/spack/spack/cmd/help.py index b0bd85b8b1523..15830bc32283a 100644 --- a/lib/spack/spack/cmd/help.py +++ b/lib/spack/spack/cmd/help.py @@ -59,9 +59,9 @@ @B{variant=value1,value2,value3} set multi-value values architecture variants: - @m{target=target} specific processor - @m{os=operating_system} specific @m{platform=platform} linux, darwin, cray, bgq, etc. + @m{os=operating_system} specific + @m{target=target} specific processor @m{arch=platform-os-target} shortcut for all three above cross-compiling: diff --git a/lib/spack/spack/test/cmd/arch.py b/lib/spack/spack/test/cmd/arch.py index fe8dec8b2eaef..ce104f7182c99 100644 --- a/lib/spack/spack/test/cmd/arch.py +++ b/lib/spack/spack/test/cmd/arch.py @@ -29,6 +29,27 @@ def test_arch(): - """Sanity check the arch command to make sure it works.""" + """Sanity check ``spack arch`` to make sure it works.""" arch() + + +def test_arch_platform(): + """Sanity check ``spack arch --platform`` to make sure it works.""" + + arch('-p') + arch('--platform') + + +def test_arch_operating_system(): + """Sanity check ``spack arch --operating-system`` to make sure it works.""" + + arch('-o') + arch('--operating-system') + + +def test_arch_target(): + """Sanity check ``spack arch --target`` to make sure it works.""" + + arch('-t') + arch('--target') From bd80acc2f51fe3730c476e79f8b15f9a975e15bd Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Fri, 3 Aug 2018 10:31:44 -0500 Subject: [PATCH 2/2] Update bash completion with new spack arch flags --- share/spack/spack-completion.bash | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/share/spack/spack-completion.bash b/share/spack/spack-completion.bash index e5de003814e1e..40a13dfbcae2d 100755 --- a/share/spack/spack-completion.bash +++ b/share/spack/spack-completion.bash @@ -132,7 +132,8 @@ function _spack_activate { } function _spack_arch { - compgen -W "-h --help -p --platform" -- "$cur" + compgen -W "-h --help -p --platform -o --operating-system + -t --target" -- "$cur" } function _spack_blame {