meson: simplify builtin_immodules build option

Make it a yes/no/auto combo. "yes" means all modules are built into libgtk,
"no" that none are and "auto" uses the platform defaults, yes on win32,
no otherwise.

If we need more we can always extend it later.
This commit is contained in:
Christoph Reiter 2019-04-05 07:48:56 +02:00
parent 3462fcf9a0
commit 749a58ab26
4 changed files with 10 additions and 28 deletions

View File

@ -951,7 +951,7 @@ foreach l: immodules
cond = l.get(2, true) cond = l.get(2, true)
cflags = l.get(3, []) cflags = l.get(3, [])
if cond and (builtin_immodules.contains(name) or builtin_all_immodules) if cond and builtin_immodules
mod = static_library('staticimmodule-@0@'.format(name), mod = static_library('staticimmodule-@0@'.format(name),
sources + gtk_dep_sources, sources + gtk_dep_sources,
dependencies: gtk_deps + [libgdk_dep] , dependencies: gtk_deps + [libgdk_dep] ,

View File

@ -468,8 +468,6 @@ else
cdata.set_quoted('ISO_CODES_PREFIX', get_option('prefix')) cdata.set_quoted('ISO_CODES_PREFIX', get_option('prefix'))
endif endif
backend_immodules = []
pc_gdk_extra_libs = [] pc_gdk_extra_libs = []
cairo_found_type = cairo_dep.type_name() cairo_found_type = cairo_dep.type_name()
@ -525,7 +523,6 @@ if wayland_enabled
wlprotocolsdep = dependency('wayland-protocols', version: wayland_proto_req) wlprotocolsdep = dependency('wayland-protocols', version: wayland_proto_req)
wlcursordep = dependency('wayland-cursor', version: wayland_req) wlcursordep = dependency('wayland-cursor', version: wayland_req)
wlegldep = dependency('wayland-egl') wlegldep = dependency('wayland-egl')
backend_immodules += ['wayland']
wayland_pkgs = [ wayland_pkgs = [
'wayland-client', wayland_req, 'wayland-client', wayland_req,
@ -551,8 +548,6 @@ if x11_enabled
fontconfig_dep = dependency('fontconfig', fallback: ['fontconfig', 'fontconfig_dep']) fontconfig_dep = dependency('fontconfig', fallback: ['fontconfig', 'fontconfig_dep'])
atkbridge_dep = dependency('atk-bridge-2.0', version: atk_req) atkbridge_dep = dependency('atk-bridge-2.0', version: atk_req)
backend_immodules += ['xim']
x11_pkgs = ['fontconfig', 'x11', 'xext', 'xi', 'xrandr'] x11_pkgs = ['fontconfig', 'x11', 'xext', 'xi', 'xrandr']
if xcursor_dep.found() if xcursor_dep.found()
@ -623,12 +618,10 @@ endif
if broadway_enabled if broadway_enabled
pc_gdk_extra_libs += ['-lz'] pc_gdk_extra_libs += ['-lz']
backend_immodules += ['broadway']
endif endif
if quartz_enabled if quartz_enabled
pc_gdk_extra_libs += ['-framework Cocoa', '-framework Carbon', '-framework CoreGraphics'] pc_gdk_extra_libs += ['-framework Cocoa', '-framework Carbon', '-framework CoreGraphics']
backend_immodules += ['quartz']
endif endif
extra_demo_ldflags = [] extra_demo_ldflags = []
@ -643,7 +636,6 @@ if win32_enabled
pc_gdk_extra_libs += ['-Wl,-luuid'] pc_gdk_extra_libs += ['-Wl,-luuid']
endif endif
pc_gdk_extra_libs += ['-lwinmm', '-ldwmapi', '-lsetupapi', '-lcfgmgr32'] pc_gdk_extra_libs += ['-lwinmm', '-ldwmapi', '-lsetupapi', '-lcfgmgr32']
backend_immodules += ['ime']
# Check whether libepoxy is built with EGL support on Windows # Check whether libepoxy is built with EGL support on Windows
win32_has_egl = cc.links( win32_has_egl = cc.links(
@ -662,30 +654,20 @@ endif
# IMModules stuff-unfortunately we need to put items here # IMModules stuff-unfortunately we need to put items here
# as they can be built as modules or built directly into GTK # as they can be built as modules or built directly into GTK
builtin_all_immodules = false
builtin_modules_opt = get_option('builtin_immodules') builtin_modules_opt = get_option('builtin_immodules')
builtin_immodules = [] if builtin_modules_opt == 'auto'
if builtin_modules_opt == ''
if os_win32 if os_win32
# Current MSVC projects build all immodules directly into GTK by default, # Current MSVC projects build all immodules directly into GTK by default,
# as does the mingw autotools build # as does the mingw autotools build
message('IMModules are built into GTK for MSVC builds by default') message('IMModules are built into GTK for MSVC builds by default')
builtin_immodules = ['all'] builtin_immodules = true
else else
builtin_immodules = ['none'] builtin_immodules = false
endif endif
elif builtin_modules_opt == 'yes'
builtin_immodules = true
else else
builtin_immodules = builtin_modules_opt.split(',') builtin_immodules = false
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 endif
proto_sources = [ proto_sources = [

View File

@ -39,5 +39,5 @@ option('tests', type: 'boolean', value: 'true',
description : 'Build tests') description : 'Build tests')
# input modules # input modules
option('builtin_immodules', type: 'string', option('builtin_immodules', type: 'combo', choices : ['yes', 'no', 'auto'],
value: '', description: 'Build specified immodules into GTK so/DLL (comma-separated list), "all", "none" or "backend"') value: 'auto', description: 'Build immodules into GTK so/DLL')

View File

@ -7,7 +7,7 @@ foreach l: immodules
cond = l.get(2, true) cond = l.get(2, true)
cflags = l.get(3, []) cflags = l.get(3, [])
if cond and not (builtin_immodules.contains(name) or builtin_all_immodules) if cond and not builtin_immodules
shared_module('im-@0@'.format(name), shared_module('im-@0@'.format(name),
immod_sources, immod_sources,
c_args: common_cflags + cflags, c_args: common_cflags + cflags,