summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/wayland/package.py
blob: baee2fcc8174338377beef031c257a4190ffe1d3 (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
62
63
64
65
66
67
68
69
70
71
72
73
74
# Copyright 2013-2023 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 Wayland(MesonPackage, AutotoolsPackage):
    """Wayland is a project to define a protocol for a compositor to talk
    to its clients as well as a library implementation of the protocol.
    The compositor can be a standalone display server running on Linux
    kernel modesetting and evdev input devices, an X application, or a
    wayland client itself.  The clients can be traditional applications,
    X servers(rootless or fullscreen) or other display servers."""

    homepage = "https://wayland.freedesktop.org/"
    url = "https://gitlab.freedesktop.org/wayland/wayland/-/archive/1.18.0/wayland-1.18.0.tar.gz"
    list_url = "https://gitlab.freedesktop.org/wayland/wayland/-/tags"
    git = "https://gitlab.freedesktop.org/wayland/wayland/"

    maintainers("wdconinc")

    build_system(
        conditional("autotools", when="@:1.19"),
        conditional("meson", when="@1.18:"),
        default="meson",
    )

    variant("doc", default=False, description="Build documentation")

    version("1.22.0", sha256="bbca9c906a8fb8992409ebf51812f19e2a784b2c169d4b784cdd753b4bb448ef")
    version("1.21.0", sha256="53b7fa67142e653820030ec049971bcb5e84ac99e05cba5bcb9cb55f43fae4b3")
    version("1.20.0", sha256="20523cd6f2c18c3c86725467157c6221e19de76fbfad944042a2d494af3c7a92")
    version("1.19.0", sha256="4e3b889468b9a4c2d16fc6489e28d000641e67c45dc97c4f6d9ecd3e261c895f")
    version("1.18.0", sha256="8d375719ebfa36b6f2968096fdf0bfa7d39ba110b7956c0032e395e7e012f332")
    version("1.17.93", sha256="293536ad23bfed15fc34e2a63bbb511167e8b096c0eba35e805cb64d46ad62ae")
    version("1.17.92", sha256="d944a7b999cfe6fee5327a2315c8e5891222c5a88a96e1ca73485978e4990512")

    with when("build_system=autotools"):
        depends_on("autoconf", type="build")
        depends_on("automake", type="build")
        depends_on("libtool", type="build")
        depends_on("m4", type="build")

    with when("build_system=meson"):
        depends_on("meson@0.56.0:", type="build")

    depends_on("pkgconfig", type="build")
    depends_on("libxml2")
    depends_on("chrpath")
    depends_on("expat")
    depends_on("libffi")

    with when("+doc"):
        depends_on("docbook-xsl", type="build")
        depends_on("doxygen", type="build")
        depends_on("xmlto", type="build")
        depends_on("libxslt", type="build")
        depends_on("graphviz+libgd", type="build")

    @when("build_system=autotools")
    def configure_args(self):
        args = []
        args.extend(self.enable_or_disable("documentation", variant="doc"))
        return args

    @when("build_system=meson")
    def meson_args(self):
        spec = self.spec
        opt_bool = lambda c, o: "-D%s=%s" % (o, str(c).lower())
        args = []
        args.append(opt_bool("+doc" in spec, "documentation"))
        return args