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