meson: add qemu-edid
[qemu.git] / meson.build
CommitLineData
a5665051
PB
1project('qemu', ['c'], meson_version: '>=0.55.0',
2 default_options: ['warning_level=1', 'c_std=gnu99', 'cpp_std=gnu++11', 'b_lundef=false'],
3 version: run_command('head', meson.source_root() / 'VERSION').stdout().strip())
4
5not_found = dependency('', required: false)
6keyval = import('unstable-keyval')
a81df1b6
PB
7ss = import('sourceset')
8
9cc = meson.get_compiler('c')
a5665051
PB
10config_host = keyval.load(meson.current_build_dir() / 'config-host.mak')
11
12add_project_arguments(config_host['QEMU_CFLAGS'].split(),
13 native: false, language: ['c', 'objc'])
14add_project_arguments(config_host['QEMU_CXXFLAGS'].split(),
15 native: false, language: 'cpp')
16add_project_link_arguments(config_host['QEMU_LDFLAGS'].split(),
17 native: false, language: ['c', 'cpp', 'objc'])
18add_project_arguments(config_host['QEMU_INCLUDES'].split(),
19 language: ['c', 'cpp', 'objc'])
20
fc929892
MAL
21python = import('python').find_installation()
22
23link_language = meson.get_external_property('link_language', 'cpp')
24if link_language == 'cpp'
25 add_languages('cpp', required: true, native: false)
26endif
a5665051
PB
27if host_machine.system() == 'darwin'
28 add_languages('objc', required: false, native: false)
29endif
30
968b4db3
PB
31if 'SPARSE_CFLAGS' in config_host
32 run_target('sparse',
33 command: [find_program('scripts/check_sparse.py'),
34 config_host['SPARSE_CFLAGS'].split(),
35 'compile_commands.json'])
36endif
37
a5665051
PB
38configure_file(input: files('scripts/ninjatool.py'),
39 output: 'ninjatool',
40 configuration: config_host)
f9332757
PB
41
42supported_oses = ['windows', 'freebsd', 'netbsd', 'openbsd', 'darwin', 'sunos', 'linux']
43supported_cpus = ['ppc', 'ppc64', 's390x', 'sparc64', 'riscv32', 'riscv64', 'x86', 'x86_64',
44 'arm', 'aarch64', 'mips', 'mips64', 'sparc', 'sparc64']
45
46cpu = host_machine.cpu_family()
47targetos = host_machine.system()
48
a81df1b6
PB
49m = cc.find_library('m', required: false)
50util = cc.find_library('util', required: false)
51socket = []
04c6f1e7 52version_res = []
d92989aa
MAL
53coref = []
54iokit = []
55cocoa = []
56hvf = []
a81df1b6
PB
57if targetos == 'windows'
58 socket = cc.find_library('ws2_32')
04c6f1e7
MAL
59
60 win = import('windows')
61 version_res = win.compile_resources('version.rc',
62 depend_files: files('pc-bios/qemu-nsis.ico'),
63 include_directories: include_directories('.'))
d92989aa
MAL
64elif targetos == 'darwin'
65 coref = dependency('appleframeworks', modules: 'CoreFoundation')
66 iokit = dependency('appleframeworks', modules: 'IOKit')
67 cocoa = dependency('appleframeworks', modules: 'Cocoa')
68 hvf = dependency('appleframeworks', modules: 'Hypervisor')
cfad62f1
PB
69elif targetos == 'sunos'
70 socket = [cc.find_library('socket'),
71 cc.find_library('nsl'),
72 cc.find_library('resolv')]
73elif targetos == 'haiku'
74 socket = [cc.find_library('posix_error_mapper'),
75 cc.find_library('network'),
76 cc.find_library('bsd')]
a81df1b6
PB
77endif
78glib = declare_dependency(compile_args: config_host['GLIB_CFLAGS'].split(),
79 link_args: config_host['GLIB_LIBS'].split())
80gio = not_found
81if 'CONFIG_GIO' in config_host
82 gio = declare_dependency(compile_args: config_host['GIO_CFLAGS'].split(),
83 link_args: config_host['GIO_LIBS'].split())
84endif
85lttng = not_found
86if 'CONFIG_TRACE_UST' in config_host
87 lttng = declare_dependency(link_args: config_host['LTTNG_UST_LIBS'].split())
88endif
89urcubp = not_found
90if 'CONFIG_TRACE_UST' in config_host
91 urcubp = declare_dependency(link_args: config_host['URCU_BP_LIBS'].split())
92endif
93nettle = not_found
94if 'CONFIG_NETTLE' in config_host
95 nettle = declare_dependency(compile_args: config_host['NETTLE_CFLAGS'].split(),
96 link_args: config_host['NETTLE_LIBS'].split())
97endif
98gnutls = not_found
99if 'CONFIG_GNUTLS' in config_host
100 gnutls = declare_dependency(compile_args: config_host['GNUTLS_CFLAGS'].split(),
101 link_args: config_host['GNUTLS_LIBS'].split())
102endif
ea458960
MAL
103pixman = declare_dependency(compile_args: config_host['PIXMAN_CFLAGS'].split(),
104 link_args: config_host['PIXMAN_LIBS'].split())
3f99cf57
PB
105seccomp = not_found
106if 'CONFIG_SECCOMP' in config_host
107 seccomp = declare_dependency(compile_args: config_host['SECCOMP_CFLAGS'].split(),
108 link_args: config_host['SECCOMP_LIBS'].split())
109endif
110libcap_ng = not_found
111if 'CONFIG_LIBCAP_NG' in config_host
112 libcap_ng = declare_dependency(link_args: config_host['LIBCAP_NG_LIBS'].split())
113endif
ade60d4f
MAL
114xkbcommon = not_found
115if 'CONFIG_XKBCOMMON' in config_host
116 xkbcommon = declare_dependency(compile_args: config_host['XKBCOMMON_CFLAGS'].split(),
117 link_args: config_host['XKBCOMMON_LIBS'].split())
118endif
5ee24e78 119rt = cc.find_library('rt', required: false)
99650b62
PB
120libiscsi = not_found
121if 'CONFIG_LIBISCSI' in config_host
122 libiscsi = declare_dependency(compile_args: config_host['LIBISCSI_CFLAGS'].split(),
123 link_args: config_host['LIBISCSI_LIBS'].split())
124endif
ea458960
MAL
125gbm = not_found
126if 'CONFIG_GBM' in config_host
127 gbm = declare_dependency(compile_args: config_host['GBM_CFLAGS'].split(),
128 link_args: config_host['GBM_LIBS'].split())
129endif
130virgl = not_found
131if 'CONFIG_VIRGL' in config_host
132 virgl = declare_dependency(compile_args: config_host['VIRGL_CFLAGS'].split(),
133 link_args: config_host['VIRGL_LIBS'].split())
134endif
1d7bb6ab
MAL
135curl = not_found
136if 'CONFIG_CURL' in config_host
137 curl = declare_dependency(compile_args: config_host['CURL_CFLAGS'].split(),
138 link_args: config_host['CURL_LIBS'].split())
139endif
f15bff25
PB
140libudev = not_found
141if 'CONFIG_LIBUDEV' in config_host
142 libudev = declare_dependency(link_args: config_host['LIBUDEV_LIBS'].split())
143endif
a81df1b6
PB
144
145target_dirs = config_host['TARGET_DIRS'].split()
146have_user = false
147have_system = false
148foreach target : target_dirs
149 have_user = have_user or target.endswith('-user')
150 have_system = have_system or target.endswith('-softmmu')
151endforeach
152have_tools = 'CONFIG_TOOLS' in config_host
153have_block = have_system or have_tools
154
155# Generators
156
157qapi_gen = find_program('scripts/qapi-gen.py')
158qapi_gen_depends = [ meson.source_root() / 'scripts/qapi/__init__.py',
159 meson.source_root() / 'scripts/qapi/commands.py',
160 meson.source_root() / 'scripts/qapi/common.py',
161 meson.source_root() / 'scripts/qapi/doc.py',
162 meson.source_root() / 'scripts/qapi/error.py',
163 meson.source_root() / 'scripts/qapi/events.py',
164 meson.source_root() / 'scripts/qapi/expr.py',
165 meson.source_root() / 'scripts/qapi/gen.py',
166 meson.source_root() / 'scripts/qapi/introspect.py',
167 meson.source_root() / 'scripts/qapi/parser.py',
168 meson.source_root() / 'scripts/qapi/schema.py',
169 meson.source_root() / 'scripts/qapi/source.py',
170 meson.source_root() / 'scripts/qapi/types.py',
171 meson.source_root() / 'scripts/qapi/visit.py',
172 meson.source_root() / 'scripts/qapi/common.py',
173 meson.source_root() / 'scripts/qapi/doc.py',
174 meson.source_root() / 'scripts/qapi-gen.py'
175]
176
177tracetool = [
178 python, files('scripts/tracetool.py'),
179 '--backend=' + config_host['TRACE_BACKENDS']
180]
181
182# Collect sourcesets.
183
184util_ss = ss.source_set()
185stub_ss = ss.source_set()
186trace_ss = ss.source_set()
187
188###############
189# Trace files #
190###############
191
192trace_events_subdirs = [
193 'accel/kvm',
194 'accel/tcg',
195 'crypto',
196 'monitor',
197]
198if have_user
199 trace_events_subdirs += [ 'linux-user' ]
200endif
201if have_block
202 trace_events_subdirs += [
203 'authz',
204 'block',
205 'io',
206 'nbd',
207 'scsi',
208 ]
209endif
210if have_system
211 trace_events_subdirs += [
212 'audio',
213 'backends',
214 'backends/tpm',
215 'chardev',
216 'hw/9pfs',
217 'hw/acpi',
218 'hw/alpha',
219 'hw/arm',
220 'hw/audio',
221 'hw/block',
222 'hw/block/dataplane',
223 'hw/char',
224 'hw/display',
225 'hw/dma',
226 'hw/hppa',
227 'hw/hyperv',
228 'hw/i2c',
229 'hw/i386',
230 'hw/i386/xen',
231 'hw/ide',
232 'hw/input',
233 'hw/intc',
234 'hw/isa',
235 'hw/mem',
236 'hw/mips',
237 'hw/misc',
238 'hw/misc/macio',
239 'hw/net',
240 'hw/nvram',
241 'hw/pci',
242 'hw/pci-host',
243 'hw/ppc',
244 'hw/rdma',
245 'hw/rdma/vmw',
246 'hw/rtc',
247 'hw/s390x',
248 'hw/scsi',
249 'hw/sd',
250 'hw/sparc',
251 'hw/sparc64',
252 'hw/ssi',
253 'hw/timer',
254 'hw/tpm',
255 'hw/usb',
256 'hw/vfio',
257 'hw/virtio',
258 'hw/watchdog',
259 'hw/xen',
260 'hw/gpio',
261 'hw/riscv',
262 'migration',
263 'net',
264 'ui',
265 ]
266endif
267trace_events_subdirs += [
268 'hw/core',
269 'qapi',
270 'qom',
271 'target/arm',
272 'target/hppa',
273 'target/i386',
274 'target/mips',
275 'target/ppc',
276 'target/riscv',
277 'target/s390x',
278 'target/sparc',
279 'util',
280]
281
282genh = []
283
284subdir('qapi')
285subdir('qobject')
286subdir('stubs')
287subdir('trace')
288subdir('util')
289subdir('crypto')
290subdir('storage-daemon')
291
292# Build targets from sourcesets
293
294stub_ss = stub_ss.apply(config_host, strict: false)
295
296util_ss.add_all(trace_ss)
297util_ss = util_ss.apply(config_host, strict: false)
298libqemuutil = static_library('qemuutil',
299 sources: util_ss.sources() + stub_ss.sources() + genh,
300 dependencies: [util_ss.dependencies(), m, glib, socket])
301qemuutil = declare_dependency(link_with: libqemuutil,
04c6f1e7 302 sources: genh + version_res)
a81df1b6 303
931049b4 304# Other build targets
f15bff25
PB
305if 'CONFIG_GUEST_AGENT' in config_host
306 subdir('qga')
307endif
308
931049b4 309if have_tools
a9c9727c 310 subdir('contrib/rdmacm-mux')
1d7bb6ab 311 subdir('contrib/elf2dmp')
a9c9727c 312
ade60d4f
MAL
313 if 'CONFIG_XKBCOMMON' in config_host
314 executable('qemu-keymap', files('qemu-keymap.c', 'ui/input-keymap.c'),
315 dependencies: [qemuutil, xkbcommon], install: true)
316 endif
317
157e7b13
MAL
318 executable('qemu-edid', files('qemu-edid.c', 'hw/display/edid-generate.c'),
319 dependencies: qemuutil,
320 install: true)
321
931049b4
PB
322 if 'CONFIG_VHOST_USER' in config_host
323 subdir('contrib/libvhost-user')
2d7ac0af 324 subdir('contrib/vhost-user-blk')
ea458960
MAL
325 if 'CONFIG_LINUX' in config_host
326 subdir('contrib/vhost-user-gpu')
327 endif
32fcc624 328 subdir('contrib/vhost-user-input')
99650b62 329 subdir('contrib/vhost-user-scsi')
931049b4 330 endif
8f51e01c
MAL
331
332 if targetos == 'linux'
333 executable('qemu-bridge-helper', files('qemu-bridge-helper.c'),
334 dependencies: [qemuutil, libcap_ng],
335 install: true,
336 install_dir: get_option('libexecdir'))
337 endif
338
5ee24e78
MAL
339 if 'CONFIG_IVSHMEM' in config_host
340 subdir('contrib/ivshmem-client')
341 subdir('contrib/ivshmem-server')
342 endif
931049b4
PB
343endif
344
3f99cf57
PB
345subdir('tools')
346
f9332757
PB
347summary_info = {}
348summary_info += {'Install prefix': config_host['prefix']}
349summary_info += {'BIOS directory': config_host['qemu_datadir']}
350summary_info += {'firmware path': config_host['qemu_firmwarepath']}
351summary_info += {'binary directory': config_host['bindir']}
352summary_info += {'library directory': config_host['libdir']}
353summary_info += {'module directory': config_host['qemu_moddir']}
354summary_info += {'libexec directory': config_host['libexecdir']}
355summary_info += {'include directory': config_host['includedir']}
356summary_info += {'config directory': config_host['sysconfdir']}
357if targetos != 'windows'
358 summary_info += {'local state directory': config_host['qemu_localstatedir']}
359 summary_info += {'Manual directory': config_host['mandir']}
360else
361 summary_info += {'local state directory': 'queried at runtime'}
362endif
363summary_info += {'Build directory': meson.current_build_dir()}
364summary_info += {'Source path': meson.current_source_dir()}
365summary_info += {'GIT binary': config_host['GIT']}
366summary_info += {'GIT submodules': config_host['GIT_SUBMODULES']}
367summary_info += {'C compiler': meson.get_compiler('c').cmd_array()[0]}
368summary_info += {'Host C compiler': meson.get_compiler('c', native: true).cmd_array()[0]}
369if link_language == 'cpp'
370 summary_info += {'C++ compiler': meson.get_compiler('cpp').cmd_array()[0]}
371else
372 summary_info += {'C++ compiler': false}
373endif
374if targetos == 'darwin'
375 summary_info += {'Objective-C compiler': meson.get_compiler('objc').cmd_array()[0]}
376endif
377summary_info += {'ARFLAGS': config_host['ARFLAGS']}
378summary_info += {'CFLAGS': config_host['CFLAGS']}
379summary_info += {'QEMU_CFLAGS': config_host['QEMU_CFLAGS']}
380summary_info += {'QEMU_LDFLAGS': config_host['QEMU_LDFLAGS']}
381summary_info += {'make': config_host['MAKE']}
382summary_info += {'install': config_host['INSTALL']}
383summary_info += {'python': '@0@ (version: @1@)'.format(python.full_path(), python.language_version())}
384summary_info += {'sphinx-build': config_host['SPHINX_BUILD']}
385summary_info += {'genisoimage': config_host['GENISOIMAGE']}
386# TODO: add back version
387summary_info += {'slirp support': config_host.has_key('CONFIG_SLIRP')}
388if config_host.has_key('CONFIG_SLIRP')
389 summary_info += {'smbd': config_host['CONFIG_SMBD_COMMAND']}
390endif
391summary_info += {'module support': config_host.has_key('CONFIG_MODULES')}
392if config_host.has_key('CONFIG_MODULES')
393 summary_info += {'alternative module path': config_host.has_key('CONFIG_MODULE_UPGRADES')}
394endif
395summary_info += {'host CPU': cpu}
396summary_info += {'host endianness': build_machine.endian()}
397summary_info += {'target list': config_host['TARGET_DIRS']}
398summary_info += {'gprof enabled': config_host.has_key('CONFIG_GPROF')}
399summary_info += {'sparse enabled': meson.get_compiler('c').cmd_array().contains('cgcc')}
400summary_info += {'strip binaries': get_option('strip')}
401summary_info += {'profiler': config_host.has_key('CONFIG_PROFILER')}
402summary_info += {'static build': config_host.has_key('CONFIG_TOOLS')}
403if targetos == 'darwin'
404 summary_info += {'Cocoa support': config_host.has_key('CONFIG_COCOA')}
405endif
406# TODO: add back version
407summary_info += {'SDL support': config_host.has_key('CONFIG_SDL')}
408summary_info += {'SDL image support': config_host.has_key('CONFIG_SDL_IMAGE')}
409# TODO: add back version
410summary_info += {'GTK support': config_host.has_key('CONFIG_GTK')}
411summary_info += {'GTK GL support': config_host.has_key('CONFIG_GTK_GL')}
412# TODO: add back version
413summary_info += {'VTE support': config_host.has_key('CONFIG_VTE')}
414summary_info += {'TLS priority': config_host['CONFIG_TLS_PRIORITY']}
415summary_info += {'GNUTLS support': config_host.has_key('CONFIG_GNUTLS')}
416# TODO: add back version
417summary_info += {'libgcrypt': config_host.has_key('CONFIG_GCRYPT')}
418if config_host.has_key('CONFIG_GCRYPT')
419 summary_info += {' hmac': config_host.has_key('CONFIG_GCRYPT_HMAC')}
420 summary_info += {' XTS': not config_host.has_key('CONFIG_QEMU_PRIVATE_XTS')}
421endif
422# TODO: add back version
423summary_info += {'nettle': config_host.has_key('CONFIG_NETTLE')}
424if config_host.has_key('CONFIG_NETTLE')
425 summary_info += {' XTS': not config_host.has_key('CONFIG_QEMU_PRIVATE_XTS')}
426endif
427summary_info += {'libtasn1': config_host.has_key('CONFIG_TASN1')}
428summary_info += {'PAM': config_host.has_key('CONFIG_AUTH_PAM')}
429summary_info += {'iconv support': config_host.has_key('CONFIG_ICONV')}
430summary_info += {'curses support': config_host.has_key('CONFIG_CURSES')}
431# TODO: add back version
432summary_info += {'virgl support': config_host.has_key('CONFIG_VIRGL')}
433summary_info += {'curl support': config_host.has_key('CONFIG_CURL')}
434summary_info += {'mingw32 support': targetos == 'windows'}
435summary_info += {'Audio drivers': config_host['CONFIG_AUDIO_DRIVERS']}
436summary_info += {'Block whitelist (rw)': config_host['CONFIG_BDRV_RW_WHITELIST']}
437summary_info += {'Block whitelist (ro)': config_host['CONFIG_BDRV_RO_WHITELIST']}
438summary_info += {'VirtFS support': config_host.has_key('CONFIG_VIRTFS')}
439summary_info += {'Multipath support': config_host.has_key('CONFIG_MPATH')}
440summary_info += {'VNC support': config_host.has_key('CONFIG_VNC')}
441if config_host.has_key('CONFIG_VNC')
442 summary_info += {'VNC SASL support': config_host.has_key('CONFIG_VNC_SASL')}
443 summary_info += {'VNC JPEG support': config_host.has_key('CONFIG_VNC_JPEG')}
444 summary_info += {'VNC PNG support': config_host.has_key('CONFIG_VNC_PNG')}
445endif
446summary_info += {'xen support': config_host.has_key('CONFIG_XEN_BACKEND')}
447if config_host.has_key('CONFIG_XEN_BACKEND')
448 summary_info += {'xen ctrl version': config_host['CONFIG_XEN_CTRL_INTERFACE_VERSION']}
449endif
450summary_info += {'brlapi support': config_host.has_key('CONFIG_BRLAPI')}
451summary_info += {'Documentation': config_host.has_key('BUILD_DOCS')}
452summary_info += {'PIE': get_option('b_pie')}
453summary_info += {'vde support': config_host.has_key('CONFIG_VDE')}
454summary_info += {'netmap support': config_host.has_key('CONFIG_NETMAP')}
455summary_info += {'Linux AIO support': config_host.has_key('CONFIG_LINUX_AIO')}
456summary_info += {'Linux io_uring support': config_host.has_key('CONFIG_LINUX_IO_URING')}
457summary_info += {'ATTR/XATTR support': config_host.has_key('CONFIG_ATTR')}
458summary_info += {'Install blobs': config_host.has_key('INSTALL_BLOBS')}
459# TODO: add back KVM/HAX/HVF/WHPX/TCG
460#summary_info += {'KVM support': have_kvm'}
461#summary_info += {'HAX support': have_hax'}
462#summary_info += {'HVF support': have_hvf'}
463#summary_info += {'WHPX support': have_whpx'}
464#summary_info += {'TCG support': have_tcg'}
465#if get_option('tcg')
466# summary_info += {'TCG debug enabled': config_host.has_key('CONFIG_DEBUG_TCG')}
467# summary_info += {'TCG interpreter': config_host.has_key('CONFIG_TCG_INTERPRETER')}
468#endif
469summary_info += {'malloc trim support': config_host.has_key('CONFIG_MALLOC_TRIM')}
470summary_info += {'RDMA support': config_host.has_key('CONFIG_RDMA')}
471summary_info += {'PVRDMA support': config_host.has_key('CONFIG_PVRDMA')}
472summary_info += {'fdt support': config_host.has_key('CONFIG_FDT')}
473summary_info += {'membarrier': config_host.has_key('CONFIG_MEMBARRIER')}
474summary_info += {'preadv support': config_host.has_key('CONFIG_PREADV')}
475summary_info += {'fdatasync': config_host.has_key('CONFIG_FDATASYNC')}
476summary_info += {'madvise': config_host.has_key('CONFIG_MADVISE')}
477summary_info += {'posix_madvise': config_host.has_key('CONFIG_POSIX_MADVISE')}
478summary_info += {'posix_memalign': config_host.has_key('CONFIG_POSIX_MEMALIGN')}
479summary_info += {'libcap-ng support': config_host.has_key('CONFIG_LIBCAP_NG')}
480summary_info += {'vhost-net support': config_host.has_key('CONFIG_VHOST_NET')}
481summary_info += {'vhost-crypto support': config_host.has_key('CONFIG_VHOST_CRYPTO')}
482summary_info += {'vhost-scsi support': config_host.has_key('CONFIG_VHOST_SCSI')}
483summary_info += {'vhost-vsock support': config_host.has_key('CONFIG_VHOST_VSOCK')}
484summary_info += {'vhost-user support': config_host.has_key('CONFIG_VHOST_KERNEL')}
485summary_info += {'vhost-user-fs support': config_host.has_key('CONFIG_VHOST_USER_FS')}
486summary_info += {'vhost-vdpa support': config_host.has_key('CONFIG_VHOST_VDPA')}
487summary_info += {'Trace backends': config_host['TRACE_BACKENDS']}
488if config_host['TRACE_BACKENDS'].split().contains('simple')
489 summary_info += {'Trace output file': config_host['CONFIG_TRACE_FILE'] + '-<pid>'}
490endif
491# TODO: add back protocol and server version
492summary_info += {'spice support': config_host.has_key('CONFIG_SPICE')}
493summary_info += {'rbd support': config_host.has_key('CONFIG_RBD')}
494summary_info += {'xfsctl support': config_host.has_key('CONFIG_XFS')}
495summary_info += {'smartcard support': config_host.has_key('CONFIG_SMARTCARD')}
496summary_info += {'libusb': config_host.has_key('CONFIG_USB_LIBUSB')}
497summary_info += {'usb net redir': config_host.has_key('CONFIG_USB_REDIR')}
498summary_info += {'OpenGL support': config_host.has_key('CONFIG_OPENGL')}
499summary_info += {'OpenGL dmabufs': config_host.has_key('CONFIG_OPENGL_DMABUF')}
500summary_info += {'libiscsi support': config_host.has_key('CONFIG_LIBISCSI')}
501summary_info += {'libnfs support': config_host.has_key('CONFIG_LIBNFS')}
502summary_info += {'build guest agent': config_host.has_key('CONFIG_GUEST_AGENT')}
503if targetos == 'windows'
504 if 'WIN_SDK' in config_host
505 summary_info += {'Windows SDK': config_host['WIN_SDK']}
506 endif
507 summary_info += {'QGA VSS support': config_host.has_key('CONFIG_QGA_VSS')}
508 summary_info += {'QGA w32 disk info': config_host.has_key('CONFIG_QGA_NTDDSCSI')}
509 summary_info += {'QGA MSI support': config_host.has_key('CONFIG_QGA_MSI_ENABLED')}
510endif
511summary_info += {'seccomp support': config_host.has_key('CONFIG_SECCOMP')}
512summary_info += {'coroutine backend': config_host['CONFIG_COROUTINE_BACKEND']}
513summary_info += {'coroutine pool': config_host['CONFIG_COROUTINE_POOL'] == '1'}
514summary_info += {'debug stack usage': config_host.has_key('CONFIG_DEBUG_STACK_USAGE')}
515summary_info += {'mutex debugging': config_host.has_key('CONFIG_DEBUG_MUTEX')}
516summary_info += {'crypto afalg': config_host.has_key('CONFIG_AF_ALG')}
517summary_info += {'GlusterFS support': config_host.has_key('CONFIG_GLUSTERFS')}
bf0e56a3 518summary_info += {'gcov': get_option('b_coverage')}
f9332757
PB
519summary_info += {'TPM support': config_host.has_key('CONFIG_TPM')}
520summary_info += {'libssh support': config_host.has_key('CONFIG_LIBSSH')}
521summary_info += {'QOM debugging': config_host.has_key('CONFIG_QOM_CAST_DEBUG')}
522summary_info += {'Live block migration': config_host.has_key('CONFIG_LIVE_BLOCK_MIGRATION')}
523summary_info += {'lzo support': config_host.has_key('CONFIG_LZO')}
524summary_info += {'snappy support': config_host.has_key('CONFIG_SNAPPY')}
525summary_info += {'bzip2 support': config_host.has_key('CONFIG_BZIP2')}
526summary_info += {'lzfse support': config_host.has_key('CONFIG_LZFSE')}
527summary_info += {'zstd support': config_host.has_key('CONFIG_ZSTD')}
528summary_info += {'NUMA host support': config_host.has_key('CONFIG_NUMA')}
529summary_info += {'libxml2': config_host.has_key('CONFIG_LIBXML2')}
530summary_info += {'tcmalloc support': config_host.has_key('CONFIG_TCMALLOC')}
531summary_info += {'jemalloc support': config_host.has_key('CONFIG_JEMALLOC')}
532summary_info += {'avx2 optimization': config_host.has_key('CONFIG_AVX2_OPT')}
533summary_info += {'avx512f optimization': config_host.has_key('CONFIG_AVX512F_OPT')}
534summary_info += {'replication support': config_host.has_key('CONFIG_REPLICATION')}
535summary_info += {'bochs support': config_host.has_key('CONFIG_BOCHS')}
536summary_info += {'cloop support': config_host.has_key('CONFIG_CLOOP')}
537summary_info += {'dmg support': config_host.has_key('CONFIG_DMG')}
538summary_info += {'qcow v1 support': config_host.has_key('CONFIG_QCOW1')}
539summary_info += {'vdi support': config_host.has_key('CONFIG_VDI')}
540summary_info += {'vvfat support': config_host.has_key('CONFIG_VVFAT')}
541summary_info += {'qed support': config_host.has_key('CONFIG_QED')}
542summary_info += {'parallels support': config_host.has_key('CONFIG_PARALLELS')}
543summary_info += {'sheepdog support': config_host.has_key('CONFIG_SHEEPDOG')}
544summary_info += {'capstone': config_host.has_key('CONFIG_CAPSTONE')}
545summary_info += {'libpmem support': config_host.has_key('CONFIG_LIBPMEM')}
546summary_info += {'libdaxctl support': config_host.has_key('CONFIG_LIBDAXCTL')}
547summary_info += {'libudev': config_host.has_key('CONFIG_LIBUDEV')}
548summary_info += {'default devices': config_host['CONFIG_MINIKCONF_MODE'] == '--defconfig'}
549summary_info += {'plugin support': config_host.has_key('CONFIG_PLUGIN')}
550summary_info += {'fuzzing support': config_host.has_key('CONFIG_FUZZ')}
551if config_host.has_key('HAVE_GDB_BIN')
552 summary_info += {'gdb': config_host['HAVE_GDB_BIN']}
553endif
554summary_info += {'thread sanitizer': config_host.has_key('CONFIG_TSAN')}
555summary_info += {'rng-none': config_host.has_key('CONFIG_RNG_NONE')}
556summary_info += {'Linux keyring': config_host.has_key('CONFIG_SECRET_KEYRING')}
557summary(summary_info, bool_yn: true)
558
559if not supported_cpus.contains(cpu)
560 message()
561 warning('SUPPORT FOR THIS HOST CPU WILL GO AWAY IN FUTURE RELEASES!')
562 message()
563 message('CPU host architecture ' + cpu + ' support is not currently maintained.')
564 message('The QEMU project intends to remove support for this host CPU in')
565 message('a future release if nobody volunteers to maintain it and to')
566 message('provide a build host for our continuous integration setup.')
567 message('configure has succeeded and you can continue to build, but')
568 message('if you care about QEMU on this platform you should contact')
569 message('us upstream at qemu-devel@nongnu.org.')
570endif
571
572if not supported_oses.contains(targetos)
573 message()
574 warning('WARNING: SUPPORT FOR THIS HOST OS WILL GO AWAY IN FUTURE RELEASES!')
575 message()
576 message('Host OS ' + targetos + 'support is not currently maintained.')
577 message('The QEMU project intends to remove support for this host OS in')
578 message('a future release if nobody volunteers to maintain it and to')
579 message('provide a build host for our continuous integration setup.')
580 message('configure has succeeded and you can continue to build, but')
581 message('if you care about QEMU on this platform you should contact')
582 message('us upstream at qemu-devel@nongnu.org.')
583endif
This page took 0.089058 seconds and 4 git commands to generate.