Skip to content
Snippets Groups Projects
Unverified Commit b4501c45 authored by Todd Gamblin's avatar Todd Gamblin
Browse files

`spack find` now displays variants and other spec constraints

If you do this in a spack environment:

    spack add hdf5+hl

hdf5+hl will be the root added to the `spack.yaml` file, and you should
really expect `hdf5+hl` to display as a root in the environment.

- [x] Add decoration to roots so that you can see the details about what
      is required to build.
- [x] Add a test.
parent ecfe84de
No related branches found
No related tags found
No related merge requests found
...@@ -331,7 +331,7 @@ def get_arg(name, default=None): ...@@ -331,7 +331,7 @@ def get_arg(name, default=None):
format_string = get_arg('format', None) format_string = get_arg('format', None)
if format_string is None: if format_string is None:
nfmt = '{namespace}.{name}' if namespace else '{name}' nfmt = '{fullname}' if namespace else '{name}'
ffmt = '' ffmt = ''
if full_compiler or flags: if full_compiler or flags:
ffmt += '{%compiler.name}' ffmt += '{%compiler.name}'
......
...@@ -165,10 +165,18 @@ def display_env(env, args, decorator): ...@@ -165,10 +165,18 @@ def display_env(env, args, decorator):
tty.msg('No root specs') tty.msg('No root specs')
else: else:
tty.msg('Root specs') tty.msg('Root specs')
# TODO: Change this to not print extraneous deps and variants
# Roots are displayed with variants, etc. so that we can see
# specifically what the user asked for.
cmd.display_specs( cmd.display_specs(
env.user_specs, args, env.user_specs,
decorator=lambda s, f: color.colorize('@*{%s}' % f)) args,
decorator=lambda s, f: color.colorize('@*{%s}' % f),
namespace=True,
show_flags=True,
show_full_compiler=True,
variants=True
)
print() print()
if args.show_concretized: if args.show_concretized:
......
...@@ -615,6 +615,17 @@ def test_env_blocks_uninstall(mock_stage, mock_fetch, install_mockery): ...@@ -615,6 +615,17 @@ def test_env_blocks_uninstall(mock_stage, mock_fetch, install_mockery):
assert 'used by the following environments' in out assert 'used by the following environments' in out
def test_roots_display_with_variants():
env('create', 'test')
with ev.read('test'):
add('boost+shared')
with ev.read('test'):
out = find(output=str)
assert "boost +shared" in out
def test_uninstall_removes_from_env(mock_stage, mock_fetch, install_mockery): def test_uninstall_removes_from_env(mock_stage, mock_fetch, install_mockery):
env('create', 'test') env('create', 'test')
with ev.read('test'): with ev.read('test'):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment