diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/waffle/default.nix')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/waffle/default.nix | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/waffle/default.nix b/nixpkgs/pkgs/development/libraries/waffle/default.nix new file mode 100644 index 000000000000..dd783036f230 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/waffle/default.nix @@ -0,0 +1,67 @@ +{ stdenv +, fetchFromGitLab +, lib +, meson +, ninja +, libGL +, libglvnd ? null +, makeWrapper +, pkg-config +, 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"; + + src = fetchFromGitLab { + domain = "gitlab.freedesktop.org"; + owner = "mesa"; + repo = "waffle"; + rev = "v${version}"; + sha256 = "0s8gislmhccfa04zsj1yqk97lscbbnmxirr2zm4q3p8ybmpfhpqr"; + }; + + buildInputs = [ + libGL + ] ++ lib.optionals (with stdenv.hostPlatform; isUnix && !isDarwin) [ + libglvnd + ] ++ lib.optionals x11Support [ + libX11 + libxcb + ] ++ lib.optionals waylandSupport [ + wayland + ] ++ lib.optionals useGbm [ + mesa + libudev + ]; + + nativeBuildInputs = [ + meson + ninja + makeWrapper + pkg-config + python3 + ]; + + postInstall = '' + wrapProgram $out/bin/wflinfo \ + --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libGL libglvnd ]} + ''; + + meta = with lib; { + description = "A cross-platform C library that allows one to defer selection of an OpenGL API and window system until runtime"; + homepage = "http://www.waffle-gl.org/"; + license = licenses.bsd2; + platforms = platforms.mesaPlatforms; + maintainers = with maintainers; [ Flakebi ]; + }; +} |