contrib/plugins/Makefile is not crossplatform
Host environment
- Operating system: macOS, Windows
- OS/kernel version: -
- Architecture: -
- QEMU flavor: *
- QEMU version:
Emulated/Virtualized environment
- Operating system: *
Description of problem
Currently contrib/plugins/Makefile makes multiple assumptions about paths used, compiler flags available, and library extension
Steps to reproduce
- Compile QEMU from sources on macOS or Windows
- Enter
contrib/plugins - Type
makeand become sad.
Additional information
As the rest of QEMU switched to Meson, maybe it's a good idea to do the same for plugins as well?
This is what I come with myself:
meson.build:
project('qemu-plugins', 'c', meson_version: '>=0.50.0')
qemu_src = get_option('qemu_path')
if qemu_src == ''
qemu_src = '../..'
endif
qemu_include = qemu_src + '/include/qemu'
incdir = include_directories(qemu_include)
plugins = [
'execlog',
'hotblocks',
'hotpages',
'howvec',
'lockstep',
'hwprofile',
'cache',
'drcov',
]
th = dependency('threads', required: true)
glib = dependency('glib-2.0', required: true)
foreach p: plugins
library(p, p + '.c',
include_directories: incdir,
dependencies: [th, glib],
override_options: ['b_lundef=false']
)
endforeach
meson_options.txt:
option('qemu_path', type : 'string', value : '', description : 'Full path to the QEMU sources to build the plugin for')
Edited by Anton Kochkov