From ba12f6125660034bb4f56fb7ee21f91505f980f9 Mon Sep 17 00:00:00 2001 From: crivella Date: Fri, 5 Dec 2025 10:57:04 +0100 Subject: [PATCH] Allow LLVM hook to run from within a Bundle --- eb_hooks.py | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/eb_hooks.py b/eb_hooks.py index 226cecb7..3ae489bf 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -897,12 +897,24 @@ def pre_configure_hook_llvm(self, *args, **kwargs): into pointing to the compat layer. """ if self.name in ['LLVM', 'ROCm-LLVM']: + from easybuild.easyblocks.generic.bundle import Bundle + from easybuild.easyblocks.llvm import EB_LLVM + eprefix = get_eessi_envvar('EPREFIX') - for software in ('zlib', 'ncurses'): - var_name = get_software_root_env_var_name(software) - env.setvar(var_name, os.path.join(eprefix, 'usr')) - self.deps.append(software) + def recursive_set_deps(item, softwares): + if isinstance(item, (list, tuple)): + for item in item: + recursive_set_deps(item, softwares) + elif isinstance(item, Bundle): + recursive_set_deps(item.comp_instances, softwares) + elif isinstance(item, EB_LLVM): + for sftw in softwares: + var_name = get_software_root_env_var_name(sftw) + env.setvar(var_name, os.path.join(eprefix, 'usr')) + item.deps.append(sftw) + + recursive_set_deps(self, softwares=('zlib', 'ncurses')) else: raise EasyBuildError("LLVM-specific hook triggered for non-LLVM easyconfig?!")