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)