diff --git a/.ci/spack_packages/c_lime/package.py b/.ci/spack_packages/c_lime/package.py new file mode 100644 index 000000000..cc55474bb --- /dev/null +++ b/.ci/spack_packages/c_lime/package.py @@ -0,0 +1,41 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems import cmake +from spack_repo.builtin.build_systems.cmake import CMakePackage, generator + +from spack.package import * + + +class CLime(CMakePackage): + """LIME (which can stand for Lattice QCD Interchange Message Encapsulation + or more generally, Large Internet Message Encapsulation) is a simple + packaging scheme for combining records containing ASCII and/or binary + data.""" + + homepage = "https://usqcd-software.github.io/c-lime/" + url = "https://github.com/usqcd-software/c-lime/archive/qio2-3-9.tar.gz" + git = "https://github.com/usqcd-software/c-lime.git" + + license("GPL-2.0-or-later") + + version( + "2-3-9", + sha256="7b9aeadd4dfec50e24da3e7e729f56abf95c9192612c41515fe27b2158773aac", + ) + version("master", branch="master") + + variant("pic", default=True, description="Enable position independent code") + variant("shared", default=True, description="Enable shared libraries") + + depends_on("c", type="build") # generated + + +class CMakeBuilder(cmake.CMakeBuilder): + def cmake_args(self): + args = [ + self.define_from_variant("BUILD_SHARED_LIBS", "shared"), + self.define_from_variant("CMAKE_POSITION_INDEPENDENT_CODE", "pic"), + ] + return args diff --git a/.ci/spack_packages/lemonio/package.py b/.ci/spack_packages/lemonio/package.py index a3e66f64e..f1c7709f4 100644 --- a/.ci/spack_packages/lemonio/package.py +++ b/.ci/spack_packages/lemonio/package.py @@ -8,22 +8,29 @@ from spack.package import * + class Lemonio(CMakePackage): """LEMON: Lightweight Parallel I/O library for Lattice QCD.""" homepage = "https://github.com/etmc/lemon" - git = "https://github.com/etmc/lemon.git" + git = "https://github.com/etmc/lemon.git" license("GPL-3.0-or-later") - version('master', branch='master') + version("master", branch="master") + + variant("pic", default=True, description="Enable position independent code") + variant("shared", default=False, description="Enable sahred libraries") depends_on("c", type="build") depends_on("cxx", type="build") depends_on("fortran", type="build") - depends_on('mpi') + depends_on("mpi") generator("ninja") def configure_args(self): - args = [] + args = [ + self.define_from_variant("CMAKE_POSITION_INDEPENDENT_CODE", "pic"), + self.define_from_variant("BUILD_SHARED_LIBS", "shared"), + ] return args diff --git a/.ci/spack_packages/tmlqcd/package.py b/.ci/spack_packages/tmlqcd/package.py index ac318ab36..d9f6036bf 100755 --- a/.ci/spack_packages/tmlqcd/package.py +++ b/.ci/spack_packages/tmlqcd/package.py @@ -76,7 +76,7 @@ class Tmlqcd(CMakePackage, CudaPackage, ROCmPackage): conflicts("+cuda +rocm", msg="CUDA and ROCm support are mutually exclusive") # hard dependencies - depends_on("c-lime") + depends_on("c-lime@master") depends_on("blas") depends_on("lapack") depends_on("pkgconfig", type="build") diff --git a/.ci/uenv-recipes/tmlqcd/daint-gh200/config.yaml b/.ci/uenv-recipes/tmlqcd/daint-gh200/config.yaml index 6a54a230d..29fdf2a39 100644 --- a/.ci/uenv-recipes/tmlqcd/daint-gh200/config.yaml +++ b/.ci/uenv-recipes/tmlqcd/daint-gh200/config.yaml @@ -5,7 +5,7 @@ spack: commit: releases/v1.1 packages: repo: https://github.com/spack/spack-packages.git - #commit: + commit: 60ca28b3565975d530f7c4645cc25670b7365de2 modules: true description: "tmLQCD dependencies for CSCS CI on GH200." version: 2 diff --git a/CMakeLists.txt b/CMakeLists.txt index c32101132..a4895774f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -248,7 +248,7 @@ if(TM_USE_LEMON) FetchContent_Declare( lemon GIT_REPOSITORY https://github.com/etmc/lemon - GIT_TAG 52cc2bf9cf9ac6f8f9566e9625dced3bccd40b43 + GIT_TAG e40cda10d18284795f840a04ecbb4d63007fee3d FIND_PACKAGE_ARGS NAMES lemon) FetchContent_MakeAvailable(lemon) endif()