37 lines
1.2 KiB
Nix
37 lines
1.2 KiB
Nix
# This override makes OpenGL just automagically work with VirtualGL
|
|
#
|
|
# Add a setup hook to the mesa_noglu package that automatically adds
|
|
# a libvglfaker.so dependency to executables that depend on libGL.so.
|
|
|
|
{ super, lib, buildEnv, makeSetupHook, file }:
|
|
|
|
let
|
|
autoVirtualGLHook =
|
|
let
|
|
mesa_noglu = super.mesa_noglu;
|
|
mesa_glu = super.mesa_glu.override { inherit mesa_noglu; };
|
|
mesa = buildEnv {
|
|
name = "mesa-${mesa_noglu.version}";
|
|
paths = [ mesa_noglu.dev mesa_noglu.out mesa_glu mesa_glu.dev ];
|
|
meta = {
|
|
platforms = lib.platforms.unix;
|
|
};
|
|
};
|
|
libGL = mesa_noglu;
|
|
libGLU = mesa_glu;
|
|
libGLU_combined = mesa;
|
|
virtualglLib = (super.virtualglLib.override { inherit libGLU_combined fltk; });
|
|
fltk = super.fltk.override { inherit libGLU_combined freeglut; };
|
|
freeglut = super.freeglut.override { inherit libGL libGLU; };
|
|
in
|
|
makeSetupHook {
|
|
deps = [ file virtualglLib ];
|
|
substitutions = { inherit virtualglLib; };
|
|
} ./auto-virtualgl.sh;
|
|
|
|
in {
|
|
mesa_noglu = super.mesa_noglu.overrideAttrs ( attrs: {
|
|
propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ autoVirtualGLHook ];
|
|
} );
|
|
}
|