ec14f888b8
Prevously CONFIG_VTE was not required to build QEMU with GTK UI support as not all platforms have VTE available (in particular Windows). Remove this requirement from the meson build system to enable QEMU to be built with GTK UI support for Windows once again. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Reviewed-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
117 lines
3.4 KiB
Meson
117 lines
3.4 KiB
Meson
softmmu_ss.add(pixman)
|
|
specific_ss.add(pixman) # for the include path
|
|
|
|
softmmu_ss.add(files(
|
|
'console.c',
|
|
'cursor.c',
|
|
'input-keymap.c',
|
|
'input-legacy.c',
|
|
'input-barrier.c',
|
|
'input.c',
|
|
'kbd-state.c',
|
|
'keymaps.c',
|
|
'qemu-pixman.c',
|
|
))
|
|
|
|
softmmu_ss.add(when: 'CONFIG_LINUX', if_true: files('input-linux.c'))
|
|
softmmu_ss.add(when: 'CONFIG_SPICE', if_true: files('spice-core.c', 'spice-input.c', 'spice-display.c'))
|
|
softmmu_ss.add(when: [cocoa, 'CONFIG_COCOA'], if_true: files('cocoa.m'))
|
|
|
|
vnc_ss = ss.source_set()
|
|
vnc_ss.add(files(
|
|
'vnc.c',
|
|
'vnc-enc-zlib.c',
|
|
'vnc-enc-hextile.c',
|
|
'vnc-enc-tight.c',
|
|
'vnc-palette.c',
|
|
'vnc-enc-zrle.c',
|
|
'vnc-auth-vencrypt.c',
|
|
'vnc-ws.c',
|
|
'vnc-jobs.c',
|
|
))
|
|
vnc_ss.add(zlib, png, jpeg)
|
|
vnc_ss.add(when: sasl, if_true: files('vnc-auth-sasl.c'))
|
|
softmmu_ss.add_all(when: vnc, if_true: vnc_ss)
|
|
softmmu_ss.add(when: vnc, if_false: files('vnc-stubs.c'))
|
|
softmmu_ss.add(when: [opengl, 'CONFIG_OPENGL'], if_true: files('shader.c', 'console-gl.c', 'egl-helpers.c', 'egl-context.c'))
|
|
softmmu_ss.add(when: [opengl, 'CONFIG_OPENGL_DMABUF'], if_true: files('egl-headless.c'))
|
|
|
|
ui_modules = {}
|
|
|
|
if config_host.has_key('CONFIG_CURSES')
|
|
curses_ss = ss.source_set()
|
|
curses_ss.add(when: [curses, iconv], if_true: files('curses.c'))
|
|
ui_modules += {'curses' : curses_ss}
|
|
endif
|
|
|
|
if config_host.has_key('CONFIG_GTK')
|
|
softmmu_ss.add(when: 'CONFIG_WIN32', if_true: files('win32-kbd-hook.c'))
|
|
|
|
gtk_ss = ss.source_set()
|
|
gtk_ss.add(gtk, vte, files('gtk.c'))
|
|
gtk_ss.add(when: [x11, 'CONFIG_X11'], if_true: files('x_keymap.c'))
|
|
gtk_ss.add(when: [opengl, 'CONFIG_OPENGL'], if_true: files('gtk-egl.c'))
|
|
gtk_ss.add(when: [opengl, 'CONFIG_GTK_GL'], if_true: files('gtk-gl-area.c'))
|
|
ui_modules += {'gtk' : gtk_ss}
|
|
endif
|
|
|
|
if sdl.found()
|
|
softmmu_ss.add(when: 'CONFIG_WIN32', if_true: files('win32-kbd-hook.c'))
|
|
|
|
sdl_ss = ss.source_set()
|
|
sdl_ss.add(sdl, sdl_image, pixman, glib, files(
|
|
'sdl2-2d.c',
|
|
'sdl2-input.c',
|
|
'sdl2.c',
|
|
))
|
|
sdl_ss.add(when: [opengl, 'CONFIG_OPENGL'], if_true: files('sdl2-gl.c'))
|
|
sdl_ss.add(when: [x11, 'CONFIG_X11'], if_true: files('x_keymap.c'))
|
|
ui_modules += {'sdl' : sdl_ss}
|
|
endif
|
|
|
|
if config_host.has_key('CONFIG_SPICE') and config_host.has_key('CONFIG_GIO')
|
|
spice_ss = ss.source_set()
|
|
spice_ss.add(spice, gio, files('spice-app.c'))
|
|
ui_modules += {'spice-app': spice_ss}
|
|
endif
|
|
|
|
keymap_gen = find_program('keycodemapdb/tools/keymap-gen')
|
|
|
|
keymaps = [
|
|
['atset1', 'qcode'],
|
|
['linux', 'qcode'],
|
|
['qcode', 'atset1'],
|
|
['qcode', 'atset2'],
|
|
['qcode', 'atset3'],
|
|
['qcode', 'linux'],
|
|
['qcode', 'qnum'],
|
|
['qcode', 'sun'],
|
|
['qnum', 'qcode'],
|
|
['usb', 'qcode'],
|
|
['win32', 'qcode'],
|
|
['x11', 'qcode'],
|
|
['xorgevdev', 'qcode'],
|
|
['xorgkbd', 'qcode'],
|
|
['xorgxquartz', 'qcode'],
|
|
['xorgxwin', 'qcode'],
|
|
['osx', 'qcode'],
|
|
]
|
|
|
|
if have_system or xkbcommon.found()
|
|
foreach e : keymaps
|
|
output = 'input-keymap-@0@-to-@1@.c.inc'.format(e[0], e[1])
|
|
genh += custom_target(output,
|
|
output: output,
|
|
capture: true,
|
|
input: files('keycodemapdb/data/keymaps.csv'),
|
|
command: [python.full_path(), files('keycodemapdb/tools/keymap-gen'),
|
|
'--lang', 'glib2',
|
|
'--varname', 'qemu_input_map_@0@_to_@1@'.format(e[0], e[1]),
|
|
'code-map', '@INPUT0@', e[0], e[1]])
|
|
endforeach
|
|
endif
|
|
|
|
subdir('shader')
|
|
|
|
modules += {'ui': ui_modules}
|