linux_xanmod: 5.11.14 -> 5.11.15
[NixPkgs.git] / pkgs / development / libraries / waffle / default.nix
blobdd783036f23070768a46eb4d298d838a3bed2df9
1 { stdenv
2 , fetchFromGitLab
3 , lib
4 , meson
5 , ninja
6 , libGL
7 , libglvnd ? null
8 , makeWrapper
9 , pkg-config
10 , python3
11 , x11Support ? true, libxcb ? null, libX11 ? null
12 , waylandSupport ? true, wayland ? null
13 , useGbm ? true, mesa ? null, libudev ? null
16 assert x11Support -> (libxcb != null && libX11 != null);
17 assert waylandSupport -> wayland != null;
18 assert useGbm -> (mesa != null && libudev != null);
19 assert with stdenv.hostPlatform; isUnix && !isDarwin -> libglvnd != null;
21 stdenv.mkDerivation rec {
22   pname = "waffle";
23   version = "1.6.1";
25   src = fetchFromGitLab {
26     domain = "gitlab.freedesktop.org";
27     owner = "mesa";
28     repo = "waffle";
29     rev = "v${version}";
30     sha256 = "0s8gislmhccfa04zsj1yqk97lscbbnmxirr2zm4q3p8ybmpfhpqr";
31   };
33   buildInputs = [
34     libGL
35   ] ++ lib.optionals (with stdenv.hostPlatform; isUnix && !isDarwin) [
36     libglvnd
37   ] ++ lib.optionals x11Support [
38     libX11
39     libxcb
40   ] ++ lib.optionals waylandSupport [
41     wayland
42   ] ++ lib.optionals useGbm [
43     mesa
44     libudev
45   ];
47   nativeBuildInputs = [
48     meson
49     ninja
50     makeWrapper
51     pkg-config
52     python3
53   ];
55   postInstall = ''
56     wrapProgram $out/bin/wflinfo \
57       --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libGL libglvnd ]}
58   '';
60   meta = with lib; {
61     description = "A cross-platform C library that allows one to defer selection of an OpenGL API and window system until runtime";
62     homepage = "http://www.waffle-gl.org/";
63     license = licenses.bsd2;
64     platforms = platforms.mesaPlatforms;
65     maintainers = with maintainers; [ Flakebi ];
66   };