aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/rosa/wayland.go
blob: 5b33214baf8805d0b3731d7adf7c1217a196590d (plain)
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
package rosa

import "hakurei.app/internal/pkg"

func (t Toolchain) newWayland() (pkg.Artifact, string) {
	const (
		version  = "1.25.0"
		checksum = "q-4dYXme46JPgLGtXAxyZGTy7udll9RfT0VXtcW2YRR1WWViUhvdZXZneXzLqpCg"
	)
	return t.NewPackage("wayland", version, newFromGitLab(
		"gitlab.freedesktop.org",
		"wayland/wayland",
		version,
		checksum,
	), &PackageAttr{
		Writable: true,
		ScriptEarly: `
cd /usr/src/wayland
chmod +w tests tests/sanity-test.c
echo 'int main(){}' > tests/sanity-test.c
`,
	}, &MesonHelper{
		Setup: []KV{
			{"Ddefault_library", "both"},
			{"Ddocumentation", "false"},
			{"Dtests", "true"},
		},
	},
		Gawk,
		Diffutils,

		Libffi,
		Libexpat,
		Libxml2,
	), version
}
func init() {
	native.mustRegister(Toolchain.newWayland, &Metadata{
		Name:        "wayland",
		Description: "core Wayland window system code and protocol",
		Website:     "https://wayland.freedesktop.org/",

		Dependencies: P{
			Libffi,
			Libexpat,
			Libxml2,
		},

		ID: 10061,
	})
}

func (t Toolchain) newWaylandProtocols() (pkg.Artifact, string) {
	const (
		version  = "1.48"
		checksum = "xvfHCBIzXGwOqOu9b8dfhGw_U29Pd-g4JBwpYIaxee8SwEbxi6NaVU-Y1Q7wY4jK"
	)
	return t.NewPackage("wayland-protocols", version, newFromGitLab(
		"gitlab.freedesktop.org",
		"wayland/wayland-protocols",
		version,
		checksum,
	), &PackageAttr{
		Patches: []KV{
			{"build-only", `From 8b4c76275fa1b6e0a99a53494151d9a2c907144d Mon Sep 17 00:00:00 2001
From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
Date: Fri, 8 Nov 2024 11:27:25 -0600
Subject: [PATCH] tests: Make build-only tests actually build-only

The goal behind the pedantic compiler tests are to ensure that the code
that wayland-scanner is generating can be compiled in pedantic mode by
the system C compiler.

Trying to execute the built tests may fail because of undefined symbols.
This affects certain platforms more than others; Linux/musl and Darwin
are examples of platforms that cannot execute binaries with undefined
symbols.  This meant tests needlessly failed on these platforms.

Signed-off-by: A. Wilcox <AWilcox@Wilcox-Tech.com>
Closes: #48, #228
---
 tests/meson.build | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/tests/meson.build b/tests/meson.build
index aa216ec2..5a93bb36 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -1,4 +1,5 @@
 prog_scan_sh = find_program('scan.sh')
+prog_true = find_program('true')
 
 libwayland = [
 	dependency('wayland-client'),
@@ -100,7 +101,7 @@ foreach protocol_file : protocol_files
 			test_source,
 			client_header,
 			server_header,
-			code
+			code,
 		],
 		link_args: extra_linker_flags,
 		dependencies: libwayland,
@@ -111,7 +112,7 @@ foreach protocol_file : protocol_files
 			'-Werror' ],
 		install: false,
 	)
-	test(test_name, pedantic_test_executable)
+	test(test_name, prog_true, depends : [pedantic_test_executable])
 
 	# Check that the header
 	if not protocol_file.contains('xdg-foreign-unstable-v1')
-- 
GitLab
`},
		},
	}, (*MesonHelper)(nil),
		Wayland,
	), version
}
func init() {
	native.mustRegister(Toolchain.newWaylandProtocols, &Metadata{
		Name:        "wayland-protocols",
		Description: "Additional standard Wayland protocols",
		Website:     "https://wayland.freedesktop.org/",

		ID: 13997,
	})
}