diff options
author | Nikolay Amiantov <ab@fmap.me> | 2018-03-17 18:47:55 +0300 |
---|---|---|
committer | Nikolay Amiantov <ab@fmap.me> | 2018-03-26 14:01:49 +0300 |
commit | 6bf1421f13d667c2997b67728cf777c6a70716a5 (patch) | |
tree | a8ad2d39efc437215fe958df70326ae263f98798 /pkgs/development/libraries/mesa | |
parent | 803e87aa1e5bd071713276fd13e55854f7e5e385 (diff) | |
download | nixpkgs-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.nix | 36 |
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 |