From 208e115368d25cc12c60bae009bcec858bed5216 Mon Sep 17 00:00:00 2001 From: David King Date: Tue, 21 Dec 2021 14:04:40 +0000 Subject: [PATCH] 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,