Skip to content

Commit 693e5ac

Browse files
authored
Merge pull request #136 from Crivella/fix-LLVMhookForBundles
Allow LLVM hook to run from within a Bundle
2 parents 2b98346 + ea556b8 commit 693e5ac

1 file changed

Lines changed: 16 additions & 4 deletions

File tree

eb_hooks.py

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1203,12 +1203,24 @@ def pre_configure_hook_llvm(self, *args, **kwargs):
12031203
into pointing to the compat layer.
12041204
"""
12051205
if self.name in ['LLVM', 'ROCm-LLVM']:
1206+
from easybuild.easyblocks.generic.bundle import Bundle
1207+
from easybuild.easyblocks.llvm import EB_LLVM
1208+
12061209
eprefix = get_eessi_envvar('EPREFIX')
12071210

1208-
for software in ('zlib', 'ncurses'):
1209-
var_name = get_software_root_env_var_name(software)
1210-
env.setvar(var_name, os.path.join(eprefix, 'usr'))
1211-
self.deps.append(software)
1211+
def recursive_set_deps(item, softwares):
1212+
if isinstance(item, (list, tuple)):
1213+
for elem in item:
1214+
recursive_set_deps(elem, softwares)
1215+
elif isinstance(item, Bundle):
1216+
recursive_set_deps(item.comp_instances, softwares)
1217+
elif isinstance(item, EB_LLVM):
1218+
for sftw in softwares:
1219+
var_name = get_software_root_env_var_name(sftw)
1220+
env.setvar(var_name, os.path.join(eprefix, 'usr'))
1221+
item.deps.append(sftw)
1222+
1223+
recursive_set_deps(self, softwares=('zlib', 'ncurses'))
12121224
else:
12131225
raise EasyBuildError("LLVM-specific hook triggered for non-LLVM easyconfig?!")
12141226

0 commit comments

Comments
 (0)