summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--var/spack/repos/builtin/packages/cosma/fj-ssl2.patch104
-rw-r--r--var/spack/repos/builtin/packages/cosma/package.py5
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"):