1de6cd759SPhilippe Mathieu-Daudésystem_ss.add(pixman) 2c7b64948SPhilippe Mathieu-Daudéspecific_ss.add(when: ['CONFIG_SYSTEM_ONLY'], if_true: pixman) # for the include path 3c7b64948SPhilippe Mathieu-Daudéspecific_ss.add(when: ['CONFIG_SYSTEM_ONLY'], if_true: opengl) # for the include path 4b7612f45SPaolo Bonzini 5de6cd759SPhilippe Mathieu-Daudésystem_ss.add(png) 6de6cd759SPhilippe Mathieu-Daudésystem_ss.add(files( 7660e8d0fSGerd Hoffmann 'clipboard.c', 82b1ccdf4SMarc-André Lureau 'console.c', 92b1ccdf4SMarc-André Lureau 'cursor.c', 106e6ae491SDongwon Kim 'dmabuf.c', 112b1ccdf4SMarc-André Lureau 'input-keymap.c', 122b1ccdf4SMarc-André Lureau 'input-legacy.c', 132b1ccdf4SMarc-André Lureau 'input-barrier.c', 142b1ccdf4SMarc-André Lureau 'input.c', 152b1ccdf4SMarc-André Lureau 'kbd-state.c', 162b1ccdf4SMarc-André Lureau 'keymaps.c', 172b1ccdf4SMarc-André Lureau 'qemu-pixman.c', 185011d262SMarkus Armbruster 'ui-hmp-cmds.c', 199949b06eSMarkus Armbruster 'ui-qmp-cmds.c', 20f6ef71bdSMarc-André Lureau 'util.c', 212b1ccdf4SMarc-André Lureau)) 22600179c3SMarc-André Lureausystem_ss.add(when: pixman, if_true: files('console-vc.c'), if_false: files('console-vc-stubs.c')) 2399997823SMarc-André Lureauif dbus_display 24de6cd759SPhilippe Mathieu-Daudé system_ss.add(files('dbus-module.c')) 2599997823SMarc-André Lureauendif 26de6cd759SPhilippe Mathieu-Daudésystem_ss.add([spice_headers, files('spice-module.c')]) 27de6cd759SPhilippe Mathieu-Daudésystem_ss.add(when: spice_protocol, if_true: files('vdagent.c')) 282b1ccdf4SMarc-André Lureau 29d0cda6f4SPaolo Bonziniif host_os == 'linux' 3053e8868dSPaolo Bonzini system_ss.add(files('input-linux.c', 'udmabuf.c')) 3153e8868dSPaolo Bonziniendif 32de6cd759SPhilippe Mathieu-Daudésystem_ss.add(when: cocoa, if_true: files('cocoa.m')) 332b1ccdf4SMarc-André Lureau 342b1ccdf4SMarc-André Lureauvnc_ss = ss.source_set() 352b1ccdf4SMarc-André Lureauvnc_ss.add(files( 362b1ccdf4SMarc-André Lureau 'vnc.c', 372b1ccdf4SMarc-André Lureau 'vnc-enc-zlib.c', 382b1ccdf4SMarc-André Lureau 'vnc-enc-hextile.c', 392b1ccdf4SMarc-André Lureau 'vnc-enc-tight.c', 402b1ccdf4SMarc-André Lureau 'vnc-palette.c', 412b1ccdf4SMarc-André Lureau 'vnc-enc-zrle.c', 422b1ccdf4SMarc-André Lureau 'vnc-auth-vencrypt.c', 432b1ccdf4SMarc-André Lureau 'vnc-ws.c', 442b1ccdf4SMarc-André Lureau 'vnc-jobs.c', 450bf41cabSGerd Hoffmann 'vnc-clipboard.c', 462b1ccdf4SMarc-André Lureau)) 47*7b1070a7SAkihiko Odakivnc_ss.add(zlib, jpeg) 48a0b93237SPaolo Bonzinivnc_ss.add(when: sasl, if_true: files('vnc-auth-sasl.c')) 4989fd3eabSMarc-André Lureausystem_ss.add_all(when: [vnc, pixman], if_true: vnc_ss) 50de6cd759SPhilippe Mathieu-Daudésystem_ss.add(when: vnc, if_false: files('vnc-stubs.c')) 512b1ccdf4SMarc-André Lureau 522b1ccdf4SMarc-André Lureauui_modules = {} 532b1ccdf4SMarc-André Lureau 545285e593SYonggang Luoif curses.found() 552b1ccdf4SMarc-André Lureau curses_ss = ss.source_set() 56289e12dbSPaolo Bonzini curses_ss.add(when: [curses, iconv], if_true: [files('curses.c'), pixman]) 572b1ccdf4SMarc-André Lureau ui_modules += {'curses' : curses_ss} 582b1ccdf4SMarc-André Lureauendif 592b1ccdf4SMarc-André Lureau 60de6cd759SPhilippe Mathieu-Daudésystem_ss.add(opengl) 6188b6e618SPaolo Bonziniif opengl.found() 62c8263659SGerd Hoffmann opengl_ss = ss.source_set() 6341e0bc3dSMarc-André Lureau opengl_ss.add(gbm, pixman) 6441e0bc3dSMarc-André Lureau opengl_ss.add(when: [opengl], 65c8263659SGerd Hoffmann if_true: files('shader.c', 'console-gl.c', 'egl-helpers.c', 'egl-context.c')) 66c8263659SGerd Hoffmann ui_modules += {'opengl' : opengl_ss} 67c8263659SGerd Hoffmannendif 68c8263659SGerd Hoffmann 6939324b49SMarc-André Lureauif opengl.found() 7039d41e85SGerd Hoffmann egl_headless_ss = ss.source_set() 7139324b49SMarc-André Lureau egl_headless_ss.add(when: [opengl, pixman], 7239324b49SMarc-André Lureau if_true: [files('egl-headless.c'), gbm]) 7339d41e85SGerd Hoffmann ui_modules += {'egl-headless' : egl_headless_ss} 7439d41e85SGerd Hoffmannendif 7539d41e85SGerd Hoffmann 76142ca628SMarc-André Lureauif dbus_display 77142ca628SMarc-André Lureau dbus_ss = ss.source_set() 786cc5a615SMarc-André Lureau env = environment() 79d0cda6f4SPaolo Bonzini env.set('HOST_OS', host_os) 806cc5a615SMarc-André Lureau xml = custom_target('dbus-display preprocess', 816cc5a615SMarc-André Lureau input: 'dbus-display1.xml', 826cc5a615SMarc-André Lureau output: 'dbus-display1.xml', 836cc5a615SMarc-André Lureau env: env, 846cc5a615SMarc-André Lureau command: [xml_pp, '@INPUT@', '@OUTPUT@']) 85142ca628SMarc-André Lureau dbus_display1 = custom_target('dbus-display gdbus-codegen', 86142ca628SMarc-André Lureau output: ['dbus-display1.h', 'dbus-display1.c'], 876cc5a615SMarc-André Lureau input: xml, 887544060eSPaolo Bonzini command: [gdbus_codegen, '@INPUT@', 89142ca628SMarc-André Lureau '--glib-min-required', '2.64', 90142ca628SMarc-André Lureau '--output-directory', meson.current_build_dir(), 91142ca628SMarc-André Lureau '--interface-prefix', 'org.qemu.', 92142ca628SMarc-André Lureau '--c-namespace', 'QemuDBus', 93142ca628SMarc-André Lureau '--generate-c-code', '@BASENAME@']) 942bfd3c48SPaolo Bonzini dbus_ss.add(when: gio, 95142ca628SMarc-André Lureau if_true: [files( 963e301c8dSMarc-André Lureau 'dbus-chardev.c', 97ff1a5810SMarc-André Lureau 'dbus-clipboard.c', 98142ca628SMarc-André Lureau 'dbus-console.c', 99142ca628SMarc-André Lureau 'dbus-error.c', 100142ca628SMarc-André Lureau 'dbus-listener.c', 101142ca628SMarc-André Lureau 'dbus.c', 1022bfd3c48SPaolo Bonzini ), opengl, gbm, pixman, dbus_display1]) 103142ca628SMarc-André Lureau ui_modules += {'dbus' : dbus_ss} 104142ca628SMarc-André Lureauendif 105142ca628SMarc-André Lureau 1061b695471SPaolo Bonziniif gtk.found() 107d0cda6f4SPaolo Bonzini if host_os == 'windows' 108dc495494SPaolo Bonzini system_ss.add(files('win32-kbd-hook.c')) 109dc495494SPaolo Bonzini endif 1102b1ccdf4SMarc-André Lureau 1112b1ccdf4SMarc-André Lureau gtk_ss = ss.source_set() 11229e0bfffSClaudio Fontana gtk_ss.add(gtk, vte, pixman, files('gtk.c')) 11329e0bfffSClaudio Fontana if have_gtk_clipboard 11429e0bfffSClaudio Fontana gtk_ss.add(files('gtk-clipboard.c')) 11529e0bfffSClaudio Fontana endif 1169d71037fSPaolo Bonzini gtk_ss.add(when: x11, if_true: files('x_keymap.c')) 11788b6e618SPaolo Bonzini gtk_ss.add(when: opengl, if_true: files('gtk-gl-area.c')) 11888b6e618SPaolo Bonzini gtk_ss.add(when: [x11, opengl], if_true: files('gtk-egl.c')) 1192b1ccdf4SMarc-André Lureau ui_modules += {'gtk' : gtk_ss} 1202b1ccdf4SMarc-André Lureauendif 1212b1ccdf4SMarc-André Lureau 12235be72baSPaolo Bonziniif sdl.found() 1232b1ccdf4SMarc-André Lureau sdl_ss = ss.source_set() 12435be72baSPaolo Bonzini sdl_ss.add(sdl, sdl_image, pixman, glib, files( 1252b1ccdf4SMarc-André Lureau 'sdl2-2d.c', 1262b1ccdf4SMarc-André Lureau 'sdl2-input.c', 1272b1ccdf4SMarc-André Lureau 'sdl2.c', 1282b1ccdf4SMarc-André Lureau )) 12988b6e618SPaolo Bonzini sdl_ss.add(when: opengl, if_true: files('sdl2-gl.c')) 1309d71037fSPaolo Bonzini sdl_ss.add(when: x11, if_true: files('x_keymap.c')) 1312b1ccdf4SMarc-André Lureau ui_modules += {'sdl' : sdl_ss} 1322b1ccdf4SMarc-André Lureauendif 1332b1ccdf4SMarc-André Lureau 1343f0a5d55SMarc-André Lureauif spice.found() 135cbe5fa11SGerd Hoffmann spice_core_ss = ss.source_set() 136cbe5fa11SGerd Hoffmann spice_core_ss.add(spice, pixman, files( 137cbe5fa11SGerd Hoffmann 'spice-core.c', 138cbe5fa11SGerd Hoffmann 'spice-input.c', 139cbe5fa11SGerd Hoffmann 'spice-display.c' 140cbe5fa11SGerd Hoffmann )) 141cbe5fa11SGerd Hoffmann ui_modules += {'spice-core' : spice_core_ss} 142cbe5fa11SGerd Hoffmann 143c98791ebSMarc-André Lureau if gio.found() 1442b1ccdf4SMarc-André Lureau spice_ss = ss.source_set() 145289e12dbSPaolo Bonzini spice_ss.add(spice, gio, pixman, files('spice-app.c')) 1462b1ccdf4SMarc-André Lureau ui_modules += {'spice-app': spice_ss} 1472b1ccdf4SMarc-André Lureau endif 148c98791ebSMarc-André Lureauendif 1492b1ccdf4SMarc-André Lureau 1502d78b56eSMarc-André Lureaukeymaps = [ 1512d78b56eSMarc-André Lureau ['atset1', 'qcode'], 1522d78b56eSMarc-André Lureau ['linux', 'qcode'], 1532d78b56eSMarc-André Lureau ['qcode', 'atset1'], 1542d78b56eSMarc-André Lureau ['qcode', 'atset2'], 1552d78b56eSMarc-André Lureau ['qcode', 'atset3'], 1562d78b56eSMarc-André Lureau ['qcode', 'linux'], 1572d78b56eSMarc-André Lureau ['qcode', 'qnum'], 1582d78b56eSMarc-André Lureau ['qcode', 'sun'], 1592d78b56eSMarc-André Lureau ['qnum', 'qcode'], 1602d78b56eSMarc-André Lureau ['usb', 'qcode'], 1612d78b56eSMarc-André Lureau ['win32', 'qcode'], 1622d78b56eSMarc-André Lureau ['x11', 'qcode'], 1632d78b56eSMarc-André Lureau ['xorgevdev', 'qcode'], 1642d78b56eSMarc-André Lureau ['xorgkbd', 'qcode'], 1652d78b56eSMarc-André Lureau ['xorgxquartz', 'qcode'], 1662d78b56eSMarc-André Lureau ['xorgxwin', 'qcode'], 1672d78b56eSMarc-André Lureau ['osx', 'qcode'], 1682d78b56eSMarc-André Lureau] 1692d78b56eSMarc-André Lureau 1704113f4cfSLaurent Vivierif have_system or xkbcommon.found() 171c53648abSPaolo Bonzini keycodemapdb_proj = subproject('keycodemapdb', required: true) 1722d78b56eSMarc-André Lureau foreach e : keymaps 1732d78b56eSMarc-André Lureau output = 'input-keymap-@0@-to-@1@.c.inc'.format(e[0], e[1]) 1742d78b56eSMarc-André Lureau genh += custom_target(output, 1752d78b56eSMarc-André Lureau output: output, 1762d78b56eSMarc-André Lureau capture: true, 177c53648abSPaolo Bonzini input: keycodemapdb_proj.get_variable('keymaps_csv'), 178c53648abSPaolo Bonzini command: [python, keycodemapdb_proj.get_variable('keymap_gen').full_path(), 179c53648abSPaolo Bonzini 'code-map', '--lang', 'glib2', 1802d78b56eSMarc-André Lureau '--varname', 'qemu_input_map_@0@_to_@1@'.format(e[0], e[1]), 181f4d87ce4SDaniel P. Berrangé '@INPUT0@', e[0], e[1]]) 1822d78b56eSMarc-André Lureau endforeach 1832d78b56eSMarc-André Lureauendif 184650b5d54SMarc-André Lureau 185650b5d54SMarc-André Lureausubdir('shader') 1863856873eSBruce Rogers 1873856873eSBruce Rogersif have_system 188a4d88926SMarc-André Lureau subdir('icons') 1892b1ccdf4SMarc-André Lureau 19016bf7a33SPaolo Bonzini install_data('qemu.desktop', install_dir: qemu_desktopdir) 1913856873eSBruce Rogersendif 192c04c071fSMarc-André Lureau 1932b1ccdf4SMarc-André Lureaumodules += {'ui': ui_modules} 194