[gnome-builder] build: make webkit dependency optional



commit 17323b365b738009fe42f367e672c702816ac4cb
Author: Christian Hergert <chergert redhat com>
Date:   Wed Apr 27 20:29:03 2016 -0700

    build: make webkit dependency optional
    
    This uses an embedded plugin that will fail to load if we did not link
    in support for webkit. Plugins like devhelp and html-preview should rely
    on this plugin as a dependency.

 configure.ac                             |   29 ++++++++++++++++++++++++++---
 libide/Makefile.am                       |    7 +++++++
 libide/resources/libide.gresource.xml    |    4 ++++
 libide/webkit/ide-webkit.c               |   26 ++++++++++++++++++++++++++
 libide/webkit/webkit.plugin              |    9 +++++++++
 plugins/devhelp/devhelp.plugin           |    2 +-
 plugins/html-preview/html-preview.plugin |    1 +
 7 files changed, 74 insertions(+), 4 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 06426df..a932583 100644
--- a/configure.ac
+++ b/configure.ac
@@ -191,7 +191,6 @@ m4_define([pygobject_required_version], [3.19.3])
 m4_define([libxml_required_version], [2.9.0])
 m4_define([pangoft2_required_version], [1.38.0])
 m4_define([peas_required_version], [1.18.0])
-m4_define([webkit_required_version], [2.12.0])
 
 PKG_CHECK_MODULES(EGG,      [glib-2.0 >= glib_required_version
                              gmodule-2.0 >= glib_required_version
@@ -206,8 +205,7 @@ PKG_CHECK_MODULES(LIBIDE,   [gio-2.0 >= glib_required_version
                              gtksourceview-3.0 >= gtksourceview_required_version
                              libpeas-1.0 >= peas_required_version
                              libxml-2.0 >= libxml_required_version
-                             pangoft2 >= pangoft2_required_version
-                             webkit2gtk-4.0 >= webkit_required_version])
+                             pangoft2 >= pangoft2_required_version])
 PKG_CHECK_MODULES(NAUTILUS, [glib-2.0 >= glib_required_version
                              gtk+-3.0 >= gtk_required_version])
 PKG_CHECK_MODULES(PANEL_GTK,[gtk+-3.0 >= gtk_required_version])
@@ -223,6 +221,30 @@ PKG_CHECK_MODULES(XML,      [gio-2.0 >= glib_required_version
 
 
 dnl ***********************************************************************
+dnl Check if we have WebKit support
+dnl ***********************************************************************
+m4_define([webkit_required_version], [2.12.0])
+AC_ARG_ENABLE([webkit],
+              [AS_HELP_STRING([--enable-webkit=@<:@yes/no/auto@:>@],
+                              [Build with support for webkit.])],
+              [enable_webkit=$enableval],
+              [enable_webkit=auto])
+AS_IF([test "$enable_webkit" != no],[
+       PKG_CHECK_MODULES(WEBKIT,
+                         [webkit2gtk-4.0 >= webkit_required_version],
+                         [have_webkit=yes],
+                         [have_webkit=no])
+
+       AS_IF([test "$enable_webkit" = "yes" && "$have_webkit" = "no"],[
+              AC_MSG_ERROR([--enable-webkit requires webkit2gtk-4.0 >= webkit_required_version])
+       ])
+
+       enable_webkit=$have_webkit
+])
+AM_CONDITIONAL(ENABLE_WEBKIT, [test "x$enable_webkit" = "xyes"])
+
+
+dnl ***********************************************************************
 dnl Check for Required Python
 dnl ***********************************************************************
 enable_python_scripting=no
@@ -523,6 +545,7 @@ echo "  Prefix ............................... : ${prefix}"
 echo "  Libdir ............................... : ${libdir}"
 echo "  Optimized Build ...................... : ${enable_optimizations}"
 echo "  rdtscp ............................... : ${enable_rdtscp}"
+echo "  WebKit ............................... : ${enable_webkit}"
 echo ""
 echo " Development Options"
 echo ""
diff --git a/libide/Makefile.am b/libide/Makefile.am
index 4c204dc..bed6f52 100644
--- a/libide/Makefile.am
+++ b/libide/Makefile.am
@@ -508,6 +508,13 @@ libide_1_0_la_LIBADD = \
        $(top_builddir)/contrib/xml/libxml.la \
        $(NULL)
 
+if ENABLE_WEBKIT
+libide_1_0_la_SOURCES += webkit/ide-webkit.c
+libide_1_0_la_CFLAGS += $(WEBKIT_CFLAGS)
+libide_1_0_la_LIBADD += $(WEBKIT_LIBS)
+endif
+
+
 libide_1_0_la_built_sources = \
        resources/ide-resources.c \
        resources/ide-resources.h \
diff --git a/libide/resources/libide.gresource.xml b/libide/resources/libide.gresource.xml
index 5117d97..b1691d3 100644
--- a/libide/resources/libide.gresource.xml
+++ b/libide/resources/libide.gresource.xml
@@ -85,4 +85,8 @@
   <gresource prefix="/org/gnome/builder/plugins/directory">
     <file alias="directory.plugin">../directory/directory.plugin</file>
   </gresource>
+
+  <gresource prefix="/org/gnome/builder/plugins/webkit">
+    <file alias="webkit.plugin">../webkit/webkit.plugin</file>
+  </gresource>
 </gresources>
diff --git a/libide/webkit/ide-webkit.c b/libide/webkit/ide-webkit.c
new file mode 100644
index 0000000..ccce9a5
--- /dev/null
+++ b/libide/webkit/ide-webkit.c
@@ -0,0 +1,26 @@
+/* ide-webkit.c
+ *
+ * Copyright (C) 2016 Christian Hergert <chergert redhat com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <libpeas/peas.h>
+#include <webkit2/webkit2.h>
+
+void
+ide_webkit_register_types (PeasObjectModule *module)
+{
+  g_type_ensure (WEBKIT_TYPE_WEB_VIEW);
+}
diff --git a/libide/webkit/webkit.plugin b/libide/webkit/webkit.plugin
new file mode 100644
index 0000000..67b6a03
--- /dev/null
+++ b/libide/webkit/webkit.plugin
@@ -0,0 +1,9 @@
+[Plugin]
+Module=webkit
+Name=WebKit
+Description=Support for WebKit
+Authors=Christian Hergert <christian hergert me>
+Copyright=Copyright © 2016 Christian Hergert
+Builtin=true
+Hidden=true
+Embedded=ide_webkit_register_types
diff --git a/plugins/devhelp/devhelp.plugin b/plugins/devhelp/devhelp.plugin
index bed5eb8..d5d4359 100644
--- a/plugins/devhelp/devhelp.plugin
+++ b/plugins/devhelp/devhelp.plugin
@@ -4,5 +4,5 @@ Name=Devhelp
 Description=Integration with devhelp documentation
 Authors=Christian Hergert <christian hergert me>
 Copyright=Copyright © 2015 Christian Hergert
-Depends=editor
+Depends=editor;webkit
 Builtin=true
diff --git a/plugins/html-preview/html-preview.plugin b/plugins/html-preview/html-preview.plugin
index adeb103..6b4bfd4 100644
--- a/plugins/html-preview/html-preview.plugin
+++ b/plugins/html-preview/html-preview.plugin
@@ -7,3 +7,4 @@ Authors=Christian Hergert <christian hergert me>
 Copyright=Copyright © 2015 Christian Hergert
 Builtin=true
 Hidden=true
+Depends=webkit


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