parent
f9b7348283
commit
3c45b0c00a
@ -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 |
||||
''; |
||||
} |
Loading…
Reference in new issue