From d1a03bc728df920d4da6db02437d99bba27aa20c Mon Sep 17 00:00:00 2001 From: John Ralls Date: Wed, 8 Mar 2017 22:26:00 -0500 Subject: [PATCH] Enable building gcocoanotification only if OS X min version >= 10.9 This changes the configure checks to check for what is actually required to build this code. https://bugzilla.gnome.org/show_bug.cgi?id=747146 --- configure.ac | 19 ++++++++----------- gio/Makefile.am | 2 ++ gio/giomodule.c | 8 ++++++-- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/configure.ac b/configure.ac index 324388f51..2da6fa10f 100644 --- a/configure.ac +++ b/configure.ac @@ -223,22 +223,19 @@ AS_IF([test "x$glib_have_carbon" = "xyes"], [ ], [CARBON_LIBS=""]) AC_SUBST([CARBON_LIBS]) - +ac_cv_have_os_x_9_or_later="no" AS_IF([test "x$glib_have_cocoa" = "xyes"], [ AC_DEFINE(HAVE_COCOA, 1, [define to 1 if Cocoa is available]) COCOA_LIBS="-Wl,-framework,Foundation" LDFLAGS="$LDFLAGS $COCOA_LIBS" - - osx_version=`sw_vers -productVersion` - osx_min_version="10.9.0" - AC_MSG_CHECKING([OSX version >= $osx_min_version]) - AS_VERSION_COMPARE([$osx_version], [$osx_min_version], [ - AC_MSG_RESULT([no]) - AC_MSG_ERROR([OSX version is too old!]) - ]) - AC_MSG_RESULT([yes]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ +#include +#if MAC_OS_X_VERSION_MIN_REQUIRED < 1090 +#error Compiling for minimum OS X version before 10.9 +#endif + ]])],[ac_cv_have_os_x_9_or_later="yes"]) ], [COCOA_LIBS=""]) - +AM_CONDITIONAL([MAC_OS_X_9], [test "x$ac_cv_have_os_x_9_or_later" = xyes]) AC_SUBST([COCOA_LIBS]) dnl declare --enable-* args and collect ac_help strings diff --git a/gio/Makefile.am b/gio/Makefile.am index 1ca27fcb7..f6aab5770 100644 --- a/gio/Makefile.am +++ b/gio/Makefile.am @@ -281,8 +281,10 @@ unix_sources = \ appinfo_sources += $(unix_appinfo_sources) if OS_COCOA +if MAC_OS_X_9 unix_sources += gcocoanotificationbackend.c endif +endif giounixincludedir=$(includedir)/gio-unix-2.0/gio giounixinclude_HEADERS = \ diff --git a/gio/giomodule.c b/gio/giomodule.c index 6bb8203c2..6701ba861 100644 --- a/gio/giomodule.c +++ b/gio/giomodule.c @@ -47,6 +47,10 @@ #include "gdesktopappinfo.h" #endif +#ifdef HAVE_COCOA +#include +#endif + /** * SECTION:giomodule * @short_description: Loadable GIO Modules @@ -918,7 +922,7 @@ extern GType g_proxy_resolver_portal_get_type (void); extern GType g_network_monitor_portal_get_type (void); #endif -#ifdef HAVE_COCOA +#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1090 extern GType g_cocoa_notification_backend_get_type (void); #endif @@ -1121,7 +1125,7 @@ _g_io_modules_ensure_loaded (void) g_type_ensure (g_network_monitor_portal_get_type ()); g_type_ensure (g_proxy_resolver_portal_get_type ()); #endif -#ifdef HAVE_COCOA +#ifdef HAVE_MAC_OS_X_VERSION_MIN_REQUIRED >= 1090 g_type_ensure (g_cocoa_notification_backend_get_type ()); #endif #ifdef G_OS_WIN32