[142845] users/devans/GNOME-3/stable/dports/gnome/gtk3

devans at macports.org devans at macports.org
Sat Dec 12 07:28:47 PST 2015


Revision: 142845
          https://trac.macports.org/changeset/142845
Author:   devans at macports.org
Date:     2015-11-24 11:53:04 -0800 (Tue, 24 Nov 2015)
Log Message:
-----------
GNOME-3/stable: gtk3, when building +quartz blacklist compilers that don't support instancetype, when selecting cursors check that cursor type exists, fixes +quartz builds where Xcode < 4.6 (possibly some 10.7, 10.6 and earlier) (#49391).

Modified Paths:
--------------
    users/devans/GNOME-3/stable/dports/gnome/gtk3/Portfile

Added Paths:
-----------
    users/devans/GNOME-3/stable/dports/gnome/gtk3/files/patch-gdk_quartz_gdkcursor-quartz-10_6_compat.diff

Modified: users/devans/GNOME-3/stable/dports/gnome/gtk3/Portfile
===================================================================
--- users/devans/GNOME-3/stable/dports/gnome/gtk3/Portfile	2015-11-24 19:13:39 UTC (rev 142844)
+++ users/devans/GNOME-3/stable/dports/gnome/gtk3/Portfile	2015-11-24 19:53:04 UTC (rev 142845)
@@ -6,6 +6,7 @@
 PortGroup           muniversal 1.0
 PortGroup           xcodeversion 1.0
 PortGroup           active_variants 1.1
+PortGroup           compiler_blacklist_versions 1.0
 
 name                gtk3
 set real_name       gtk+
@@ -55,7 +56,13 @@
 
 patchfiles          nawk.patch
 
+# gtk3 +quartz uses instancetype which is not available
+# before approximately Xcode 4.6 (#49391)
 
+if {[variant_isset quartz]} {
+    compiler.blacklist  *gcc* {clang < 425}
+}
+
 # gobject-introspection uses g-ir-scanner, which uses $CC from env
 
 if {[variant_isset universal]} {
@@ -123,18 +130,25 @@
     reinplace "s|${destroot}||" ${destroot}${prefix}/etc/gtk-3.0/gtk.immodules
 }
 
-platform darwin 8 {
-    # The rules enabled by gobject-introspection require GNU make 3.81+
-    depends_build-append    port:gmake
-    build.cmd               ${prefix}/bin/gmake
+platform darwin {
+    if {${os.major} <= 8} {
+        # The rules enabled by gobject-introspection require GNU make 3.81+
+        depends_build-append    port:gmake
+        build.cmd               ${prefix}/bin/gmake
 
-    if {[variant_isset quartz] || ![variant_isset x11]} {
-        configure.ldflags-append  -framework Cocoa -framework Carbon
+        if {[variant_isset quartz] || ![variant_isset x11]} {
+            configure.ldflags-append  -framework Cocoa -framework Carbon
+        }
+    
+        configure.args-append --disable-cups
     }
-}
 
-if {${os.major} <= 8} {
-    configure.args-append --disable-cups
+    if {${os.major} <= 10} {
+        # OS X 10.6 and earlier do not supply all cursors specified by gtk3 +quartz (#49391)
+        if {[variant_isset quartz]} {
+            patchfiles-append   patch-gdk_quartz_gdkcursor-quartz-10_6_compat.diff
+        }
+    }
 }
 
 if {[variant_isset universal]} {

Added: users/devans/GNOME-3/stable/dports/gnome/gtk3/files/patch-gdk_quartz_gdkcursor-quartz-10_6_compat.diff
===================================================================
--- users/devans/GNOME-3/stable/dports/gnome/gtk3/files/patch-gdk_quartz_gdkcursor-quartz-10_6_compat.diff	                        (rev 0)
+++ users/devans/GNOME-3/stable/dports/gnome/gtk3/files/patch-gdk_quartz_gdkcursor-quartz-10_6_compat.diff	2015-11-24 19:53:04 UTC (rev 142845)
@@ -0,0 +1,15 @@
+--- gdk/quartz/gdkcursor-quartz.c.old	2015-11-23 21:43:17.000000000 +0100
++++ gdk/quartz/gdkcursor-quartz.c	2015-11-23 21:43:52.000000000 +0100
+@@ -402,6 +402,12 @@
+         selector = NSSelectorFromString(test->selector);
+         break;
+       }
++
++  if (! [[gdkCoreCursor class] respondsToSelector:selector])
++  {
++  	  selector = @selector(arrowCursor);
++  }
++
+   nscursor = [[gdkCoreCursor class] performSelector:selector];
+ 
+   [nscursor retain];
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20151212/bf412820/attachment.html>


More information about the macports-changes mailing list