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)
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),
sources + gtk_dep_sources,
dependencies: gtk_deps + [libgdk_dep] ,

View File

@ -468,8 +468,6 @@ else
cdata.set_quoted('ISO_CODES_PREFIX', get_option('prefix'))
endif
backend_immodules = []
pc_gdk_extra_libs = []
cairo_found_type = cairo_dep.type_name()
@ -525,7 +523,6 @@ 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,
@ -551,8 +548,6 @@ if x11_enabled
fontconfig_dep = dependency('fontconfig', fallback: ['fontconfig', 'fontconfig_dep'])
atkbridge_dep = dependency('atk-bridge-2.0', version: atk_req)
backend_immodules += ['xim']
x11_pkgs = ['fontconfig', 'x11', 'xext', 'xi', 'xrandr']
if xcursor_dep.found()
@ -623,12 +618,10 @@ endif
if broadway_enabled
pc_gdk_extra_libs += ['-lz']
backend_immodules += ['broadway']
endif
if quartz_enabled
pc_gdk_extra_libs += ['-framework Cocoa', '-framework Carbon', '-framework CoreGraphics']
backend_immodules += ['quartz']
endif
extra_demo_ldflags = []
@ -643,7 +636,6 @@ 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 = cc.links(
@ -662,30 +654,20 @@ 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')
builtin_immodules = []
if builtin_modules_opt == ''
if builtin_modules_opt == 'auto'
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 = ['all']
builtin_immodules = true
else
builtin_immodules = ['none']
builtin_immodules = false
endif
elif builtin_modules_opt == 'yes'
builtin_immodules = true
else
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
builtin_immodules = false
endif
proto_sources = [

View File

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

View File

@ -7,7 +7,7 @@ foreach l: immodules
cond = l.get(2, true)
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),
immod_sources,
c_args: common_cflags + cflags,