about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/development/libraries/waffle/default.nix54
-rw-r--r--pkgs/tools/graphics/piglit/default.nix77
-rw-r--r--pkgs/top-level/all-packages.nix4
3 files changed, 135 insertions, 0 deletions
diff --git a/pkgs/development/libraries/waffle/default.nix b/pkgs/development/libraries/waffle/default.nix
new file mode 100644
index 0000000000000..66a1b7ab1450a
--- /dev/null
+++ b/pkgs/development/libraries/waffle/default.nix
@@ -0,0 +1,54 @@
+{ stdenv
+, fetchFromGitLab
+, lib
+, cmake
+, libGL
+, libglvnd
+, makeWrapper
+, pkg-config
+, wayland
+, libxcb
+, libX11
+}:
+
+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
+    libglvnd
+    libX11
+    libxcb
+    wayland
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    makeWrapper
+    pkg-config
+  ];
+
+  cmakeFlags = [ "-Dplatforms=x11,wayland" ];
+
+  postInstall = ''
+    wrapProgram $out/bin/wflinfo \
+      --prefix LD_LIBRARY_PATH : ${stdenv.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 ];
+  };
+}
diff --git a/pkgs/tools/graphics/piglit/default.nix b/pkgs/tools/graphics/piglit/default.nix
new file mode 100644
index 0000000000000..e2c2b6e6e9724
--- /dev/null
+++ b/pkgs/tools/graphics/piglit/default.nix
@@ -0,0 +1,77 @@
+{ stdenv
+, fetchFromGitLab
+, lib
+, cmake
+, freeglut
+, libGL
+, libGLU
+, libglvnd
+, makeWrapper
+, ninja
+, pkg-config
+, python3
+, waffle
+, wayland
+, libX11
+, libXrender
+, libxcb
+, libxkbcommon
+}:
+
+stdenv.mkDerivation rec {
+  pname = "piglit";
+  version = "unstable-2020-10-23";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.freedesktop.org";
+    owner = "mesa";
+    repo = "piglit";
+    rev = "59e695c16fdcdd4ea4f16365f0e397a93cef7b80";
+    sha256 = "kx0+2Sdvdc3SbpAIl2OuGCWCpaLJC/7cXG+ZLvf92g8=";
+  };
+
+  buildInputs = [
+    freeglut
+    libGL
+    libGLU
+    libglvnd
+    libX11
+    libXrender
+    libxcb
+    libxkbcommon
+    (python3.withPackages (ps: with ps; [
+      Mako
+      numpy
+    ]))
+    waffle
+    wayland
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    makeWrapper
+    ninja
+    pkg-config
+  ];
+
+  # Find data dir: piglit searches for the data directory in some places, however as it is wrapped,
+  # it search in ../lib/.piglit-wrapped, we just replace the script name with "piglit" again.
+  prePatch = ''
+    substituteInPlace piglit \
+      --replace 'script_basename_noext = os.path.splitext(os.path.basename(__file__))[0]' 'script_basename_noext = "piglit"'
+  '';
+
+  postInstall = ''
+    wrapProgram $out/bin/piglit \
+      --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ libGL libglvnd ]} \
+      --prefix PATH : "${waffle}/bin"
+  '';
+
+  meta = with lib; {
+    description = "An OpenGL test suite, and test-suite runner";
+    homepage = "https://gitlab.freedesktop.org/mesa/piglit";
+    license = licenses.free; # custom license. See COPYING in the source repo.
+    platforms = platforms.mesaPlatforms;
+    maintainers = with maintainers; [ Flakebi ];
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 3d15b75f2ed74..e229b8b8e6d4f 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -2471,6 +2471,8 @@ in
 
   photon = callPackage ../tools/networking/photon { };
 
+  piglit = callPackage ../tools/graphics/piglit { };
+
   playerctl = callPackage ../tools/audio/playerctl { };
 
   ps_mem = callPackage ../tools/system/ps_mem { };
@@ -16072,6 +16074,8 @@ in
     stdenv = gcc6Stdenv; # upstream code incompatible with gcc7
   };
 
+  waffle = callPackage ../development/libraries/waffle { };
+
   wally-cli = callPackage ../development/tools/wally-cli { };
 
   wavpack = callPackage ../development/libraries/wavpack { };