From 8eacfa5fd3f6f1df9f9a562d8a516273495c71f0 Mon Sep 17 00:00:00 2001 From: Hans Pabst Date: Mon, 11 Aug 2025 13:05:34 +0200 Subject: [PATCH] LIBXSMM: support BUILD_SHARED_LIBS - Fixes BUILD_SHARED_LIBS with LIBXSMM linked statically to CP2K and DBCSR. - Note: Spack based builds rely on BUILD_SHARED_LIBS by default. --- cmake/modules/FindLibXSMM.cmake | 34 +++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/cmake/modules/FindLibXSMM.cmake b/cmake/modules/FindLibXSMM.cmake index db3f121bd6..60fe8c836d 100644 --- a/cmake/modules/FindLibXSMM.cmake +++ b/cmake/modules/FindLibXSMM.cmake @@ -15,12 +15,34 @@ set(CP2K_LIBXSMMF_ROOT "${CP2K_LIBXSMM_PREFIX}") set(CP2K_LIBXSMMNOBLAS_ROOT "${CP2K_LIBXSMM_PREFIX}") if(PKG_CONFIG_FOUND) - foreach(__lib libxsmm libxsmmf libxsmmext libxsmmnoblas) - string(TOUPPER "${__lib}" __lib_search_up) - pkg_check_modules(CP2K_${__lib_search_up} IMPORTED_TARGET GLOBAL ${__lib}) - # need to do it twice because of dbcsr build option - pkg_check_modules(${__lib_search_up} QUIET IMPORTED_TARGET GLOBAL ${__lib}) - endforeach() + if(BUILD_SHARED_LIBS) + foreach(__lib libxsmm libxsmmf libxsmmext libxsmmnoblas) + string(TOUPPER "${__lib}" __lib_search_up) + pkg_check_modules(CP2K_${__lib_search_up} IMPORTED_TARGET GLOBAL + ${__lib}-shared) + # need to do it twice because of dbcsr build option + pkg_check_modules(${__lib_search_up} QUIET IMPORTED_TARGET GLOBAL + ${__lib}-shared) + endforeach() + else() + foreach(__lib libxsmm libxsmmf libxsmmext libxsmmnoblas) + string(TOUPPER "${__lib}" __lib_search_up) + pkg_check_modules(CP2K_${__lib_search_up} IMPORTED_TARGET GLOBAL + ${__lib}-static) + # need to do it twice because of dbcsr build option + pkg_check_modules(${__lib_search_up} QUIET IMPORTED_TARGET GLOBAL + ${__lib}-static) + endforeach() + endif() + if(NOT CP2K_LIBXSMM_FOUND) + foreach(__lib libxsmm libxsmmf libxsmmext libxsmmnoblas) + string(TOUPPER "${__lib}" __lib_search_up) + pkg_check_modules(CP2K_${__lib_search_up} IMPORTED_TARGET GLOBAL ${__lib}) + # need to do it twice because of dbcsr build option + pkg_check_modules(${__lib_search_up} QUIET IMPORTED_TARGET GLOBAL + ${__lib}) + endforeach() + endif() endif() if(NOT CP2K_LIBXSMM_FOUND)