summary refs log tree commit diff
path: root/pkgs/development/libraries/waffle
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2020-12-22 15:01:27 -0800
committerDylan Baker <dylan@pnwbakers.com>2020-12-22 15:33:27 -0800
commit807c0b0df59b597ed3682a06be00eb058b03bdb2 (patch)
tree966843c54bb6577ed0dcbfd1375a896e9254e19a /pkgs/development/libraries/waffle
parentfd4e4bd8bee303ac4756f806ec910f426fd5c447 (diff)
downloadnixpkgs-807c0b0df59b597ed3682a06be00eb058b03bdb2.tar
nixpkgs-807c0b0df59b597ed3682a06be00eb058b03bdb2.tar.gz
nixpkgs-807c0b0df59b597ed3682a06be00eb058b03bdb2.tar.bz2
nixpkgs-807c0b0df59b597ed3682a06be00eb058b03bdb2.tar.lz
nixpkgs-807c0b0df59b597ed3682a06be00eb058b03bdb2.tar.xz
nixpkgs-807c0b0df59b597ed3682a06be00eb058b03bdb2.tar.zst
nixpkgs-807c0b0df59b597ed3682a06be00eb058b03bdb2.zip
waffle: Add support for non-linux platforms
Waffle works perfectly well on macOS and Windows. Because the meson
options do proper dependency checking already, we can just leave them
out. This has the additional benefit of allowing gbm, surfaceless_egl
and x11_egl supoort to be built on Linux, which are useful in
conjunction with the piglit test suite.
Diffstat (limited to 'pkgs/development/libraries/waffle')
-rw-r--r--pkgs/development/libraries/waffle/default.nix23
1 files changed, 15 insertions, 8 deletions
diff --git a/pkgs/development/libraries/waffle/default.nix b/pkgs/development/libraries/waffle/default.nix
index aa59bf6fb9e..0f1e36b3579 100644
--- a/pkgs/development/libraries/waffle/default.nix
+++ b/pkgs/development/libraries/waffle/default.nix
@@ -4,15 +4,20 @@
 , meson
 , ninja
 , libGL
-, libglvnd
+, libglvnd ? null
 , makeWrapper
 , pkg-config
-, wayland
-, libxcb
-, libX11
 , python3
+, x11Support ? true, libxcb ? null, libX11 ? null
+, waylandSupport ? true, wayland ? null
+, useGbm ? true, mesa ? null, libudev ? null
 }:
 
+assert x11Support -> (libxcb != null && libX11 != null);
+assert waylandSupport -> wayland != null;
+assert useGbm -> (mesa != null && libudev != null);
+assert with stdenv.hostPlatform; isUnix && !isDarwin -> libglvnd != null;
+
 stdenv.mkDerivation rec {
   pname = "waffle";
   version = "1.6.1";
@@ -27,10 +32,16 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     libGL
+  ] ++ stdenv.lib.optionals (with stdenv.hostPlatform; isUnix && !isDarwin) [
     libglvnd
+  ] ++ stdenv.lib.optionals x11Support [
     libX11
     libxcb
+  ] ++ stdenv.lib.optionals waylandSupport [
     wayland
+  ] ++ stdenv.lib.optionals useGbm [
+    mesa
+    libudev
   ];
 
   nativeBuildInputs = [
@@ -41,10 +52,6 @@ stdenv.mkDerivation rec {
     python3
   ];
 
-  mesonFlags = [
-    "-Dgbm=disabled"
-  ];
-
   postInstall = ''
     wrapProgram $out/bin/wflinfo \
       --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ libGL libglvnd ]}