summary refs log tree commit diff
path: root/pkgs/development/libraries/mesa
diff options
context:
space:
mode:
authorEdmund Wu <fangkazuto@gmail.com>2019-06-12 17:18:19 -0400
committerEdmund Wu <fangkazuto@gmail.com>2019-06-25 09:00:33 -0400
commit3c45b0c00a375c7b5b768cb5a6e6ddea2c88c67f (patch)
tree3c7964ef3dee12df55c1f7f5fe02f7e40dad75ea /pkgs/development/libraries/mesa
parentf9b7348283d2687e904698601a09cfead5d35967 (diff)
downloadnixpkgs-3c45b0c00a375c7b5b768cb5a6e6ddea2c88c67f.tar
nixpkgs-3c45b0c00a375c7b5b768cb5a6e6ddea2c88c67f.tar.gz
nixpkgs-3c45b0c00a375c7b5b768cb5a6e6ddea2c88c67f.tar.bz2
nixpkgs-3c45b0c00a375c7b5b768cb5a6e6ddea2c88c67f.tar.lz
nixpkgs-3c45b0c00a375c7b5b768cb5a6e6ddea2c88c67f.tar.xz
nixpkgs-3c45b0c00a375c7b5b768cb5a6e6ddea2c88c67f.tar.zst
nixpkgs-3c45b0c00a375c7b5b768cb5a6e6ddea2c88c67f.zip
mesa: extract stubs
Diffstat (limited to 'pkgs/development/libraries/mesa')
-rw-r--r--pkgs/development/libraries/mesa/default.nix83
-rw-r--r--pkgs/development/libraries/mesa/stubs.nix75
2 files changed, 81 insertions, 77 deletions
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix
index a35bdb5764b..2c9a22f709a 100644
--- a/pkgs/development/libraries/mesa/default.nix
+++ b/pkgs/development/libraries/mesa/default.nix
@@ -68,8 +68,9 @@ let
   branch  = head (splitString "." version);
 in
 
