dyhidrogen: update to use oneapi packages (#49303)

Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
This commit is contained in:
Massimiliano Culpo 2025-03-10 08:29:47 +01:00 committed by GitHub
parent 75e37c6db5
commit d6ac16ca16
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -8,33 +8,31 @@
# This is a hack to get around some deficiencies in Hydrogen. # This is a hack to get around some deficiencies in Hydrogen.
def get_blas_entries(inspec): def get_blas_entries(dyhidrogen_spec):
entries = [] entries = []
spec = inspec["hydrogen"] spec = dyhidrogen_spec["hydrogen"]
if spec.satisfies("blas=openblas"): if spec.satisfies("blas=openblas"):
entries.append(cmake_cache_option("DiHydrogen_USE_OpenBLAS", True)) entries.append(cmake_cache_option("DiHydrogen_USE_OpenBLAS", True))
elif "blas=mkl" in spec or spec.satisfies("^intel-mkl"): elif spec.satisfies("blas=mkl"):
entries.append(cmake_cache_option("DiHydrogen_USE_MKL", True)) entries.append(cmake_cache_option("DiHydrogen_USE_MKL", True))
elif "blas=essl" in spec or spec.satisfies("^essl"): elif spec.satisfies("blas=essl"):
entries.append(cmake_cache_string("BLA_VENDOR", "IBMESSL")) entries.append(cmake_cache_string("BLA_VENDOR", "IBMESSL"))
# IF IBM ESSL is used it needs help finding the proper LAPACK libraries # IF IBM ESSL is used it needs help finding the proper LAPACK libraries
entries.append( entries.append(
cmake_cache_string( cmake_cache_string(
"LAPACK_LIBRARIES", "LAPACK_LIBRARIES",
"%s;-llapack;-lblas" f"{';'.join(f'-l{lib}' for lib in spec['essl'].libs.names)};-llapack;-lblas",
% ";".join("-l{0}".format(lib) for lib in self.spec["essl"].libs.names),
) )
) )
entries.append( entries.append(
cmake_cache_string( cmake_cache_string(
"BLAS_LIBRARIES", "BLAS_LIBRARIES",
"%s;-lblas" f"{';'.join(f'-l{lib}' for lib in spec['essl'].libs.names)};-lblas",
% ";".join("-l{0}".format(lib) for lib in self.spec["essl"].libs.names),
) )
) )
elif spec.satisfies("blas=accelerate"): elif spec.satisfies("blas=accelerate"):
entries.append(cmake_cache_option("DiHydrogen_USE_ACCELERATE", True)) entries.append(cmake_cache_option("DiHydrogen_USE_ACCELERATE", True))
elif spec.satisfies("^netlib-lapack"): elif spec.satisfies("^[virtuals=blas,lapack] netlib-lapack"):
entries.append(cmake_cache_string("BLA_VENDOR", "Generic")) entries.append(cmake_cache_string("BLA_VENDOR", "Generic"))
return entries return entries