Title: [194444] trunk/Tools
Revision
194444
Author
[email protected]
Date
2015-12-30 00:33:32 -0800 (Wed, 30 Dec 2015)

Log Message

[Mac][GTK] Jhbuild support for OSX
https://bugs.webkit.org/show_bug.cgi?id=150799

Reviewed by Michael Catanzaro.

* gtk/install-dependencies: Install dependencies on OSX with Homebrew.
* gtk/jhbuild.modules: Moved platform-specific build settings in condition tags.
* gtk/patches/foxbntconfig-fix-osx-cache.diff: Added.
* gtk/jhbuildrc: GTK+ makeargs clean-up, the 3.0.12 hack is no longer needed.

Modified Paths

Added Paths

Diff

Modified: trunk/Tools/ChangeLog (194443 => 194444)


--- trunk/Tools/ChangeLog	2015-12-30 08:31:15 UTC (rev 194443)
+++ trunk/Tools/ChangeLog	2015-12-30 08:33:32 UTC (rev 194444)
@@ -1,3 +1,15 @@
+2015-12-30  Philippe Normand  <[email protected]>
+
+        [Mac][GTK] Jhbuild support for OSX
+        https://bugs.webkit.org/show_bug.cgi?id=150799
+
+        Reviewed by Michael Catanzaro.
+
+        * gtk/install-dependencies: Install dependencies on OSX with Homebrew.
+        * gtk/jhbuild.modules: Moved platform-specific build settings in condition tags.
+        * gtk/patches/foxbntconfig-fix-osx-cache.diff: Added.
+        * gtk/jhbuildrc: GTK+ makeargs clean-up, the 3.0.12 hack is no longer needed.
+
 2015-12-28  Michael Catanzaro  <[email protected]>
 
         Unreviewed, move Sebastian Dröge to committers list

Modified: trunk/Tools/gtk/install-dependencies (194443 => 194444)


--- trunk/Tools/gtk/install-dependencies	2015-12-30 08:31:15 UTC (rev 194443)
+++ trunk/Tools/gtk/install-dependencies	2015-12-30 08:33:32 UTC (rev 194444)
@@ -37,9 +37,45 @@
         exit 0
     fi
 
+    if [ `uname` -eq "Darwin" ]
+       installDependenciesWithBrew
+       exit 0
+    fi
+
     printNotSupportedMessageAndExit
 }
 
+function installDependenciesWithBrew {
+    brew &> /dev/null
+    if [ $? -gt 1 ]; then
+        echo "Please install HomeBrew. Instructions on http://brew.sh"
+        exit 1
+    fi
+
+    brew install autoconf \
+         automake \
+         bison \
+         cmake \
+         enchant \
+         flex \
+         gettext \
+         gobject-introspection \
+         icu4c \
+         intltool \
+         itstool \
+         libcroco \
+         libgcrypt \
+         libgpg-error \
+         libtiff \
+         libtool \
+         ninja \
+         pango \
+         pkg-config \
+         sqlite \
+         webp \
+         xz
+}
+
 function installDependenciesWithApt {
     # These are dependencies necessary for building WebKitGTK+.
     packages=" \

Modified: trunk/Tools/gtk/jhbuild.modules (194443 => 194444)


--- trunk/Tools/gtk/jhbuild.modules	2015-12-30 08:31:15 UTC (rev 194443)
+++ trunk/Tools/gtk/jhbuild.modules	2015-12-30 08:33:32 UTC (rev 194444)
@@ -22,18 +22,23 @@
       <dep package="gtk-doc"/>
       <dep package="libsoup"/>
       <dep package="atk"/>
-      <dep package="at-spi2-core"/>
-      <dep package="at-spi2-atk"/>
       <dep package="gstreamer"/>
       <dep package="gst-plugins-base"/>
       <dep package="gst-plugins-good"/>
       <dep package="gst-plugins-bad"/>
       <dep package="gst-libav"/>
-      <dep package="xserver"/>
-      <dep package="mesa"/>
       <dep package="openwebrtc"/>
-      <dep package="libseccomp"/>
       <dep package="llvm"/>
+      <if condition-set="linux">
+          <dep package="xserver"/>
+          <dep package="mesa"/>
+          <dep package="libseccomp"/>
+          <dep package="at-spi2-core"/>
+          <dep package="at-spi2-atk"/>
+      </if>
+      <if condition-set="macos">
+          <dep package="gsettings-desktop-schemas"/>
+      </if>
     </dependencies>
   </metamodule>
 
@@ -67,9 +72,13 @@
   <repository type="tarball" name="llvm.org"
       href=""
 
-  <autotools id="cairo"
-             autogenargs="--enable-gl=yes --enable-egl=yes --enable-glx=yes ac_cv_func_rsvg_pixbuf_from_file=no"
-             makeargs="">
+  <autotools id="cairo">
+    <if condition-set="linux">
+      <autogenargs value="--enable-gl=yes --enable-egl=yes --enable-glx=yes"/>
+    </if>
+    <if condition-set="macos">
+      <autogenargs value="ac_cv_func_rsvg_pixbuf_from_file=no --disable-lto"/>
+    </if>
     <dependencies>
       <dep package="fontconfig"/>
       <dep package="pixman"/>
@@ -144,6 +153,9 @@
 
   <autotools id="librsvg" autogen-sh="configure"
              autogenargs="--disable-introspection --enable-pixbuf-loader --disable-gtk-theme">
+    <if condition-set="macos">
+      <autogenargs value="--disable-Bsymbolic"/>
+    </if>
     <dependencies>
       <dep package="gdk-pixbuf"/>
       <dep package="glib"/>
@@ -159,10 +171,17 @@
 
   <autotools id="gtk+" autogen-sh="configure"
              autogenargs="--disable-introspection">
+    <if condition-set="macos">
+      <autogenargs value="--enable-x11-backend=no --enable-quartz-backend" />
+      <makeargs value="-j1" />
+    </if>
     <dependencies>
       <dep package="glib"/>
       <dep package="cairo"/>
-      <dep package="at-spi2-atk"/>
+      <dep package="atk"/>
+      <if condition-set="linux">
+        <dep package="at-spi2-atk"/>
+      </if>
       <dep package="gdk-pixbuf"/>
       <dep package="pango"/>
     </dependencies>
@@ -185,6 +204,9 @@
   </autotools>
 
   <autotools id="glib-networking">
+    <if condition-set="macos">
+      <autogenargs value="--with-ca-certificates='/usr/local/etc/openssl/cert.pem' --without-pkcs11"/>
+    </if>
     <dependencies>
       <dep package="glib"/>
     </dependencies>
@@ -196,6 +218,9 @@
 
   <autotools id="libsoup"
              autogenargs="--without-gnome --disable-introspection">
+    <if condition-set="macos">
+      <autogenargs value="--disable-tls-check"/>
+    </if>
     <dependencies>
       <dep package="glib-networking"/>
     </dependencies>
@@ -207,6 +232,9 @@
   <autotools id="fontconfig" 
              autogen-sh="configure"
              autogenargs="--enable-libxml2">
+    <if condition-set="macos">
+      <autogenargs value="--with-add-fonts=/System/Library/Fonts,/Library/Fonts,~/Library/Fonts"/>
+    </if>
     <dependencies>
       <dep package="freetype6"/>
       <dep package="libxml2"/>
@@ -214,7 +242,9 @@
     <branch module="software/fontconfig/release/fontconfig-2.11.1.tar.gz" version="2.11.1"
             repo="freedesktop.org"
             hash="sha256:b6b066c7dce3f436fdc0dfbae9d36122b38094f4f53bd8dffd45e195b0540d8d"
-            md5sum="e75e303b4f7756c2b16203a57ac87eba"/>
+            md5sum="e75e303b4f7756c2b16203a57ac87eba">
+      <patch file="fontconfig-fix-osx-cache.diff" strip="1"/>
+    </branch>
   </autotools>
 
   <autotools id="gnome-icon-theme" autogen-sh="configure">
@@ -290,6 +320,10 @@
   </autotools>
 
   <autotools id="gstreamer" autogenargs="--disable-gtk-doc">
+    <if condition-set="macos">
+      <autogenargs value="--disable-introspection"/>
+      <makeargs value="CFLAGS+=-Wno-error"/>
+    </if>
     <branch module="gstreamer/gstreamer-1.4.4.tar.xz" version="1.4.4"
             repo="gstreamer"
             hash="sha256:f0e305d91a93d05bf9e332cd4256ca07d77f5186a4d73847b7ae6db218f2c237"
@@ -299,6 +333,10 @@
   <autotools id="gst-plugins-base"
              autogen-sh="autogen.sh"
              autogenargs="--disable-examples --disable-gtk-doc">
+    <if condition-set="macos">
+      <autogenargs value="--disable-introspection"/>
+      <makeargs value="CFLAGS+=-Wno-error"/>
+    </if>
     <dependencies>
       <dep package="gstreamer"/>
     </dependencies>
@@ -311,6 +349,10 @@
   </autotools>
 
   <autotools id="gst-plugins-good" autogenargs="--disable-examples --disable-soup --disable-gtk-doc">
+    <if condition-set="macos">
+      <autogenargs value="--disable-introspection"/>
+      <makeargs value="CFLAGS+=-Wno-error  OBJCFLAGS+=-Wno-error"/>
+    </if>
     <dependencies>
       <dep package="gst-plugins-base"/>
     </dependencies>
@@ -323,6 +365,10 @@
   </autotools>
 
   <autotools id="gst-plugins-bad" autogenargs="--disable-examples --disable-gtk-doc">
+    <if condition-set="macos">
+      <autogenargs value="--disable-introspection"/>
+      <makeargs value="CFLAGS+=-Wno-error CXXFLAGS+=-Wno-error OBJCFLAGS+=-Wno-error"/>
+    </if>
     <dependencies>
       <dep package="gst-plugins-base"/>
     </dependencies>
@@ -336,6 +382,9 @@
   </autotools>
 
   <autotools id="gst-libav" autogenargs="--with-libav-extra-configure='--disable-yasm' --disable-gtk-doc">
+    <if condition-set="macos">
+      <makeargs value="CFLAGS+=-Wno-error"/>
+    </if>
     <dependencies>
       <dep package="gst-plugins-base"/>
     </dependencies>
@@ -358,6 +407,9 @@
   </autotools>
 
   <autotools id="gtk-doc" autogen-sh="configure">
+    <if condition-set="macos">
+      <autogenargs value="--with-xml-catalog=/usr/local/etc/xml/catalog"/>
+    </if>
     <dependencies>
       <dep package="glib"/>
     </dependencies>
@@ -384,6 +436,9 @@
    </autotools>
 
    <autotools id="gst-plugins-openwebrtc" supports-parallel-builds="no" supports-non-srcdir-builds="no" autogen-sh="./autogen.sh; ./configure">
+     <if condition-set="macos">
+       <makeargs value="CFLAGS+=-Wno-error"/>
+     </if>
      <dependencies>
        <dep package="gst-plugins-base"/>
        <dep package="libusrsctp"/>
@@ -399,6 +454,9 @@
   </autotools>
 
   <autotools id="openwebrtc" autogenargs="--enable-bridge=no --enable-owr-gst=yes">
+     <if condition-set="macos">
+       <makeargs value="CFLAGS+=-Wno-error"/>
+     </if>
     <dependencies>
       <dep package="gst-plugins-openwebrtc"/>
       <dep package="libnice"/>
@@ -413,6 +471,16 @@
             hash="sha256:ab45895f9dcdad1e140a3a79fd709f64b05ad7364e308c0e582c5b02e9cc3153"/>
   </autotools>
 
+  <autotools id="gsettings-desktop-schemas" autogen-sh="configure">
+    <dependencies>
+      <dep package="glib"/>
+    </dependencies>
+    <branch module="/pub/GNOME/sources/gsettings-desktop-schemas/3.16/gsettings-desktop-schemas-3.16.1.tar.xz" version="3.16.1"
+            repo="ftp.gnome.org"
+            hash="sha256:74fe9fdad510c8a6666febeceb7ebafc581ef990b3afcc8c1e8b5d90b24b3461">
+    </branch>
+  </autotools>
+  
   <!-- Dependencies listed below this point are not thought to affect test results, and are only
        included because they themselves depend on other dependencies built by jhbuild. -->
 

Modified: trunk/Tools/gtk/jhbuildrc (194443 => 194444)


--- trunk/Tools/gtk/jhbuildrc	2015-12-30 08:31:15 UTC (rev 194443)
+++ trunk/Tools/gtk/jhbuildrc	2015-12-30 08:33:32 UTC (rev 194444)
@@ -26,9 +26,6 @@
 sys.path = [__gtk_tools_directory] + sys.path
 import common
 
-# GTK+ 3.0.12 misses the -lm flag when linking the tests.
-module_makeargs['gtk+'] = 'LDFLAGS="-lm" ' + makeargs
-
 # We always enable introspection so that we can sniff out problems with our
 # annotations sooner rather than later.
 autogenargs='--enable-introspection'

Added: trunk/Tools/gtk/patches/fontconfig-fix-osx-cache.diff (0 => 194444)


--- trunk/Tools/gtk/patches/fontconfig-fix-osx-cache.diff	                        (rev 0)
+++ trunk/Tools/gtk/patches/fontconfig-fix-osx-cache.diff	2015-12-30 08:33:32 UTC (rev 194444)
@@ -0,0 +1,207 @@
+diff --git a/fc-cache/fc-cache.c b/fc-cache/fc-cache.c
+index 99e0e9f..bf3b6b4 100644
+--- a/fc-cache/fc-cache.c
++++ b/fc-cache/fc-cache.c
+@@ -187,13 +187,8 @@ scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force,
+ 	
+ 	if (!cache)
+ 	{
+-	    if (!recursive)
+-		cache = FcDirCacheRescan (dir, config);
+-	    else
+-	    {
+-		(*changed)++;
+-		cache = FcDirCacheRead (dir, FcTrue, config);
+-	    }
++	    (*changed)++;
++	    cache = FcDirCacheRead (dir, FcTrue, config);
+ 	    if (!cache)
+ 	    {
+ 		fprintf (stderr, "%s: error scanning\n", dir);
+@@ -391,7 +386,6 @@ main (int argc, char **argv)
+ 	ret += scanDirs (list, config, FcTrue, really_force, verbose, FcFalse, &changed, NULL);
+ 	FcStrListDone (list);
+     }
+-    FcStrSetDestroy (updateDirs);
+ 
+     /*
+      * Try to create CACHEDIR.TAG anyway.
+diff --git a/fontconfig/fontconfig.h b/fontconfig/fontconfig.h
+index 2258251..d0b4e9e 100644
+--- a/fontconfig/fontconfig.h
++++ b/fontconfig/fontconfig.h
+@@ -541,9 +541,6 @@ FcDirSave (FcFontSet *set, FcStrSet *dirs, const FcChar8 *dir);
+ 
+ FcPublic FcCache *
+ FcDirCacheLoad (const FcChar8 *dir, FcConfig *config, FcChar8 **cache_file);
+-
+-FcPublic FcCache *
+-FcDirCacheRescan (const FcChar8 *dir, FcConfig *config);
+     
+ FcPublic FcCache *
+ FcDirCacheRead (const FcChar8 *dir, FcBool force, FcConfig *config);
+diff --git a/src/fccache.c b/src/fccache.c
+index 5173e0b..10eacff 100644
+--- a/src/fccache.c
++++ b/src/fccache.c
+@@ -828,19 +828,6 @@ bail1:
+     return NULL;
+ }
+ 
+-FcCache *
+-FcDirCacheRebuild (FcCache *cache, struct stat *dir_stat, FcStrSet *dirs)
+-{
+-    FcCache *new;
+-    FcFontSet *set = FcFontSetDeserialize (FcCacheSet (cache));
+-    const FcChar8 *dir = FcCacheDir (cache);
+-
+-    new = FcDirCacheBuild (set, dir, dir_stat, dirs);
+-    FcFontSetDestroy (set);
+-
+-    return new;
+-}
+-
+ /* write serialized state to the cache file */
+ FcBool
+ FcDirCacheWrite (FcCache *cache, FcConfig *config)
+diff --git a/src/fcdir.c b/src/fcdir.c
+index 3bcd0b8..b040a28 100644
+--- a/src/fcdir.c
++++ b/src/fcdir.c
+@@ -130,12 +130,7 @@ FcFileScanConfig (FcFontSet	*set,
+     if (FcFileIsDir (file))
+ 	return FcStrSetAdd (dirs, file);
+     else
+-    {
+-	if (set)
+-	    return FcFileScanFontConfig (set, blanks, file, config);
+-	else
+-	    return FcTrue;
+-    }
++	return FcFileScanFontConfig (set, blanks, file, config);
+ }
+ 
+ FcBool
+@@ -311,45 +306,6 @@ FcDirCacheScan (const FcChar8 *dir, FcConfig *config)
+     return cache;
+ }
+ 
+-FcCache *
+-FcDirCacheRescan (const FcChar8 *dir, FcConfig *config)
+-{
+-    FcCache *cache = FcDirCacheLoad (dir, config, NULL);
+-    FcCache *new = NULL;
+-    struct stat dir_stat;
+-    FcStrSet *dirs;
+-
+-    if (!cache)
+-	return NULL;
+-    if (FcStatChecksum (dir, &dir_stat) < 0)
+-	goto bail;
+-    dirs = FcStrSetCreate ();
+-    if (!dirs)
+-	goto bail;
+-
+-    /*
+-     * Scan the dir
+-     */
+-    if (!FcDirScanConfig (NULL, dirs, NULL, dir, FcTrue, config))
+-	goto bail1;
+-    /*
+-     * Rebuild the cache object
+-     */
+-    new = FcDirCacheRebuild (cache, &dir_stat, dirs);
+-    if (!new)
+-	goto bail1;
+-    FcDirCacheUnload (cache);
+-    /*
+-     * Write out the cache file, ignoring any troubles
+-     */
+-    FcDirCacheWrite (new, config);
+-
+-bail1:
+-    FcStrSetDestroy (dirs);
+-bail:
+-    return new;
+-}
+-
+ /*
+  * Read (or construct) the cache for a directory
+  */
+diff --git a/src/fcfs.c b/src/fcfs.c
+index 21c6c7c..941abba 100644
+--- a/src/fcfs.c
++++ b/src/fcfs.c
+@@ -122,28 +122,6 @@ FcFontSetSerialize (FcSerialize *serialize, const FcFontSet * s)
+ 
+     return s_serialize;
+ }
+-
+-FcFontSet *
+-FcFontSetDeserialize (const FcFontSet *set)
+-{
+-    int i;
+-    FcFontSet *new = FcFontSetCreate ();
+-
+-    if (!new)
+-	return NULL;
+-    for (i = 0; i < set->nfont; i++)
+-    {
+-	if (!FcFontSetAdd (new, FcPatternDuplicate (FcFontSetFont (set, i))))
+-	    goto bail;
+-    }
+-
+-    return new;
+-bail:
+-    FcFontSetDestroy (new);
+-
+-    return NULL;
+-}
+-
+ #define __fcfs__
+ #include "fcaliastail.h"
+ #undef __fcfs__
+diff --git a/src/fcint.h b/src/fcint.h
+index cdf2dab..362ea6f 100644
+--- a/src/fcint.h
++++ b/src/fcint.h
+@@ -567,9 +567,6 @@ FcDirCacheScan (const FcChar8 *dir, FcConfig *config);
+ FcPrivate FcCache *
+ FcDirCacheBuild (FcFontSet *set, const FcChar8 *dir, struct stat *dir_stat, FcStrSet *dirs);
+ 
+-FcPrivate FcCache *
+-FcDirCacheRebuild (FcCache *cache, struct stat *dir_stat, FcStrSet *dirs);
+-
+ FcPrivate FcBool
+ FcDirCacheWrite (FcCache *cache, FcConfig *config);
+ 
+@@ -841,9 +838,6 @@ FcFontSetSerializeAlloc (FcSerialize *serialize, const FcFontSet *s);
+ FcPrivate FcFontSet *
+ FcFontSetSerialize (FcSerialize *serialize, const FcFontSet * s);
+ 
+-FcPrivate FcFontSet *
+-FcFontSetDeserialize (const FcFontSet *set);
+-
+ /* fchash.c */
+ FcPrivate FcChar8 *
+ FcHashGetSHA256Digest (const FcChar8 *input_strings,
+diff --git a/src/fcpat.c b/src/fcpat.c
+index 986cca3..0614ac2 100644
+--- a/src/fcpat.c
++++ b/src/fcpat.c
+@@ -33,7 +33,6 @@ FcPatternCreate (void)
+     p = (FcPattern *) malloc (sizeof (FcPattern));
+     if (!p)
+ 	return 0;
+-    memset (p, 0, sizeof (FcPattern));
+     p->num = 0;
+     p->size = 0;
+     p->elts_offset = FcPtrToOffset (p, NULL);
+@@ -1311,7 +1310,6 @@ FcValueListSerialize (FcSerialize *serialize, const FcValueList *vl)
+     }
+     return head_serialized;
+ }
+-
+ #define __fcpat__
+ #include "fcaliastail.h"
+ #include "fcftaliastail.h"
\ No newline at end of file
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to