about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2019-09-04 16:59:33 +0200
committerGitHub <noreply@github.com>2019-09-04 16:59:33 +0200
commite7cccdbb139ccf2f9f170500f40c04a6237a2da1 (patch)
tree40982a399e0167e9bf14b47f138667742ba60fab
parentb479a214039913672817cffa876f8425b0168881 (diff)
parent1be03500d5bfaf3306b97a96595f2c526bdb063d (diff)
downloadnixlib-e7cccdbb139ccf2f9f170500f40c04a6237a2da1.tar
nixlib-e7cccdbb139ccf2f9f170500f40c04a6237a2da1.tar.gz
nixlib-e7cccdbb139ccf2f9f170500f40c04a6237a2da1.tar.bz2
nixlib-e7cccdbb139ccf2f9f170500f40c04a6237a2da1.tar.lz
nixlib-e7cccdbb139ccf2f9f170500f40c04a6237a2da1.tar.xz
nixlib-e7cccdbb139ccf2f9f170500f40c04a6237a2da1.tar.zst
nixlib-e7cccdbb139ccf2f9f170500f40c04a6237a2da1.zip
Merge pull request #68105 from jtojnar/meson-darwin-fix
meson: fix darwin patch
-rw-r--r--pkgs/development/tools/build-managers/meson/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/meson/fix-objc-linking.patch30
2 files changed, 17 insertions, 14 deletions
diff --git a/pkgs/development/tools/build-managers/meson/default.nix b/pkgs/development/tools/build-managers/meson/default.nix
index d37951ab94a4..fad5bc9e630d 100644
--- a/pkgs/development/tools/build-managers/meson/default.nix
+++ b/pkgs/development/tools/build-managers/meson/default.nix
@@ -60,6 +60,7 @@ python3Packages.buildPythonApplication rec {
     # pass it `-Wl,-O1` flag but optimizations are not recognized by
     # Mac linker.
     # https://github.com/mesonbuild/meson/issues/4784
+    # Should be fixed in 0.52
     ./fix-objc-linking.patch
   ];
 
diff --git a/pkgs/development/tools/build-managers/meson/fix-objc-linking.patch b/pkgs/development/tools/build-managers/meson/fix-objc-linking.patch
index 60a205828f5d..996e0c3420e2 100644
--- a/pkgs/development/tools/build-managers/meson/fix-objc-linking.patch
+++ b/pkgs/development/tools/build-managers/meson/fix-objc-linking.patch
@@ -1,20 +1,22 @@
+diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py
+index dc8f099b..d8581fcf 100644
 --- a/mesonbuild/environment.py
 +++ b/mesonbuild/environment.py
-@@ -795,7 +795,7 @@
+@@ -944,7 +944,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 @@
+                 return GnuObjCCompiler(ccache + compiler, version, compiler_type, for_machine, is_cross, exe_wrap, defines)
+-            if out.startswith('Apple LLVM') or out.startswith('Apple clang'):
++            if out.startswith('Apple LLVM') or out.startswith('Apple clang') or self.machines.build.is_darwin():
+                 return ClangObjCCompiler(ccache + compiler, version, CompilerType.CLANG_OSX, for_machine, is_cross, exe_wrap)
+             if 'windows' in out:
+                 return ClangObjCCompiler(ccache + compiler, version, CompilerType.CLANG_MINGW, for_machine, is_cross, exe_wrap)
+@@ -974,7 +974,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)
+                 return GnuObjCPPCompiler(ccache + compiler, version, compiler_type, for_machine, is_cross, exe_wrap, defines)
+-            if out.startswith('Apple LLVM') or out.startswith('Apple clang'):
++            if out.startswith('Apple LLVM') or out.startswith('Apple clang') or self.machines.build.is_darwin():
+                 return ClangObjCPPCompiler(ccache + compiler, version, CompilerType.CLANG_OSX, for_machine, is_cross, exe_wrap)
+             if 'windows' in out:
+                 return ClangObjCPPCompiler(ccache + compiler, version, CompilerType.CLANG_MINGW, for_machine, is_cross, exe_wrap)