apfel: add v3.1.1 (now CMakePackage) (#45661)

Co-authored-by: wdconinc <wdconinc@users.noreply.github.com>
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
This commit is contained in:
Wouter Deconinck 2024-08-19 03:45:49 -05:00 committed by GitHub
parent c71d778875
commit c65fd7e12d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -3,10 +3,11 @@
# #
# SPDX-License-Identifier: (Apache-2.0 OR MIT) # SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.build_systems import autotools, cmake
from spack.package import * from spack.package import *
class Apfel(AutotoolsPackage): class Apfel(AutotoolsPackage, CMakePackage):
"""APFEL is a library able to perform DGLAP evolution up to NNLO in QCD and """APFEL is a library able to perform DGLAP evolution up to NNLO in QCD and
to NLO in QED, both with pole and MSbar masses. The coupled DGLAP to NLO in QED, both with pole and MSbar masses. The coupled DGLAP
QCD+QED evolution equations are solved in x-space by means of higher QCD+QED evolution equations are solved in x-space by means of higher
@ -19,25 +20,44 @@ class Apfel(AutotoolsPackage):
license("GPL-3.0-or-later") license("GPL-3.0-or-later")
build_system(
conditional("autotools", when="@:3.0"), conditional("cmake", when="@3.1:"), default="cmake"
)
version("3.1.1", sha256="9006b2a9544e504e8f6b5047f665054151870c3c3a4a05db3d4fb46f21908d4b")
version("3.0.6", sha256="7063c9eee457e030b97926ac166cdaedd84625b31397e1dfd01ae47371fb9f61") version("3.0.6", sha256="7063c9eee457e030b97926ac166cdaedd84625b31397e1dfd01ae47371fb9f61")
version("3.0.4", sha256="c7bfae7fe2dc0185981850f2fe6ae4842749339d064c25bf525b4ef412bbb224") version("3.0.4", sha256="c7bfae7fe2dc0185981850f2fe6ae4842749339d064c25bf525b4ef412bbb224")
depends_on("cxx", type="build") # generated depends_on("cxx", type="build")
depends_on("fortran", type="build") # generated depends_on("fortran", type="build")
with when("build_system=cmake"):
depends_on("cmake@03.15:")
extends("python", when="+python")
depends_on("swig", when="+python") depends_on("swig", when="+python")
depends_on("python", type=("build", "run")) depends_on("python", when="+python", type=("build", "run"))
depends_on("lhapdf", when="+lhapdf", type=("build", "run")) depends_on("lhapdf", when="+lhapdf", type=("build", "run"))
variant("python", description="Build python wrapper", default=False) variant("python", description="Build python wrapper", default=False)
variant("lhapdf", description="Link to LHAPDF", default=False) variant("lhapdf", description="Link to LHAPDF", default=False)
class CMakeBuilder(cmake.CMakeBuilder):
def cmake_args(self):
args = [
self.define_from_variant("APFEL_ENABLE_PYTHON", "python"),
self.define_from_variant("APFEL_ENABLE_LHAPDF", "lhapdf"),
]
# ensure installation of python module under CMAKE_INSTALL_PREFIX
if self.spec.satisfies("+python"):
args.append(self.define("APFEL_Python_SITEARCH", "autoprefix"))
return args
class AutotoolsBuilder(autotools.AutotoolsBuilder):
def configure_args(self): def configure_args(self):
args = [] args = []
if self.spec.satisfies("~python"): args += self.enable_or_disable("pywrap", variant="python")
args.append("--disable-pywrap")
else:
args.append("--enable-pywrap")
args += self.enable_or_disable("lhapdf") args += self.enable_or_disable("lhapdf")
return args return args