spack/var/spack/repos/builtin/packages/sina/package.py
2025-01-02 15:40:28 +01:00

69 lines
2.6 KiB
Python

# Copyright Spack Project Developers. See COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import os
from spack.package import *
class Sina(CachedCMakePackage):
"""Sina C++ Library"""
homepage = "https://github.com/LLNL/Sina"
url = "https://github.com/LLNL/Sina/releases/download/v1.10.0/sina-cpp-1.10.0.tar.gz"
maintainers("estebanpauli", "HaluskaR", "murray55")
version("1.13.0", sha256="4087fc63ea054fd5d6cfcd2223d33edcb910df1fad5936301591e1a9aa4d6bac")
version("1.11.0", sha256="a080f6583101696a6354940f00646ef892e1b2f8fc3f1b1907ba1c3ade6d4b47")
version("1.10.0", sha256="b34379ce8cc5eca5a0f16893053fac75be14c2109d1beed4c6d48e11f9b281c7")
depends_on("cxx", type="build") # generated
depends_on("fortran", type="build") # generated
variant("docs", default=False, description="Allow generating documentation")
variant("adiak", default=False, description="Create interface for calling Sina through Adiak")
variant("test", default=False, description="Build tests")
depends_on("cmake@3.8.0:", type="build")
depends_on("adiak", when="+adiak")
depends_on("doxygen", type="build", when="+docs")
depends_on("conduit")
def cmake_args(self):
return [
self.define_from_variant("-DSINA_BUILD_ADIAK_BINDINGS", "adiak"),
self.define_from_variant("-DSINA_BUILD_TESTS", "test"),
self.define_from_variant("-DSINA_BUILD_DOCS", "docs"),
]
def initconfig_package_entries(self):
entries = ["#" + 78 * "-", "# Library Dependencies", "#" + 78 * "-"]
conduit_dir = self.spec["conduit"].prefix
entries.append(cmake_cache_path("Conduit_DIR", "%s/lib/cmake/conduit" % conduit_dir))
use_adiak = self.spec.satisfies("^adiak")
entries.append(cmake_cache_option("SINA_BUILD_ADIAK_BINDINGS", use_adiak))
if use_adiak:
adiak_dir = self.spec["adiak"].prefix
entries.append(cmake_cache_path("adiak_DIR", "%s/lib/cmake/adiak/" % adiak_dir))
entries.append("#" + 78 * "-")
entries.append("# Devtools")
entries.append("#" + 78 * "-")
build_tests = self.spec.satisfies("+test")
entries.append(cmake_cache_option("SINA_BUILD_TESTS", build_tests))
build_docs = self.spec.satisfies("+docs")
entries.append(cmake_cache_option("SINA_BUILD_DOCS", build_docs))
if build_docs:
doxygen_bin_dir = self.spec["doxygen"].prefix.bin
entries.append(
cmake_cache_path("DOXYGEN_EXECUTABLE", os.path.join(doxygen_bin_dir, "doxygen"))
)
return entries