From c6ce8913760a44e5103fa3e4b75e07c84e039d6a Mon Sep 17 00:00:00 2001 From: Jonas Hahnfeld Date: Sun, 16 May 2021 11:58:26 +0200 Subject: [PATCH] meson: Fix detection of static libintl on macOS If libintl is built statically on macOS, linking it requires passing "-framework CoreFoundation" to satisfy symbol dependencies. Use the available osx_ldflags already detected earlier in the process. --- meson.build | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/meson.build b/meson.build index 8e4d7347b..a0ee8b774 100644 --- a/meson.build +++ b/meson.build @@ -2052,13 +2052,13 @@ endif # FIXME: glib-gettext.m4 has much more checks to detect broken/uncompatible # implementations. This could be extended if issues are found in some platforms. libintl_deps = [] -if cc.has_function('ngettext') +if cc.has_function('ngettext', args : osx_ldflags) have_bind_textdomain_codeset = cc.has_function('bind_textdomain_codeset') else # First just find the bare library. libintl = cc.find_library('intl', required : false) # The bare library probably won't link without help if it's static. - if libintl.found() and not cc.has_function('ngettext', dependencies : libintl) + if libintl.found() and not cc.has_function('ngettext', args : osx_ldflags, dependencies : libintl) libintl_iconv = cc.find_library('iconv', required : false) # libintl supports different threading APIs, which may not # require additional flags, but it defaults to using pthreads if @@ -2068,10 +2068,10 @@ else # also defining the macros with the -pthread flag. libintl_pthread = cc.find_library('pthread', required : false) # Try linking with just libiconv. - if libintl_iconv.found() and cc.has_function('ngettext', dependencies : [libintl, libintl_iconv]) + if libintl_iconv.found() and cc.has_function('ngettext', args : osx_ldflags, dependencies : [libintl, libintl_iconv]) libintl_deps += [libintl_iconv] # Then also try linking with pthreads. - elif libintl_iconv.found() and libintl_pthread.found() and cc.has_function('ngettext', dependencies : [libintl, libintl_iconv, libintl_pthread]) + elif libintl_iconv.found() and libintl_pthread.found() and cc.has_function('ngettext', args : osx_ldflags, dependencies : [libintl, libintl_iconv, libintl_pthread]) libintl_deps += [libintl_iconv, libintl_pthread] else libintl = disabler() @@ -2083,7 +2083,7 @@ else have_bind_textdomain_codeset = true # proxy-libintl supports it else libintl_deps = [libintl] + libintl_deps - have_bind_textdomain_codeset = cc.has_function('bind_textdomain_codeset', + have_bind_textdomain_codeset = cc.has_function('bind_textdomain_codeset', args : osx_ldflags, dependencies : libintl_deps) endif endif