aboutsummaryrefslogtreecommitdiff
path: root/qga
diff options
context:
space:
mode:
Diffstat (limited to 'qga')
-rw-r--r--qga/Makefile.objs9
-rw-r--r--qga/installer/qemu-ga.wxs2
-rw-r--r--qga/meson.build46
3 files changed, 47 insertions, 10 deletions
diff --git a/qga/Makefile.objs b/qga/Makefile.objs
index 9c558ae51c..9ecf2496da 100644
--- a/qga/Makefile.objs
+++ b/qga/Makefile.objs
@@ -1,10 +1 @@
-commands-posix.o-libs := $(LIBUDEV_LIBS)
-qga-obj-y = commands.o guest-agent-command-state.o main.o
-qga-obj-$(CONFIG_POSIX) += commands-posix.o channel-posix.o
-qga-obj-$(CONFIG_WIN32) += commands-win32.o channel-win32.o service-win32.o
-qga-obj-$(CONFIG_WIN32) += vss-win32.o
-qga-obj-y += qapi-generated/qga-qapi-types.o qapi-generated/qga-qapi-visit.o
-qga-obj-y += qapi-generated/qga-qapi-commands.o
-qga-obj-y += qapi-generated/qga-qapi-init-commands.o
-
qga-vss-dll-obj-$(CONFIG_QGA_VSS) += vss-win32/
diff --git a/qga/installer/qemu-ga.wxs b/qga/installer/qemu-ga.wxs
index f6781752e6..9cb4c3d733 100644
--- a/qga/installer/qemu-ga.wxs
+++ b/qga/installer/qemu-ga.wxs
@@ -66,7 +66,7 @@
<Directory Id="$(var.GaProgramFilesFolder)" Name="QEMU Guest Agent">
<Directory Id="qemu_ga_directory" Name="Qemu-ga">
<Component Id="qemu_ga" Guid="{908B7199-DE2A-4DC6-A8D0-27A5AE444FEA}">
- <File Id="qemu_ga.exe" Name="qemu-ga.exe" Source="$(env.BUILD_DIR)/qemu-ga.exe" KeyPath="yes" DiskId="1"/>
+ <File Id="qemu_ga.exe" Name="qemu-ga.exe" Source="$(env.BUILD_DIR)/qga/qemu-ga.exe" KeyPath="yes" DiskId="1"/>
<ServiceInstall
Id="ServiceInstaller"
Type="ownProcess"
diff --git a/qga/meson.build b/qga/meson.build
new file mode 100644
index 0000000000..3513a90f5d
--- /dev/null
+++ b/qga/meson.build
@@ -0,0 +1,46 @@
+qga_qapi_outputs = [
+ 'qga-qapi-commands.c',
+ 'qga-qapi-commands.h',
+ 'qga-qapi-doc.texi',
+ 'qga-qapi-emit-events.c',
+ 'qga-qapi-emit-events.h',
+ 'qga-qapi-events.c',
+ 'qga-qapi-events.h',
+ 'qga-qapi-init-commands.c',
+ 'qga-qapi-init-commands.h',
+ 'qga-qapi-introspect.c',
+ 'qga-qapi-introspect.h',
+ 'qga-qapi-types.c',
+ 'qga-qapi-types.h',
+ 'qga-qapi-visit.c',
+ 'qga-qapi-visit.h',
+]
+
+qga_qapi_files = custom_target('QGA QAPI files',
+ output: qga_qapi_outputs,
+ input: 'qapi-schema.json',
+ command: [ qapi_gen, '-o', 'qga', '-p', 'qga-', '@INPUT0@' ],
+ depend_files: qapi_gen_depends)
+qga_ss = ss.source_set()
+qga_ss.add(qga_qapi_files)
+qga_ss.add(files(
+ 'commands.c',
+ 'guest-agent-command-state.c',
+ 'main.c',
+))
+qga_ss.add(when: 'CONFIG_POSIX', if_true: files(
+ 'channel-posix.c',
+ 'commands-posix.c'))
+qga_ss.add(when: 'CONFIG_WIN32', if_true: files(
+ 'channel-win32.c',
+ 'commands-win32.c',
+ 'service-win32.c',
+ 'vss-win32.c'
+))
+
+qga_ss = qga_ss.apply(config_host, strict: false)
+
+qga = executable('qemu-ga', qga_ss.sources(),
+ link_args: config_host['LIBS_QGA'].split(),
+ dependencies: [qemuutil, libudev],
+ install: true)