Merge master into staging-next

This commit is contained in:
Frederik Rietdijk
2019-01-20 18:22:17 +01:00
107 changed files with 1795 additions and 1221 deletions
@@ -1,6 +1,6 @@
{ stdenv, callPackage, lib, fetchurl, fetchpatch, runCommand, makeWrapper
, jdk, zip, unzip, bash, writeCBin, coreutils
, which, python, perl, gnused, gnugrep, findutils
, which, python, perl, gawk, gnused, gnugrep, findutils
# Apple dependencies
, cctools, clang, libcxx, CoreFoundation, CoreServices, Foundation
# Allow to independently override the jdks used to build and run respectively
@@ -23,7 +23,7 @@ let
for i in ${builtins.toString srcDeps}; do cp $i $out/$(stripHash $i); done
'';
defaultShellPath = lib.makeBinPath [ bash coreutils findutils gnugrep gnused which unzip ];
defaultShellPath = lib.makeBinPath [ bash coreutils findutils gawk gnugrep gnused which unzip ];
in
stdenv.mkDerivation rec {
@@ -1,5 +1,5 @@
{ stdenv, lib, fetchgit, fetchzip, fetchpatch, darwin, writeText
, git, ninja, python }:
, git, ninja, python2 }:
let
rev = "96ff462cddf35f98e25fd5d098fc27bc81eab94a";
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
--replace "NSArray<NSString*>*" "NSArray*"
'';
nativeBuildInputs = [ ninja python git ];
nativeBuildInputs = [ ninja python2 git ];
buildInputs = lib.optionals stdenv.isDarwin (with darwin; with apple_sdk.frameworks; [
libobjc
cctools
@@ -44,6 +44,13 @@ python3Packages.buildPythonApplication rec {
src = ./fix-rpath.patch;
inherit (builtins) storeDir;
})
] ++ lib.optionals stdenv.isDarwin [
# We use custom Clang, which makes Meson think *not Apple*, while still
# relying on system linker. When it detects standard Clang, Meson will
# pass it `-Wl,-O1` flag but optimizations are not recognized by
# Mac linker.
# https://github.com/mesonbuild/meson/issues/4784
./fix-objc-linking.patch
];
setupHook = ./setup-hook.sh;
@@ -0,0 +1,20 @@
--- a/mesonbuild/environment.py
+++ b/mesonbuild/environment.py
@@ -795,7 +795,7 @@
compiler_type = self.get_gnu_compiler_type(defines)
version = self.get_gnu_version_from_defines(defines)
return GnuObjCCompiler(ccache + compiler, version, compiler_type, is_cross, exe_wrap, defines)
- if out.startswith('Apple LLVM'):
+ if out.startswith('Apple LLVM') or mesonlib.for_darwin(want_cross, self):
return ClangObjCCompiler(ccache + compiler, version, CompilerType.CLANG_OSX, is_cross, exe_wrap)
if out.startswith('clang'):
return ClangObjCCompiler(ccache + compiler, version, CompilerType.CLANG_STANDARD, is_cross, exe_wrap)
@@ -822,7 +822,7 @@
compiler_type = self.get_gnu_compiler_type(defines)
version = self.get_gnu_version_from_defines(defines)
return GnuObjCPPCompiler(ccache + compiler, version, compiler_type, is_cross, exe_wrap, defines)
- if out.startswith('Apple LLVM'):
+ if out.startswith('Apple LLVM') or mesonlib.for_darwin(want_cross, self):
return ClangObjCPPCompiler(ccache + compiler, version, CompilerType.CLANG_OSX, is_cross, exe_wrap)
if out.startswith('clang'):
return ClangObjCPPCompiler(ccache + compiler, version, CompilerType.CLANG_STANDARD, is_cross, exe_wrap)