Revert "Revert "Meson: Fix cocoa and carbon support""

This reverts commit e25a2f95b3.
This commit is contained in:
Xavier Claessens 2018-05-23 09:16:35 -04:00 committed by Xavier Claessens
parent ead46cdc7e
commit d3735df34f
2 changed files with 44 additions and 30 deletions

View File

@ -417,10 +417,11 @@ if host_system != 'windows'
contenttype_sources += files('gcontenttype.c')
appinfo_sources += files('gdesktopappinfo.c')
gio_unix_include_headers += files('gdesktopappinfo.h')
subdir('xdgmime')
internal_deps += [xdgmime_lib]
endif
subdir('xdgmime')
internal_deps += [xdgmime_lib]
install_headers(gio_unix_include_headers, subdir : 'gio-unix-2.0/gio')
if glib_conf.has('HAVE_NETLINK')
@ -794,6 +795,7 @@ libgio = library('gio-2.0',
libgobject_dep, libgmodule_dep, selinux_dep, xattr_dep,
platform_deps, network_libs],
c_args : gio_c_args,
objc_args : gio_c_args,
# intl.lib is not compatible with SAFESEH
link_args : [noseh_link_args, glib_link_flags],
)
@ -939,7 +941,7 @@ executable('gdbus', 'gdbus-tool.c',
link_args : noseh_link_args,
dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep])
if host_system != 'windows'
if host_system != 'windows' and not glib_have_cocoa
executable('gapplication', 'gapplication-tool.c',
install : true,
c_args : gio_c_args,

View File

@ -572,37 +572,49 @@ if host_system == 'linux'
endif
osx_ldflags = []
# Mac OS X Carbon support
glib_have_carbon = cc.compiles('''#include <Carbon/Carbon.h>
#include <CoreServices/CoreServices.h>''',
name : 'Mac OS X Carbon support')
glib_have_os_x_9_or_later = false
glib_have_carbon = false
glib_have_cocoa = false
if host_system == 'darwin'
add_languages('objc')
objcc = meson.get_compiler('objc')
if glib_have_carbon
glib_conf.set('HAVE_CARBON', true)
osx_ldflags += '-Wl,-framework,Carbon'
glib_have_os_x_9_or_later = cc.compiles('''#include <AvailabilityMacros.h>
#if MAC_OS_X_VERSION_MIN_REQUIRED < 1090
#error Compiling for minimum OS X version before 10.9
#endif''', name : 'OS X 9 or later')
# FIXME: Should this be conditional? glib-gettext.m4 has some checks
osx_ldflags += ['-Wl,-framework,CoreFoundation']
# Mac OS X Carbon support
glib_have_carbon = objcc.compiles('''#include <Carbon/Carbon.h>
#include <CoreServices/CoreServices.h>''',
name : 'Mac OS X Carbon support')
if glib_have_carbon
glib_conf.set('HAVE_CARBON', true)
osx_ldflags += '-Wl,-framework,Carbon'
glib_have_os_x_9_or_later = objcc.compiles('''#include <AvailabilityMacros.h>
#if MAC_OS_X_VERSION_MIN_REQUIRED < 1090
#error Compiling for minimum OS X version before 10.9
#endif''',
name : 'OS X 9 or later')
endif
# Mac OS X Cocoa support
glib_have_cocoa = objcc.compiles('''#include <Cocoa/Cocoa.h>
#ifdef GNUSTEP_BASE_VERSION
#error "Detected GNUstep, not Cocoa"
#endif''',
name : 'Mac OS X Cocoa support')
if glib_have_cocoa
glib_conf.set('HAVE_COCOA', true)
osx_ldflags += ['-Wl,-framework,Foundation', '-Wl,-framework,AppKit']
endif
# FIXME: libgio mix C and objC source files and there is no way to reliably
# know which language flags it's going to use to link. Add to both languages
# for now. See https://github.com/mesonbuild/meson/issues/3585.
add_project_link_arguments(osx_ldflags, language : ['objc', 'c'])
endif
# Mac OS X Cocoa support
glib_have_cocoa = cc.compiles('''#include <Cocoa/Cocoa.h>
#ifdef GNUSTEP_BASE_VERSION
#error "Detected GNUstep, not Cocoa"
#endif''',
name : 'Mac OS X Cocoa support')
if glib_have_cocoa
glib_conf.set('HAVE_COCOA', true)
osx_ldflags += ['-Wl,-framework,Foundation', '-Wl,-framework,AppKit']
endif
add_project_link_arguments(osx_ldflags, language : 'c')
# Check for futex(2)
if cc.links('''#include <linux/futex.h>
#include <sys/syscall.h>