diff options
-rw-r--r-- | var/spack/repos/builtin/packages/cosma/fj-ssl2.patch | 104 | ||||
-rw-r--r-- | var/spack/repos/builtin/packages/cosma/package.py | 5 |
2 files changed, 108 insertions, 1 deletions
diff --git a/var/spack/repos/builtin/packages/cosma/fj-ssl2.patch b/var/spack/repos/builtin/packages/cosma/fj-ssl2.patch new file mode 100644 index 0000000000..3e09383d67 --- /dev/null +++ b/var/spack/repos/builtin/packages/cosma/fj-ssl2.patch @@ -0,0 +1,104 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 1fd1e55..41a041b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -19,7 +19,7 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS "YES") # always write compile_commands.json + + set(COSMA_GPU_BACKENDS_LIST "CUDA" "ROCM") + set(COSMA_SCALAPACK_LIST "OFF" "MKL" "CRAY_LIBSCI" "CUSTOM") +-set(COSMA_BLAS_LIST "auto" "MKL" "OPENBLAS" "CRAY_LIBSCI" "CUSTOM" "BLIS" "ATLAS" "CUDA" "ROCM" "OFF") ++set(COSMA_BLAS_LIST "auto" "MKL" "SSL2" "OPENBLAS" "CRAY_LIBSCI" "CUSTOM" "BLIS" "ATLAS" "CUDA" "ROCM" "OFF") + option(COSMA_WITH_TESTS "Generate the test target." ON) + option(COSMA_WITH_APPS "Generate the miniapp targets." ON) + option(COSMA_WITH_BENCHMARKS "Generate the benchmark targets." ON) +@@ -45,7 +45,7 @@ if (COSMA_BLAS MATCHES "CUDA|ROCM") + set(COSMA_GPU_BACKEND ${COSMA_BLAS}) + else() + if(COSMA_BLAS STREQUAL "OFF") +- message(FATAL_ERROR "A Blas implementation is needed when running on CPU only: choices are : auto, MKL, OPENBLAS, CRAY_LIBSCI, CUSTOM, BLIS, ATLAS, FLEXIBLAS, ARMPL, GenericBLAS") ++ message(FATAL_ERROR "A Blas implementation is needed when running on CPU only: choices are : auto, MKL, SSL2, OPENBLAS, CRAY_LIBSCI, CUSTOM, BLIS, ATLAS, FLEXIBLAS, ARMPL, GenericBLAS") + else() + set(COSMA_BLAS_VENDOR ${COSMA_BLAS}) + endif() +@@ -190,6 +190,7 @@ install(FILES "${cosma_BINARY_DIR}/cosmaConfig.cmake" + "${cosma_BINARY_DIR}/cosmaConfigVersion.cmake" + "${cosma_BINARY_DIR}/cosmaConfigVersion.cmake" + "${cosma_SOURCE_DIR}/cmake/FindMKL.cmake" ++ "${cosma_SOURCE_DIR}/cmake/FindSSL2.cmake" + "${cosma_SOURCE_DIR}/cmake/FindBlas.cmake" + "${cosma_SOURCE_DIR}/cmake/FindSCALAPACK.cmake" + "${cosma_SOURCE_DIR}/cmake/FindOPENBLAS.cmake" +diff --git a/cmake/FindBlas.cmake b/cmake/FindBlas.cmake +index aef956c..3c47561 100644 +--- a/cmake/FindBlas.cmake ++++ b/cmake/FindBlas.cmake +@@ -14,6 +14,7 @@ endif() + set(COSMA_BLAS_VENDOR_LIST + "auto" + "MKL" ++ "SSL2" + "OPENBLAS" + "FLEXIBLAS" + "ARMPL" +diff --git a/cmake/FindSSL2.cmake b/cmake/FindSSL2.cmake +new file mode 100644 +index 0000000..f0e11bf +--- /dev/null ++++ b/cmake/FindSSL2.cmake +@@ -0,0 +1,56 @@ ++#.rst: ++# FindSSL2 ++# ----------- ++# ++# This module tries to find the SSL2 library. ++# ++# The following variables are set ++# ++# :: ++# ++# SSL2_FOUND - True if ssl2 is found ++# SSL2_LIBRARIES - The required libraries ++# SSL2_INCLUDE_DIRS - The required include directory ++# ++# The following import target is created ++# ++# :: ++# ++# SSL2::ssl2 ++ ++#set paths to look for library from ROOT variables.If new policy is set, find_library() automatically uses them. ++# if(NOT POLICY CMP0074) ++set(_SSL2_PATHS ${SSL2_ROOT} ++ $ENV{SSL2_ROOT} ++ $ENV{SSL2ROOT} ++ $ENV{SSL2_DIR} ++ $ENV{SSL2DIR}) ++# endif() ++ ++find_library( ++ COSMA_SSL2_LINK_LIBRARIES ++ NAMES "fjlapackex" ++ HINTS ${_SSL2_PATHS} ++ PATH_SUFFIXES "lib64" ++) ++find_path( ++ COSMA_SSL2_INCLUDE_DIRS ++ NAMES "cblas.h" ++ HINTS ${_SSL2_PATHS} ++ PATH_SUFFIXES "include" ++) ++ ++# check if found ++include(FindPackageHandleStandardArgs) ++find_package_handle_standard_args(SSL2 REQUIRED_VARS COSMA_SSL2_INCLUDE_DIRS COSMA_SSL2_LINK_LIBRARIES) ++ ++# add target to link against ++if(NOT TARGET cosma::BLAS::SSL2::ssl2) ++ add_library(cosma::BLAS::SSL2::ssl2 INTERFACE IMPORTED) ++ add_library(cosma::BLAS::SSL2::blas ALIAS cosma::BLAS::SSL2::ssl2) ++endif() ++set_property(TARGET cosma::BLAS::SSL2::ssl2 PROPERTY INTERFACE_LINK_LIBRARIES ${COSMA_SSL2_LINK_LIBRARIES}) ++set_property(TARGET cosma::BLAS::SSL2::ssl2 PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${COSMA_SSL2_INCLUDE_DIRS}) ++ ++# prevent clutter in cache ++MARK_AS_ADVANCED(SSL2_FOUND SSL2_LIBRARIES SSL2_INCLUDE_DIRS) diff --git a/var/spack/repos/builtin/packages/cosma/package.py b/var/spack/repos/builtin/packages/cosma/package.py index e8110bbd87..77a9ba7b69 100644 --- a/var/spack/repos/builtin/packages/cosma/package.py +++ b/var/spack/repos/builtin/packages/cosma/package.py @@ -25,7 +25,7 @@ class Cosma(CMakePackage): version("2.6.6", sha256="1604be101e77192fbcc5551236bc87888d336e402f5409bbdd9dea900401cc37") version("2.6.5", sha256="10d9b7ecc1ce44ec5b9e0c0bf89278a63029912ec3ea99661be8576b553ececf") version("2.6.4", sha256="6d7bd5e3005874af9542a329c93e7ccd29ca1a5573dae27618fac2704fa2b6ab") - version("2.6.3", sha256="8ca96ca41458f1e9d0da70d524c5a03c677dba7238d23a578f852163b6d45ac9") + version("2.6.3", sha256="c2a3735ea8f860930bea6706d968497d72a1be0498c689b5bc4a951ffc2d1146") version("2.6.2", sha256="2debb5123cc35aeebc5fd2f8a46cfd6356d1e27618c9bb57129ecd09aa400940") version("2.6.1", sha256="69aa6634a030674f0d9be61e7b0bf0dc17acf0fc9e7a90b40e3179e2254c8d67") version("2.5.1", sha256="085b7787597374244bbb1eb89bc69bf58c35f6c85be805e881e1c0b25166c3ce") @@ -78,6 +78,8 @@ class Cosma(CMakePackage): depends_on("semiprof", when="+profiling") depends_on("costa+profiling", when="+profiling") + patch("fj-ssl2.patch", when="^fujitsu-ssl2") + def setup_build_environment(self, env): if "+cuda" in self.spec: env.set("CUDA_PATH", self.spec["cuda"].prefix) @@ -91,6 +93,7 @@ class Cosma(CMakePackage): ("^cray-libsci", "CRAY_LIBSCI"), ("^netlib-lapack", "CUSTOM"), ("^openblas", "OPENBLAS"), + ("^fujitsu-ssl2", "SSL2"), ] if self.version >= Version("2.4.0"): |