[gtk/gtk-3-24: 3/4] Revert "meson: simplify builtin_immodules build option"




commit 208e115368d25cc12c60bae009bcec858bed5216
Author: David King <amigadave amigadave com>
Date:   Tue Dec 21 14:04:40 2021 +0000

    Revert "meson: simplify builtin_immodules build option"
    
    This reverts commit 749a58ab26bc01381d66ccefdd3aa42a34353e70.
    
    This maintains feature parity with the autotools build. To achieve the
    equivalent of --with-included-immodules=wayland,
    -Dbuiltin_immodules=wayland,waylandgtk can be used instead.

 gtk/meson.build           |  2 +-
 meson.build               | 30 ++++++++++++++++++++++++------
 meson_options.txt         |  4 ++--
 modules/input/meson.build |  2 +-
 4 files changed, 28 insertions(+), 10 deletions(-)
---
diff --git a/gtk/meson.build b/gtk/meson.build
index 9754686cca..12aa7db5c3 100644
--- a/gtk/meson.build
+++ b/gtk/meson.build
@@ -959,7 +959,7 @@ foreach l: immodules
   cond = l.get(2, true)
   cflags = l.get(3, [])
 
-  if cond and builtin_immodules
+  if cond and (builtin_immodules.contains(name) or builtin_all_immodules)
     gtk_cargs += ['-DINCLUDE_IM_@0@'.format(name.underscorify())]
     mod = static_library('staticimmodule-@0@'.format(name),
                          sources + gtk_dep_sources,
diff --git a/meson.build b/meson.build
index 16d1597116..15cca3de15 100644
--- a/meson.build
+++ b/meson.build
@@ -499,6 +499,8 @@ else
   cdata.set_quoted('ISO_CODES_PREFIX', get_option('prefix'))
 endif
 
+backend_immodules = []
+
 pc_gdk_extra_libs = []
 
 cairo_found_type = cairo_dep.type_name()
@@ -554,6 +556,7 @@ if wayland_enabled
   wlprotocolsdep = dependency('wayland-protocols', version: wayland_proto_req)
   wlcursordep    = dependency('wayland-cursor', version: wayland_req)
   wlegldep       = dependency('wayland-egl')
+  backend_immodules += ['wayland']
 
   wayland_pkgs = [
     'wayland-client', wayland_req,
@@ -578,6 +581,8 @@ if x11_enabled
   fontconfig_dep = dependency('fontconfig', fallback: ['fontconfig', 'fontconfig_dep'])
   atkbridge_dep  = dependency('atk-bridge-2.0', version: at_spi2_atk_req)
 
+  backend_immodules += ['xim']
+
   x11_pkgs = ['fontconfig', 'x11', 'xext', 'xi', 'xrandr']
 
   if xcursor_dep.found()
@@ -656,10 +661,12 @@ endif
 
 if broadway_enabled
   pc_gdk_extra_libs += ['-lz']
+  backend_immodules += ['broadway']
 endif
 
 if quartz_enabled
   pc_gdk_extra_libs += ['-Wl,-framework,Cocoa', '-Wl,-framework,Carbon', '-Wl,-framework,CoreGraphics']
+  backend_immodules += ['quartz']
 endif
 
 extra_demo_ldflags = []
@@ -674,6 +681,7 @@ if win32_enabled
     pc_gdk_extra_libs += ['-Wl,-luuid']
   endif
   pc_gdk_extra_libs += ['-lwinmm', '-ldwmapi', '-lsetupapi', '-lcfgmgr32']
+  backend_immodules += ['ime']
 
   # Check whether libepoxy is built with EGL support on Windows
   win32_has_egl = epoxy_dep.get_variable(
@@ -684,20 +692,30 @@ endif
 
 # IMModules stuff-unfortunately we need to put items here
 # as they can be built as modules or built directly into GTK
+builtin_all_immodules = false
+
 builtin_modules_opt = get_option('builtin_immodules')
-if builtin_modules_opt == 'auto'
+builtin_immodules = []
+
+if builtin_modules_opt == ''
   if os_win32
     # Current MSVC projects build all immodules directly into GTK by default,
     # as does the mingw autotools build
     message('IMModules are built into GTK for MSVC builds by default')
-    builtin_immodules = true
+    builtin_immodules = ['all']
   else
-    builtin_immodules = false
+    builtin_immodules = ['none']
   endif
-elif builtin_modules_opt == 'yes'
-  builtin_immodules = true
 else
-  builtin_immodules = false
+  builtin_immodules = builtin_modules_opt.split(',')
+endif
+
+if builtin_immodules.contains('none')
+  builtin_immodules = []
+elif builtin_immodules.contains('all')
+  builtin_all_immodules = true
+elif builtin_immodules.contains('backend')
+  builtin_immodules += backend_immodules
 endif
 
 proto_sources = [
diff --git a/meson_options.txt b/meson_options.txt
index 1ca55b1467..94099aa01e 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -45,5 +45,5 @@ option('installed_tests', type: 'boolean', value: 'false',
   description : 'enable installed tests')
 
 # input modules
-option('builtin_immodules', type: 'combo', choices : ['yes', 'no', 'auto'],
-       value: 'auto', description: 'Build immodules into GTK so/DLL')
+option('builtin_immodules', type: 'string',
+       value: '', description: 'Build specified immodules into GTK so/DLL (comma-separated list), "all", 
"none" or "backend"')
diff --git a/modules/input/meson.build b/modules/input/meson.build
index 7b201af894..95534b05ec 100644
--- a/modules/input/meson.build
+++ b/modules/input/meson.build
@@ -7,7 +7,7 @@ foreach l: immodules
   cond = l.get(2, true)
   cflags = l.get(3, [])
 
-  if cond and not builtin_immodules
+  if cond and not (builtin_immodules.contains(name) or builtin_all_immodules)
     shared_module('im-@0@'.format(name),
                   immod_sources,
                   c_args: common_cflags + cflags,


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