-let self = stdenv.mkDerivation {
-  name = "mesa-${version}";
+stdenv.mkDerivation rec {
+  pname = "mesa";
+  inherit version;
 
   src =  fetchurl {
     urls = [
@@ -228,80 +229,8 @@ let self = stdenv.mkDerivation {
   '';
 
   passthru = {
-    inherit libdrm version;
+    inherit libdrm;
     inherit (libglvnd) driverLink;
-
-    # Use stub libraries from libglvnd and headers from Mesa.
-    stubs = stdenv.mkDerivation {
-      name = "libGL-${libglvnd.version}";
-      outputs = [ "out" "dev" ];
-
-      # On macOS, libglvnd is not supported, so we just use what mesa
-      # build. We need to also include OpenGL.framework, and some
-      # extra tricks to go along with. We add mesa’s libGLX to support
-      # the X extensions to OpenGL.
-      buildCommand = if stdenv.hostPlatform.isDarwin then ''
-        mkdir -p $out/nix-support $dev
-        echo ${OpenGL} >> $out/nix-support/propagated-build-inputs
-        ln -s ${self.out}/lib $out/lib
-
-        mkdir -p $dev/lib/pkgconfig $dev/nix-support
-        echo "$out" > $dev/nix-support/propagated-build-inputs
-        ln -s ${self.dev}/include $dev/include
-
-        cat <<EOF >$dev/lib/pkgconfig/gl.pc
-      Name: gl
-      Description: gl library
-      Version: ${self.version}
-      Libs: -L${self.out}/lib -lGL
-      Cflags: -I${self.dev}/include
-      EOF
-
-        cat <<EOF >$dev/lib/pkgconfig/glesv1_cm.pc
-      Name: glesv1_cm
-      Description: glesv1_cm library
-      Version: ${self.version}
-      Libs: -L${self.out}/lib -lGLESv1_CM
-      Cflags: -I${self.dev}/include
-      EOF
-
-        cat <<EOF >$dev/lib/pkgconfig/glesv2.pc
-      Name: glesv2
-      Description: glesv2 library
-      Version: ${self.version}
-      Libs: -L${self.out}/lib -lGLESv2
-      Cflags: -I${self.dev}/include
-      EOF
-      ''
-
-      # Otherwise, setup gl stubs to use libglvnd.
-      else ''
-        mkdir -p $out/nix-support
-        ln -s ${libglvnd.out}/lib $out/lib
-
-        mkdir -p $dev/{,lib/pkgconfig,nix-support}
-        echo "$out" > $dev/nix-support/propagated-build-inputs
-        ln -s ${self.dev}/include $dev/include
-
-        genPkgConfig() {
-          local name="$1"
-          local lib="$2"
-
-          cat <<EOF >$dev/lib/pkgconfig/$name.pc
-        Name: $name
-        Description: $lib library
-        Version: ${self.version}
-        Libs: -L${libglvnd.out}/lib -l$lib
-        Cflags: -I${self.dev}/include
-        EOF
-        }
-
-        genPkgConfig gl GL
-        genPkgConfig egl EGL
-        genPkgConfig glesv1_cm GLESv1_CM
-        genPkgConfig glesv2 GLESv2
-      '';
-    };
   };
 
   meta = with stdenv.lib; {
@@ -311,5 +240,5 @@ let self = stdenv.mkDerivation {
     platforms = platforms.mesaPlatforms;
     maintainers = with maintainers; [ vcunat ];
   };
-};
-in self
+}
+
diff --git a/pkgs/development/libraries/mesa/stubs.nix b/pkgs/development/libraries/mesa/stubs.nix
new file mode 100644
index 00000000000..5cb6ac3d4d1
--- /dev/null
+++ b/pkgs/development/libraries/mesa/stubs.nix
@@ -0,0 +1,75 @@
+{ stdenv
+, libglvnd, mesa
+, OpenGL }:
+
+stdenv.mkDerivation {
+  inherit (libglvnd) version;
+  pname = "libGL";
+  outputs = [ "out" "dev" ];
+
+  # On macOS, libglvnd is not supported, so we just use what mesa
+  # build. We need to also include OpenGL.framework, and some
+  # extra tricks to go along with. We add mesa’s libGLX to support
+  # the X extensions to OpenGL.
+  buildCommand = if stdenv.hostPlatform.isDarwin then ''
+    mkdir -p $out/nix-support $dev
+    echo ${OpenGL} >> $out/nix-support/propagated-build-inputs
+    ln -s ${mesa.out}/lib $out/lib
+
+    mkdir -p $dev/lib/pkgconfig $dev/nix-support
+    echo "$out" > $dev/nix-support/propagated-build-inputs
+    ln -s ${mesa.dev}/include $dev/include
+
+    cat <<EOF >$dev/lib/pkgconfig/gl.pc
+  Name: gl
+  Description: gl library
+  Version: ${mesa.version}
+  Libs: -L${mesa.out}/lib -lGL
+  Cflags: -I${mesa.dev}/include
+  EOF
+
+    cat <<EOF >$dev/lib/pkgconfig/glesv1_cm.pc
+  Name: glesv1_cm
+  Description: glesv1_cm library
+  Version: ${mesa.version}
+  Libs: -L${mesa.out}/lib -lGLESv1_CM
+  Cflags: -I${mesa.dev}/include
+  EOF
+
+    cat <<EOF >$dev/lib/pkgconfig/glesv2.pc
+  Name: glesv2
+  Description: glesv2 library
+  Version: ${mesa.version}
+  Libs: -L${mesa.out}/lib -lGLESv2
+  Cflags: -I${mesa.dev}/include
+  EOF
+  ''
+
+  # Otherwise, setup gl stubs to use libglvnd.
+  else ''
+    mkdir -p $out/nix-support
+    ln -s ${libglvnd.out}/lib $out/lib
+
+    mkdir -p $dev/{,lib/pkgconfig,nix-support}
+    echo "$out" > $dev/nix-support/propagated-build-inputs
+    ln -s ${mesa.dev}/include $dev/include
+
+    genPkgConfig() {
+      local name="$1"
+      local lib="$2"
+
+      cat <<EOF >$dev/lib/pkgconfig/$name.pc
+    Name: $name
+    Description: $lib library
+    Version: ${mesa.version}
+    Libs: -L${libglvnd.out}/lib -l$lib
+    Cflags: -I${mesa.dev}/include
+    EOF
+    }
+
+    genPkgConfig gl GL
+    genPkgConfig egl EGL
+    genPkgConfig glesv1_cm GLESv1_CM
+    genPkgConfig glesv2 GLESv2
+  '';
+}