[libsoup] meson: Check TLS support only when external glib dependency is available



commit f3eb1887a25ee1c43360d71a7c43dd94fea96518
Author: Seungha Yang <seungha yang navercorp com>
Date:   Sun Apr 21 16:30:10 2019 +0900

    meson: Check TLS support only when external glib dependency is available
    
    meson does not allow compile with internal dependency (i.e., fallback dependency)

 examples/meson.build |  2 +-
 libsoup/meson.build  |  6 +++---
 meson.build          | 34 ++++++++++++++++++++--------------
 3 files changed, 24 insertions(+), 18 deletions(-)
---
diff --git a/examples/meson.build b/examples/meson.build
index b290afca..a553aac3 100644
--- a/examples/meson.build
+++ b/examples/meson.build
@@ -1,5 +1,5 @@
 deps = [
-  glib_dep,
+  glib_deps,
   libsoup_dep
 ]
 
diff --git a/libsoup/meson.build b/libsoup/meson.build
index 861cba2f..ed6efdbd 100644
--- a/libsoup/meson.build
+++ b/libsoup/meson.build
@@ -216,7 +216,7 @@ libsoup_c_args  = [
 ]
 
 deps = [
-  glib_dep,
+  glib_deps,
   libxml_dep,
   sqlite_dep,
   libpsl_dep,
@@ -236,7 +236,7 @@ libsoup = library('soup-@0@'.format(apiversion),
   dependencies : deps)
 
 pkg.generate(libsoup,
-  libraries : glib_dep,
+  libraries : glib_deps,
   name : meson.project_name(),
   description : 'A glib-based HTTP library',
   filebase : libsoup_api_name,
@@ -246,7 +246,7 @@ pkg.generate(libsoup,
 libsoup_dep = declare_dependency(link_with : libsoup,
   include_directories : configinc,
   sources : soup_enum_h,
-  dependencies : [ platform_deps, glib_dep ])
+  dependencies : [ platform_deps, glib_deps ])
 
 if enable_gnome
   soup_gnome_api_name = 'soup-gnome-' + apiversion
diff --git a/meson.build b/meson.build
index 120c9c01..0e4a1dcf 100644
--- a/meson.build
+++ b/meson.build
@@ -68,12 +68,14 @@ endif
 add_project_arguments(common_flags, language : 'c')
 
 glib_required_version = '>= 2.38'
-glib_dep = [dependency('glib-2.0', version : glib_required_version,
-                       fallback: ['glib', 'libglib_dep']),
-            dependency('gobject-2.0', version : glib_required_version,
-                       fallback: ['glib', 'libgobject_dep']),
-            dependency('gio-2.0', version : glib_required_version,
-                       fallback: ['glib', 'libgio_dep'])]
+glib_dep = dependency('glib-2.0', version : glib_required_version,
+                       fallback: ['glib', 'libglib_dep'])
+gobject_dep = dependency('gobject-2.0', version : glib_required_version,
+                       fallback: ['glib', 'libgobject_dep'])
+gio_dep = dependency('gio-2.0', version : glib_required_version,
+                       fallback: ['glib', 'libgio_dep'])
+
+glib_deps = [glib_dep, gobject_dep, gio_dep]
 
 sqlite_dep = dependency('sqlite3', required: false,
                         fallback: ['sqlite', 'sqlite_dep'])
@@ -129,14 +131,18 @@ endif
 ###################
 enable_tls_check = get_option('tls_check')
 if enable_tls_check
-  check_gio_tls_src = '''#include <gio/gio.h>
-  int main(void) {
-    return !g_tls_backend_supports_tls (g_tls_backend_get_default ());
-  }
-  '''
-
-  assert(cc.compiles(check_gio_tls_src, name : 'GIO has real TLS support', dependencies : glib_dep),
-         'libsoup requires glib-networking or glib-openssl for TLS support')
+  if gio_dep.type_name() == 'internal'
+    warning('TLS check was enabled but required dependency is internal')
+  else
+    check_gio_tls_src = '''#include <gio/gio.h>
+    int main(void) {
+      return !g_tls_backend_supports_tls (g_tls_backend_get_default ());
+    }
+    '''
+
+    assert(cc.compiles(check_gio_tls_src, name : 'GIO has real TLS support', dependencies : glib_deps),
+          'libsoup requires glib-networking or glib-openssl for TLS support')
+  endif
 endif
 
 #################################


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