sigil/ports/mesa/default.nix

64 lines
1.6 KiB
Nix

{ preparePort, nixpkgs, upstream }:
let
version = "11.2.2";
upstreamMesaDir = "${upstream.src}/repos/libports/src/lib/mesa";
in
preparePort {
name = "mesa-${version}";
outputs = [ "source" "dev" ];
depsBuildBuild = with nixpkgs.buildPackages; [ bison flex python ];
src = nixpkgs.fetchurl {
url = "https://mesa.freedesktop.org/archive/older-versions/11.x/${version}/mesa-${version}.tar.gz";
sha256 = "e2453014cd2cc5337a5180cdeffe8cf24fffbb83e20a96888e2b01df868eaae6";
};
tarFlags = "--files-from ${upstreamMesaDir}/files.list";
patches = "${upstreamMesaDir}/patches/*.patch";
patchFlags = "-p4";
installPhase =
''
mkdir -p $pkgconfigdir
pushd src/compiler/glsl
bison -o glsl_parser.cpp -p "_mesa_glsl_" \
--defines=glsl_parser.h glsl_parser.yy
flex -o glsl_lexer.cpp glsl_lexer.ll
pushd glcpp
bison -o sglcpp-parse.c \
-p "glcpp_parser_" --defines=glcpp-parse.h \
glcpp-parse.y
flex -o glcpp-lex.c glcpp-lex.l
popd
popd
pushd src/mesa/program
bison -o program_parse.tab.c \
-p "_mesa_program_" --defines=program_parse.tab.h \
program_parse.y
flex -o lex.yy.c program_lexer.l
popd
mkdir -p src/mapi/shared-glapi
pushd src/mapi/shared-glapi
python ../mapi_abi.py --mode lib --printer shared-glapi \
../glapi/gen/gl_and_es_API.xml > glapi_mapi_tmp.h
popd
mv include $includedir
substituteAll ${./mesa.pc.in} $pkgconfigdir/mesa.pc
mkdir $source
mv * $source/
'';
}