summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/scitokens-cpp/package.py
blob: c52e8500981f4038bc891041c195e605f8a8f32c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)

from spack.package import *


class ScitokensCpp(CMakePackage):
    """A C++ implementation of the SciTokens library with a C library interface.
    SciTokens provide a token format for distributed authorization."""

    homepage = "https://github.com/scitokens/scitokens-cpp"
    url = "https://github.com/scitokens/scitokens-cpp/archive/refs/tags/v0.7.0.tar.gz"

    maintainers("gartung", "greenc-FNAL", "marcmengel", "vitodb")

    license("Apache-2.0")

    version("1.0.1", sha256="d4660521fa17189e7a7858747d066052dd8ea8f430ce7649911c157d4423c412")
    version("1.0.0", sha256="88376c5cd065aac8d92445184a02ccf5186dc4890ccd7518e88be436978675c0")
    version("0.7.3", sha256="7d3c438596588cd74cf1af8255c55f44ca86a34293b81415ee24b33de64f886a")
    version("0.7.2", sha256="594eee5f80463cd501e9b4c17b6ea6dcae47a42ef4947406ce8b157e15d50d5b")
    version("0.7.1", sha256="44a1bca188897b1e97645149d1f6bc187cd0e482ad36159ca376834f028ce5ef")
    version("0.7.0", sha256="72600cf32523b115ec7abf4ac33fa369e0a655b3d3b390e1f68363e6c4e961b6")

    variant(
        "cxxstd",
        default="11",
        values=("11", "14", "17", "20"),
        multi=False,
        description="Use the specified C++ standard when building",
    )

    depends_on("cmake@2.6:")
    depends_on("cmake@3.10:", when="@0.7.1:")
    depends_on("openssl")
    depends_on("sqlite")
    depends_on("curl")
    depends_on("jwt-cpp", type="build")
    depends_on("pkgconfig", type="build")
    depends_on("uuid", type="build")

    conflicts("^jwt-cpp@0.5:", when="@:0.7")

    # https://github.com/scitokens/scitokens-cpp/issues/72
    @when("@0.7.0 ^openssl@3:")
    def patch(self):
        filter_file(" -Werror", "", "CMakeLists.txt")

    def cmake_args(self):
        define = self.define
        define_from_variant = self.define_from_variant
        args = [
            define_from_variant("CMAKE_CXX_STANDARD", "cxxstd"),
            define("CMAKE_CXX_STANDARD_REQUIRED", True),
        ]
        return args

    def setup_build_environment(self, env):
        env.set("JWC_CPP_DIR", self.spec["jwt-cpp"].prefix)