Files
ccpkgs/pkgs/opengl/default.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 ];
} );
}