Skip to content

Commit 0a7ac9b

Browse files
authored
Merge pull request #298 from trz42/add_hook_for_lammps
add hook for LAMMPS
2 parents dbdf9ae + 404ded5 commit 0a7ac9b

File tree

1 file changed

+18
-19
lines changed

1 file changed

+18
-19
lines changed

eb_hooks.py

+18-19
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,23 @@ def parse_hook_ucx_eprefix(ec, eprefix):
291291
raise EasyBuildError("UCX-specific hook triggered for non-UCX easyconfig?!")
292292

293293

294+
def parse_hook_lammps_remove_deps_for_CI_aarch64(ec, *args, **kwargs):
295+
"""
296+
Remove x86_64 specific dependencies for the CI to pass on aarch64
297+
"""
298+
if ec.name == 'LAMMPS' and ec.version in ('2Aug2023_update2',):
299+
if os.getenv('EESSI_CPU_FAMILY') == 'aarch64':
300+
# ScaFaCoS and tbb are not compatible with aarch64/* CPU targets,
301+
# so remove them as dependencies for LAMMPS (they're optional);
302+
# see also https://github.com/easybuilders/easybuild-easyconfigs/pull/19164 +
303+
# https://github.com/easybuilders/easybuild-easyconfigs/pull/19000;
304+
# we need this hook because we check for missing installations for all CPU targets
305+
# on an x86_64 VM in GitHub Actions (so condition based on ARCH in LAMMPS easyconfig is always true)
306+
ec['dependencies'] = [dep for dep in ec['dependencies'] if dep[0] not in ('ScaFaCoS', 'tbb')]
307+
else:
308+
raise EasyBuildError("LAMMPS-specific hook triggered for non-LAMMPS easyconfig?!")
309+
310+
294311
def pre_configure_hook(self, *args, **kwargs):
295312
"""Main pre-configure hook: trigger custom functions based on software name."""
296313
if self.name in PRE_CONFIGURE_HOOKS:
@@ -363,24 +380,6 @@ def pre_configure_hook_wrf_aarch64(self, *args, **kwargs):
363380
raise EasyBuildError("WRF-specific hook triggered for non-WRF easyconfig?!")
364381

365382

366-
def pre_configure_hook_LAMMPS_aarch64(self, *args, **kwargs):
367-
"""
368-
pre-configure hook for LAMMPS:
369-
- set kokkos_arch on Aarch64
370-
"""
371-
372-
cpu_target = get_eessi_envvar('EESSI_SOFTWARE_SUBDIR')
373-
if self.name == 'LAMMPS':
374-
if self.version == '23Jun2022':
375-
if get_cpu_architecture() == AARCH64:
376-
if cpu_target == CPU_TARGET_AARCH64_GENERIC:
377-
self.cfg['kokkos_arch'] = 'ARM80'
378-
else:
379-
self.cfg['kokkos_arch'] = 'ARM81'
380-
else:
381-
raise EasyBuildError("LAMMPS-specific hook triggered for non-LAMMPS easyconfig?!")
382-
383-
384383
def pre_configure_hook_atspi2core_filter_ld_library_path(self, *args, **kwargs):
385384
"""
386385
pre-configure hook for at-spi2-core:
@@ -634,6 +633,7 @@ def inject_gpu_property(ec):
634633
'pybind11': parse_hook_pybind11_replace_catch2,
635634
'Qt5': parse_hook_qt5_check_qtwebengine_disable,
636635
'UCX': parse_hook_ucx_eprefix,
636+
'LAMMPS': parse_hook_lammps_remove_deps_for_CI_aarch64,
637637
}
638638

639639
POST_PREPARE_HOOKS = {
@@ -645,7 +645,6 @@ def inject_gpu_property(ec):
645645
'MetaBAT': pre_configure_hook_metabat_filtered_zlib_dep,
646646
'OpenBLAS': pre_configure_hook_openblas_optarch_generic,
647647
'WRF': pre_configure_hook_wrf_aarch64,
648-
'LAMMPS': pre_configure_hook_LAMMPS_aarch64,
649648
'at-spi2-core': pre_configure_hook_atspi2core_filter_ld_library_path,
650649
}
651650

0 commit comments

Comments
 (0)