diff options
author | Alyssa Ross <hi@alyssa.is> | 2019-08-14 00:02:54 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2019-08-14 00:02:54 +0000 |
commit | f9abd30e11337cf07034f2cc8ad1691aa4a69386 (patch) | |
tree | c3b5c34b1c533f5c231dc6707e96795fb3a9a138 /nixpkgs/pkgs/development/libraries/mesa/stubs.nix | |
parent | 44e04ea2730f8e3b863b81b0056babe233c244f6 (diff) | |
parent | 1036dc664169b32613ec11b58cc1740c7511a340 (diff) | |
download | nixlib-f9abd30e11337cf07034f2cc8ad1691aa4a69386.tar nixlib-f9abd30e11337cf07034f2cc8ad1691aa4a69386.tar.gz nixlib-f9abd30e11337cf07034f2cc8ad1691aa4a69386.tar.bz2 nixlib-f9abd30e11337cf07034f2cc8ad1691aa4a69386.tar.lz nixlib-f9abd30e11337cf07034f2cc8ad1691aa4a69386.tar.xz nixlib-f9abd30e11337cf07034f2cc8ad1691aa4a69386.tar.zst nixlib-f9abd30e11337cf07034f2cc8ad1691aa4a69386.zip |
Merge commit '1036dc664169b32613ec11b58cc1740c7511a340'
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/mesa/stubs.nix')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/mesa/stubs.nix | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/mesa/stubs.nix b/nixpkgs/pkgs/development/libraries/mesa/stubs.nix new file mode 100644 index 000000000000..5cb6ac3d4d13 --- /dev/null +++ b/nixpkgs/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 + ''; +} |