[glib] Enable building gcocoanotification only if OS X min version >= 10.9



commit d1a03bc728df920d4da6db02437d99bba27aa20c
Author: John Ralls <jralls ceridwen us>
Date:   Wed Mar 8 22:26:00 2017 -0500

    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 324388f..2da6fa1 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 <AvailabilityMacros.h>
+#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 1ca27fc..f6aab57 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 6bb8203..6701ba8 100644
--- a/gio/giomodule.c
+++ b/gio/giomodule.c
@@ -47,6 +47,10 @@
 #include "gdesktopappinfo.h"
 #endif
 
+#ifdef HAVE_COCOA
+#include <AvailabilityMacros.h>
+#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


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]