Skip to content

Commit 4547971

Browse files
committed
Load SYSTEM modules by short name
No need to use the full name for e.g. GCCcore/GCC which are in Core/GCC.
1 parent ee7a43f commit 4547971

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

easybuild/tools/toolchain/toolchain.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -660,8 +660,13 @@ def _load_dependencies_modules(self, silent=False):
660660
"""Load modules for dependencies, and handle special cases like external modules."""
661661
# For SYSTEM software we allow using dependencies from any toolchain so we need to use the full
662662
# module name to allow loading them in the hierarchical MNS
663-
mod_name_key = 'full_mod_name' if self.is_system_toolchain() else 'short_mod_name'
664-
dep_mods = [dep[mod_name_key] for dep in self.dependencies]
663+
is_system_toolchain = self.is_system_toolchain()
664+
665+
def get_module_name(dep):
666+
key = 'full_mod_name' if is_system_toolchain and not dep[SYSTEM_TOOLCHAIN_NAME] else 'short_mod_name'
667+
return dep[key]
668+
669+
dep_mods = [get_module_name(dep) for dep in self.dependencies]
665670

666671
if self.dry_run:
667672
dry_run_msg("\nLoading modules for dependencies...\n", silent=silent)
@@ -670,7 +675,7 @@ def _load_dependencies_modules(self, silent=False):
670675

671676
# load available modules for dependencies, simulate load for others
672677
for dep, dep_mod_exists in zip(self.dependencies, mods_exist):
673-
mod_name = dep[mod_name_key]
678+
mod_name = get_module_name(dep)
674679
if dep_mod_exists:
675680
self.modules_tool.load([mod_name])
676681
dry_run_msg("module load %s" % mod_name, silent=silent)
@@ -686,15 +691,15 @@ def _load_dependencies_modules(self, silent=False):
686691
self.modules_tool.load(dep_mods)
687692

688693
if self.dependencies:
689-
build_dep_mods = [dep[mod_name_key] for dep in self.dependencies if dep['build_only']]
694+
build_dep_mods = [get_module_name(dep) for dep in self.dependencies if dep['build_only']]
690695
if build_dep_mods:
691696
trace_msg("loading modules for build dependencies:")
692697
for dep_mod in build_dep_mods:
693698
trace_msg(' * ' + dep_mod)
694699
else:
695700
trace_msg("(no build dependencies specified)")
696701

697-
run_dep_mods = [dep[mod_name_key] for dep in self.dependencies if not dep['build_only']]
702+
run_dep_mods = [get_module_name(dep) for dep in self.dependencies if not dep['build_only']]
698703
if run_dep_mods:
699704
trace_msg("loading modules for (runtime) dependencies:")
700705
for dep_mod in run_dep_mods:
@@ -755,7 +760,7 @@ def _verify_toolchain(self):
755760
self.log.debug("List of toolchain dependencies from toolchain module: %s", self.toolchain_dep_mods)
756761

757762
# only retain names of toolchain elements, excluding toolchain name
758-
toolchain_definition = set([e for es in self.definition().values() for e in es if not e == self.name])
763+
toolchain_definition = set([e for es in self.definition().values() for e in es if e != self.name])
759764

760765
# filter out optional toolchain elements if they're not used in the module
761766
for elem_name in toolchain_definition.copy():

0 commit comments

Comments
 (0)