1{ stdenv
2, lib
3, gitUpdater
4, fetchFromGitHub
5, testers
6, cmake
7, pkg-config
8, boost
9, gtest
10, wayland
11, wayland-scanner
12}:
13
14stdenv.mkDerivation (finalAttrs: {
15 pname = "wlcs";
16 version = "1.7.0";
17
18 src = fetchFromGitHub {
19 owner = "MirServer";
20 repo = "wlcs";
21 rev = "v${finalAttrs.version}";
22 hash = "sha256-BQPRymkbGu4YvTYXTaTMuyP5fHpqMWI4xPwjDRHZNEQ=";
23 };
24
25 strictDeps = true;
26
27 nativeBuildInputs = [
28 cmake
29 pkg-config
30 wayland-scanner
31 ];
32
33 buildInputs = [
34 boost
35 gtest
36 wayland
37 ];
38
39 passthru = {
40 tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
41 updateScript = gitUpdater {
42 rev-prefix = "v";
43 };
44 };
45
46 meta = with lib; {
47 description = "Wayland Conformance Test Suite";
48 longDescription = ''
49 wlcs aspires to be a protocol-conformance-verifying test suite usable by Wayland
50 compositor implementors.
51
52 It is growing out of porting the existing Weston test suite to be run in Mir's
53 test suite, but it is designed to be usable by any compositor.
54
55 wlcs relies on compositors providing an integration module, providing wlcs with
56 API hooks to start a compositor, connect a client, move a window, and so on.
57 This makes both writing and debugging tests easier - the tests are (generally)
58 in the same address space as the compositor, so there is a consistent global
59 clock available, it's easier to poke around in compositor internals, and
60 standard debugging tools can follow control flow from the test client to the
61 compositor and back again.
62 '';
63 homepage = "https://github.com/MirServer/wlcs";
64 changelog = "https://github.com/MirServer/wlcs/releases/tag/v${finalAttrs.version}";
65 license = licenses.gpl3Only;
66 maintainers = with maintainers; [ OPNA2608 ];
67 platforms = platforms.linux;
68 pkgConfigModules = [
69 "wlcs"
70 ];
71 };
72})