diff --git a/eb_hooks.py b/eb_hooks.py index d8c8db30..a47e8963 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -1670,6 +1670,29 @@ def pre_configure_hook_cmake_system(self, *args, **kwargs): raise EasyBuildError("CMake-specific hook triggered for non-CMake easyconfig?!") +def pre_configure_hook_visit(self, *args, **kwargs): + """ + Pre-configure hook for Visit + - make sure that zlib is found in compat layer + """ + if self.name == 'Visit': + if 'zlib' in build_option('filter_deps'): + compat_layer_topdir = get_eessi_envvar('EESSI_EPREFIX') + zlib_dir = os.path.join(compat_layer_topdir, 'usr') + zlib_opt = f'-DVISIT_ZLIB_DIR={zlib_dir}' + + if '-DVISIT_ZLIB_DIR' in self.cfg['configopts']: + self.cfg['configopts'] = re.sub( + r'-DVISIT_ZLIB_DIR=\S*', + zlib_opt, + self.cfg['configopts'], + ) + else: + self.cfg.update('configopts', zlib_opt) + else: + raise EasyBuildError("Visit-specific hook triggered for non-Visit easyconfig?!") + + def pre_configure_hook_Zoltan(self, *args, **kwargs): """ Pre-configure hook for Zoltan to filter out ParMETIS configure options, @@ -2413,6 +2436,7 @@ def post_easyblock_hook(self, *args, **kwargs): 'ROCm-LLVM': pre_configure_hook_llvm, 'Score-P': pre_configure_hook_score_p, 'SymEngine': pre_configure_hook_symengine, + 'Visit': pre_configure_hook_visit, 'WRF': pre_configure_hook_wrf_aarch64, 'Zoltan': pre_configure_hook_Zoltan, }