diff options
-rw-r--r-- | lib/spack/spack/modules/lmod.py | 6 | ||||
-rw-r--r-- | lib/spack/spack/test/modules/lmod.py | 16 | ||||
-rw-r--r-- | share/spack/templates/modules/modulefile.lua | 1 |
3 files changed, 22 insertions, 1 deletions
diff --git a/lib/spack/spack/modules/lmod.py b/lib/spack/spack/modules/lmod.py index a381e08ca9..e45b97773b 100644 --- a/lib/spack/spack/modules/lmod.py +++ b/lib/spack/spack/modules/lmod.py @@ -198,7 +198,11 @@ class LmodFileLayout(BaseFileLayout): @property def arch_dirname(self): """Returns the root folder for THIS architecture""" - arch_folder = str(self.spec.architecture) + arch_folder = '-'.join([ + str(self.spec.platform), + str(self.spec.os), + str(self.spec.target.family) + ]) return os.path.join( self.dirname(), # root for lmod module files arch_folder, # architecture relative path diff --git a/lib/spack/spack/test/modules/lmod.py b/lib/spack/spack/test/modules/lmod.py index 7ee173d660..e480d22601 100644 --- a/lib/spack/spack/test/modules/lmod.py +++ b/lib/spack/spack/test/modules/lmod.py @@ -262,3 +262,19 @@ class TestLmod(object): # Assert we have core compilers now writer, _ = factory(mpileaks_spec_string) assert writer.conf.core_compilers + + @pytest.mark.parametrize('spec_str', [ + 'mpileaks target=haswell', + 'mpileaks target=core2', + 'mpileaks target=x86_64', + ]) + @pytest.mark.regression('13005') + def test_only_generic_microarchitectures_in_root( + self, spec_str, factory, module_configuration + ): + module_configuration('complex_hierarchy') + writer, spec = factory(spec_str) + + assert str(spec.target.family) in writer.layout.arch_dirname + if spec.target.family != spec.target: + assert str(spec.target) not in writer.layout.arch_dirname diff --git a/share/spack/templates/modules/modulefile.lua b/share/spack/templates/modules/modulefile.lua index a8eae9bef1..2149c8bfaf 100644 --- a/share/spack/templates/modules/modulefile.lua +++ b/share/spack/templates/modules/modulefile.lua @@ -8,6 +8,7 @@ {% if short_description %} whatis([[Name : {{ spec.name }}]]) whatis([[Version : {{ spec.version }}]]) +whatis([[Target : {{ spec.target }}]]) whatis([[Short description : {{ short_description }}]]) {% endif %} {% if configure_options %} |