[gnome-builder] webkit: make webkit dependency automatic



commit b06ab9e50d2d73012822c3f12b75f28eac2337e0
Author: Christian Hergert <chergert redhat com>
Date:   Mon Nov 23 14:12:56 2020 -0800

    webkit: make webkit dependency automatic
    
    We don't have to have webkit to be able to build things, like we used to.
    
    This will make it easier to build things on macOS where we are currently broken.

 meson.build                      |  6 +++++-
 src/libide/gui/ide-marked-view.c | 13 ++++++++++++-
 src/libide/meson.build           |  5 ++++-
 src/meson.build                  |  7 +++++--
 src/plugins/devhelp/meson.build  |  4 ++++
 src/plugins/meson.build          |  5 ++++-
 6 files changed, 34 insertions(+), 6 deletions(-)
---
diff --git a/meson.build b/meson.build
index c45ab1e83..e6dadef82 100644
--- a/meson.build
+++ b/meson.build
@@ -264,9 +264,13 @@ libpeas_dep = dependency('libpeas-1.0', version: '>= 1.22.0')
 libportal_dep = dependency('libportal', version: '>= 0.3', required: false)
 libtemplate_glib_dep = dependency('template-glib-1.0', version: '>= 3.28.0')
 libvte_dep = dependency('vte-2.91', version: '>= 0.40.2')
-libwebkit_dep = dependency('webkit2gtk-4.0', version: '>= 2.26')
+libwebkit_dep = dependency('webkit2gtk-4.0', version: '>= 2.26', required: false)
 libxml2_dep = dependency('libxml-2.0', version: '>= 2.9.0')
 
+if libwebkit_dep.found()
+  config_h.set10('HAVE_WEBKIT', 1)
+endif
+
 check_functions = [
   # pty
   ['HAVE_GRANTPT', 'grantpt'],
diff --git a/src/libide/gui/ide-marked-view.c b/src/libide/gui/ide-marked-view.c
index 5fec506f3..7fb911670 100644
--- a/src/libide/gui/ide-marked-view.c
+++ b/src/libide/gui/ide-marked-view.c
@@ -22,7 +22,11 @@
 
 #include "config.h"
 
-#include <webkit2/webkit2.h>
+#include <glib/gi18n.h>
+
+#ifdef HAVE_WEBKIT
+# include <webkit2/webkit2.h>
+#endif
 
 #include "gs-markdown-private.h"
 #include "ide-marked-view.h"
@@ -78,10 +82,17 @@ ide_marked_view_new (IdeMarkedContent *content)
       break;
 
     case IDE_MARKED_KIND_HTML:
+#ifdef HAVE_WEBKIT
       child = g_object_new (WEBKIT_TYPE_WEB_VIEW,
                             "visible", TRUE,
                             NULL);
       webkit_web_view_load_html (WEBKIT_WEB_VIEW (child), markup, NULL);
+#else
+      child = g_object_new (GTK_TYPE_LABEL,
+                            "label", _("Cannot load HTML. Missing WebKit support."),
+                            "visible", TRUE,
+                            NULL);
+#endif
       break;
 
     case IDE_MARKED_KIND_MARKDOWN:
diff --git a/src/libide/meson.build b/src/libide/meson.build
index 9223a37f4..14ca19775 100644
--- a/src/libide/meson.build
+++ b/src/libide/meson.build
@@ -19,7 +19,10 @@ subdir('sourceview')
 subdir('lsp')
 subdir('editor')
 subdir('greeter')
-subdir('webkit')
+if libwebkit_dep.found()
+  subdir('webkit')
+endif
+
 subdir('tree')
 
 py_installation = pymod.find_installation('python3')
diff --git a/src/meson.build b/src/meson.build
index 08ae4331e..9d24f14d9 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -44,7 +44,6 @@ gnome_builder_deps = [
   libide_themes_dep,
   libide_threading_dep,
   libide_vcs_dep,
-  libide_webkit_dep,
   libide_tree_dep,
 ]
 
@@ -67,11 +66,15 @@ gnome_builder_static = [
   libide_threading,
   libide_tree,
   libide_vcs,
-  libide_webkit,
 
   plugins,
 ]
 
+if libwebkit_dep.found()
+  gnome_builder_deps += [libide_webkit_dep]
+  gnome_builder_static += [libide_webkit]
+endif
+
 if libsysprof_capture.found()
   gnome_builder_deps += libsysprof_capture
 endif
diff --git a/src/plugins/devhelp/meson.build b/src/plugins/devhelp/meson.build
index e4cbc0223..359161db1 100644
--- a/src/plugins/devhelp/meson.build
+++ b/src/plugins/devhelp/meson.build
@@ -1,5 +1,9 @@
 if get_option('plugin_devhelp')
 
+if not libwebkit_dep.found()
+  error('WebKit must be enabled for devhelp support')
+endif
+
 plugins_deps += [
   dependency('libdevhelp-3.0', version: '>=3.25.1'),
 ]
diff --git a/src/plugins/meson.build b/src/plugins/meson.build
index d07027da2..5f74e336b 100644
--- a/src/plugins/meson.build
+++ b/src/plugins/meson.build
@@ -30,9 +30,12 @@ plugins_deps = [
   libide_threading_dep,
   libide_tree_dep,
   libide_vcs_dep,
-  libide_webkit_dep,
 ]
 
+if libwebkit_dep.found()
+  plugin_deps += [libide_webkit_dep]
+endif
+
 subdir('auto-save')
 subdir('autotools')
 subdir('beautifier')


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