This patch series adds a registry for user interfaces (aka displays),
adds support for user interface modules and allows to build sdl, gtk
and curses as modules. Especially gtk cuts down the number of shared
libraries qemu links against by a significant amount.
Note one: Modules are disabled by default, so configure with
--enable-modules to test this.
Note two: Qemu build system doesn't rebuild object files when
the compiler flags change. You might see build failures
when enabling modules without "make clean" because of this,
due to non-modular object files being built without -fPIC.
v2:
- fix build issue for curses module (unicore32 uses curses directly).
- fix build issue for sdl module (config symbol clash with sdl audio).
Gerd Hoffmann (13):
console: add qemu display registry, add gtk
sdl: switch over to new display registry
cocoa: switch over to new display registry
curses: switch over to new display registry
egl-headless: switch over to new display registry
console: add and use qemu_display_find_default
console: add ui module loading support
configure: add X11 vars to config-host.mak
configure: opengl doesn't depend on x11
ui/gtk: build as module
ui/curses: build as module
audio: rename CONFIG_* to CONFIG_AUDIO_*
ui/sdl: build as module
configure | 31 +++++++++--------
Makefile.objs | 1 +
audio/audio_int.h | 2 +-
include/qemu/module.h | 1 +
include/ui/console.h | 75 +++++++-----------------------------------
ui/console.c | 59 +++++++++++++++++++++++++++++++++
ui/curses.c | 14 +++++++-
ui/egl-headless.c | 20 ++++++++++-
ui/gtk.c | 17 ++++++++--
ui/sdl.c | 24 +++++++-------
ui/sdl2.c | 17 ++++++++--
vl.c | 74 +++++++----------------------------------
audio/Makefile.objs | 12 +++----
target/unicore32/Makefile.objs | 4 +++
ui/Makefile.objs | 31 ++++++++++-------
ui/cocoa.m | 14 +++++++-
16 files changed, 220 insertions(+), 176 deletions(-)
--
2.9.3