@ -34,9 +34,8 @@ let
# Release frequency: https://www.mesa3d.org/releasing.html#schedule
version = " 2 1 . 0 . 2 " ;
branch = versions . major version ;
in
stdenv . mkDerivation {
self = s tdenv . mkDerivation {
pname = " m e s a " ;
inherit version ;
@ -88,7 +87,9 @@ stdenv.mkDerivation {
" f i n d _ p r o g r a m ( ' ${ stdenv . cc . targetPrefix } n m ' ) "
'' ;
outputs = [ " o u t " " d e v " " d r i v e r s " ] ++ lib . optional enableOSMesa " o s m e s a " ;
outputs = [ " o u t " " d e v " " d r i v e r s " ]
++ lib . optional enableOSMesa " o s m e s a "
++ lib . optional stdenv . isLinux " d r i v e r s d e v " ;
# TODO: Figure out how to enable opencl without having a runtime dependency on clang
mesonFlags = [
@ -181,20 +182,22 @@ stdenv.mkDerivation {
mv - t $ osmesa/lib / $ out/lib/libOSMesa *
'' ;
# TODO:
# check $out doesn't depend on llvm: builder failures are ignored
# for some reason grep -qv '${llvmPackages.llvm}' -R "$out";
postFixup = optionalString stdenv . isLinux ''
# set the default search path for DRI drivers; used e.g. by X server
substituteInPlace " $ d e v / l i b / p k g c o n f i g / d r i . p c " - - replace " $ d r i v e r s " " ${ libglvnd . driverLink } "
substituteInPlace " $ d e v / l i b / p k g c o n f i g / d 3 d . p c " - - replace " $ d r i v e r s " " ${ libglvnd . driverLink } "
# remove pkgconfig files for GL/EGL; they are provided by libGL.
rm - f $ dev/lib/pkgconfig / { gl , egl } . pc
# Update search path used by pkg-config
for pc in $ dev/lib/pkgconfig / { d3d , dri , xatracker } . pc ; do
if [ - f " $ p c " ] ; then
substituteInPlace " $ p c " - - replace $ out $ drivers
# Move development files for libraries in $drivers to $driversdev
mkdir - p $ driversdev/include
mv $ dev/include/xa_ * $ dev/include/d3d * $ driversdev/include
mkdir - p $ driversdev/lib/pkgconfig
for pc in lib/pkgconfig / { xatracker , d3d } . pc ; do
if [ - f " $ d e v / $ p c " ] ; then
substituteInPlace " $ d e v / $ p c " - - replace $ out $ drivers
mv $ dev / $ pc $ driversdev / $ pc
fi
done
@ -212,6 +215,14 @@ stdenv.mkDerivation {
passthru = {
inherit libdrm ;
inherit ( libglvnd ) driverLink ;
tests . devDoesNotDependOnLLVM = stdenv . mkDerivation {
name = " m e s a - d e v - d o e s - n o t - d e p e n d - o n - l l v m " ;
buildCommand = ''
echo $ { self . dev } > > $ out
'' ;
disallowedRequisites = [ llvmPackages . llvm self . drivers ] ;
} ;
} ;
meta = {
@ -231,4 +242,6 @@ stdenv.mkDerivation {
platforms = platforms . mesaPlatforms ;
maintainers = with maintainers ; [ primeos vcunat ] ; # Help is welcome :)
} ;
}
} ;
in self