diff options
author | Frederik Rietdijk <fridh@fridh.nl> | 2019-06-09 12:28:52 +0200 |
---|---|---|
committer | Frederik Rietdijk <fridh@fridh.nl> | 2019-06-09 12:28:52 +0200 |
commit | d3afcac771d86e9e3c482a8564513ab1a72b87e5 (patch) | |
tree | f002f6e54b1d505c7d1ac4fadc648ce6e2bb3b81 /pkgs/development/libraries/mesa | |
parent | 480cd436fc077c60e86fccd68d5971dc831f5947 (diff) | |
parent | e596a33dc08b9b7d34aa62c0418218de7469ae7f (diff) | |
download | nixpkgs-d3afcac771d86e9e3c482a8564513ab1a72b87e5.tar nixpkgs-d3afcac771d86e9e3c482a8564513ab1a72b87e5.tar.gz nixpkgs-d3afcac771d86e9e3c482a8564513ab1a72b87e5.tar.bz2 nixpkgs-d3afcac771d86e9e3c482a8564513ab1a72b87e5.tar.lz nixpkgs-d3afcac771d86e9e3c482a8564513ab1a72b87e5.tar.xz nixpkgs-d3afcac771d86e9e3c482a8564513ab1a72b87e5.tar.zst nixpkgs-d3afcac771d86e9e3c482a8564513ab1a72b87e5.zip |
Merge master into staging-next
Diffstat (limited to 'pkgs/development/libraries/mesa')
-rw-r--r-- | pkgs/development/libraries/mesa/default.nix | 47 |
1 files changed, 42 insertions, 5 deletions
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix index e68e1b572ee..40a03707ea5 100644 --- a/pkgs/development/libraries/mesa/default.nix +++ b/pkgs/development/libraries/mesa/default.nix @@ -108,7 +108,7 @@ let self = stdenv.mkDerivation { "--enable-texture-float" (enableFeature stdenv.isLinux "dri3") (enableFeature stdenv.isLinux "nine") # Direct3D in Wine - "--enable-libglvnd" + (enableFeature stdenv.isLinux "libglvnd") "--enable-dri" "--enable-driglx-direct" "--enable-gles1" @@ -231,12 +231,51 @@ let self = stdenv.mkDerivation { inherit libdrm version; inherit (libglvnd) driverLink; + # Use stub libraries from libglvnd and headers from Mesa. stubs = stdenv.mkDerivation { name = "libGL-${libglvnd.version}"; outputs = [ "out" "dev" ]; - # Use stub libraries from libglvnd and headers from Mesa. - buildCommand = '' + # 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 @@ -261,8 +300,6 @@ let self = stdenv.mkDerivation { genPkgConfig egl EGL genPkgConfig glesv1_cm GLESv1_CM genPkgConfig glesv2 GLESv2 - '' + lib.optionalString stdenv.isDarwin '' - echo ${OpenGL} > $out/nix-support/propagated-build-inputs ''; }; }; |