Merge pull request #89036 from Ericson2314/fix-mesa-wayland-cross

mesa wayland: Fix/simplify cross
This commit is contained in:
John Ericson 2020-05-27 16:45:05 -04:00 committed by GitHub
commit cc1af0751f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 17 additions and 26 deletions

View File

@ -1,4 +1,4 @@
{ stdenv, lib, fetchurl, fetchpatch { stdenv, lib, fetchurl, fetchpatch, buildPackages
, pkgconfig, intltool, ninja, meson , pkgconfig, intltool, ninja, meson
, file, flex, bison, expat, libdrm, xorg, wayland, wayland-protocols, openssl , file, flex, bison, expat, libdrm, xorg, wayland, wayland-protocols, openssl
, llvmPackages, libffi, libomxil-bellagio, libva-minimal , llvmPackages, libffi, libomxil-bellagio, libva-minimal
@ -73,6 +73,12 @@ stdenv.mkDerivation {
}) })
]; ];
postPatch = ''
substituteInPlace meson.build --replace \
"find_program('pkg-config')" \
"find_program('${buildPackages.pkg-config.targetPrefix}pkg-config')"
'';
outputs = [ "out" "dev" "drivers" "osmesa" ]; outputs = [ "out" "dev" "drivers" "osmesa" ];
# TODO: Figure out how to enable opencl without having a runtime dependency on clang # TODO: Figure out how to enable opencl without having a runtime dependency on clang
@ -112,10 +118,14 @@ stdenv.mkDerivation {
++ lib.optionals stdenv.isLinux [ libomxil-bellagio libva-minimal ] ++ lib.optionals stdenv.isLinux [ libomxil-bellagio libva-minimal ]
++ lib.optional withValgrind valgrind-light; ++ lib.optional withValgrind valgrind-light;
depsBuildBuild = [ pkgconfig ];
nativeBuildInputs = [ nativeBuildInputs = [
pkgconfig meson ninja pkgconfig meson ninja
intltool bison flex file intltool bison flex file
python3Packages.python python3Packages.Mako python3Packages.python python3Packages.Mako
] ++ lib.optionals (elem "wayland" eglPlatforms) [
wayland # For wayland-scanner during the build
]; ];
propagatedBuildInputs = with xorg; [ propagatedBuildInputs = with xorg; [

View File

@ -23,16 +23,17 @@ in stdenv.mkDerivation rec {
mesonFlags = [ "-Ddocumentation=${lib.boolToString withDocumentation}" ]; mesonFlags = [ "-Ddocumentation=${lib.boolToString withDocumentation}" ];
patches = lib.optional isCross ./fix-wayland-cross-compilation.patch;
postPatch = lib.optionalString withDocumentation '' postPatch = lib.optionalString withDocumentation ''
patchShebangs doc/doxygen/gen-doxygen.py patchShebangs doc/doxygen/gen-doxygen.py
'' + lib.optionalString isCross ''
substituteInPlace egl/meson.build --replace \ substituteInPlace egl/meson.build --replace \
"find_program('nm').path()" \ "find_program('nm').path()" \
"find_program('${stdenv.cc.targetPrefix}nm').path()" "find_program('${stdenv.cc.targetPrefix}nm').path()"
''; '';
depsBuildBuild = [
pkgconfig
];
nativeBuildInputs = [ nativeBuildInputs = [
meson pkgconfig ninja meson pkgconfig ninja
] ++ lib.optionals isCross [ ] ++ lib.optionals isCross [

View File

@ -1,14 +0,0 @@
diff --git a/src/meson.build b/src/meson.build
index 3e8c9bf..75241cb 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -55,8 +55,7 @@ pkgconfig.generate(
)
if meson.is_cross_build()
- scanner_dep = dependency('wayland-scanner', native: true, version: '>=1.14.0')
- wayland_scanner_for_build = find_program(scanner_dep.get_pkgconfig_variable('wayland_scanner'))
+ wayland_scanner_for_build = find_program('wayland-scanner', native: true, version: '>=1.14.0')
else
wayland_scanner_for_build = wayland_scanner
endif

View File

@ -262,7 +262,7 @@ in rec {
else if isx86_32 then "x86" else if isx86_32 then "x86"
else if isx86_64 then "x86_64" else if isx86_64 then "x86_64"
else platform.parsed.cpu.family + builtins.toString platform.parsed.cpu.bits; else platform.parsed.cpu.family + builtins.toString platform.parsed.cpu.bits;
crossFile = builtins.toFile "cross-file.conf" ('' crossFile = builtins.toFile "cross-file.conf" ''
[properties] [properties]
needs_exe_wrapper = true needs_exe_wrapper = true
@ -271,13 +271,7 @@ in rec {
cpu_family = '${cpuFamily stdenv.targetPlatform}' cpu_family = '${cpuFamily stdenv.targetPlatform}'
cpu = '${stdenv.targetPlatform.parsed.cpu.name}' cpu = '${stdenv.targetPlatform.parsed.cpu.name}'
endian = ${if stdenv.targetPlatform.isLittleEndian then "'little'" else "'big'"} endian = ${if stdenv.targetPlatform.isLittleEndian then "'little'" else "'big'"}
'' '';
# TODO should have target prefix too, issue #86077
+ ''
[binaries]
pkgconfig = 'pkg-config'
'');
in [ "--cross-file=${crossFile}" ] ++ mesonFlags; in [ "--cross-file=${crossFile}" ] ++ mesonFlags;
} // lib.optionalAttrs (attrs.enableParallelBuilding or false) { } // lib.optionalAttrs (attrs.enableParallelBuilding or false) {
enableParallelChecking = attrs.enableParallelChecking or true; enableParallelChecking = attrs.enableParallelChecking or true;