summary refs log tree commit diff
path: root/pkgs/development/libraries/mesa
diff options
context:
space:
mode:
authorNikolay Amiantov <ab@fmap.me>2018-03-17 18:47:55 +0300
committerNikolay Amiantov <ab@fmap.me>2018-03-26 14:01:49 +0300
commit6bf1421f13d667c2997b67728cf777c6a70716a5 (patch)
treea8ad2d39efc437215fe958df70326ae263f98798 /pkgs/development/libraries/mesa
parent803e87aa1e5bd071713276fd13e55854f7e5e385 (diff)
downloadnixpkgs-6bf1421f13d667c2997b67728cf777c6a70716a5.tar
nixpkgs-6bf1421f13d667c2997b67728cf777c6a70716a5.tar.gz
nixpkgs-6bf1421f13d667c2997b67728cf777c6a70716a5.tar.bz2
nixpkgs-6bf1421f13d667c2997b67728cf777c6a70716a5.tar.lz
nixpkgs-6bf1421f13d667c2997b67728cf777c6a70716a5.tar.xz
nixpkgs-6bf1421f13d667c2997b67728cf777c6a70716a5.tar.zst
nixpkgs-6bf1421f13d667c2997b67728cf777c6a70716a5.zip
treewide: refactor to use libglvnd
* Implement libGL as a symlink package which uses libraries from libglvnd and
  headers from Mesa (since ones from libglvnd are outdated).
* Use libGL_driver.driverLink treewide; add FHS paths where possible.
Diffstat (limited to 'pkgs/development/libraries/mesa')
-rw-r--r--pkgs/development/libraries/mesa/default.nix36
1 files changed, 34 insertions, 2 deletions
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix
index 7aadc491bf8..07c966cbbfc 100644
--- a/pkgs/development/libraries/mesa/default.nix
+++ b/pkgs/development/libraries/mesa/default.nix
@@ -71,7 +71,7 @@ let
   branch  = head (splitString "." version);
 in
 
-stdenv.mkDerivation {
+let self = stdenv.mkDerivation {
   name = "mesa-noglu-${version}";
 
   src =  fetchurl {
@@ -227,6 +227,37 @@ stdenv.mkDerivation {
   passthru = {
     inherit libdrm version;
     inherit (libglvnd) driverLink;
+
+    stubs = stdenv.mkDerivation {
+      name = "libGL-${libglvnd.version}";
+      outputs = [ "out" "dev" ];
+
+      # Use stub libraries from libglvnd and headers from Mesa.
+      buildCommand = ''
+        ln -s ${libglvnd.out} $out
+        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; {
@@ -236,4 +267,5 @@ stdenv.mkDerivation {
     platforms = platforms.linux;
     maintainers = with maintainers; [ eduarrrd vcunat ];
   };
-}
+};
+in self