summary refs log tree commit diff stats
path: root/gitlab/issues/target_missing/host_missing/accel_missing/1710.toml
blob: 31a39e94a9895ad7f108f97c5b02ba8bbbcc2f9a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
id = 1710
title = "contrib/plugins/Makefile is not crossplatform"
state = "closed"
created_at = "2023-06-15T06:36:17.105Z"
closed_at = "2024-11-06T16:59:18.940Z"
labels = ["TCG plugins", "workflow::Triaged"]
url = "https://gitlab.com/qemu-project/qemu/-/issues/1710"
host-os = "macOS, Windows"
host-arch = "-"
qemu-version = "****"
guest-os = "*"
guest-arch = "n/a"
description = """Currently `contrib/plugins/Makefile` makes multiple assumptions about paths used, compiler flags available, and library extension"""
reproduce = """1. Compile QEMU from sources on macOS or Windows
2. Enter `contrib/plugins`
3. Type `make` and become sad."""
additional = """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`:
```meson
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')
```"""