[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 025/142] meson: convert vss-win32
From: |
Paolo Bonzini |
Subject: |
[PATCH 025/142] meson: convert vss-win32 |
Date: |
Tue, 28 Jan 2020 18:51:45 +0100 |
From: Marc-André Lureau <address@hidden>
Signed-off-by: Marc-André Lureau <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
---
Makefile | 1 -
Makefile.objs | 8 --------
meson.build | 4 +++-
qga/Makefile.objs | 1 -
qga/meson.build | 6 ++++++
qga/vss-win32/Makefile.objs | 23 -----------------------
qga/vss-win32/meson.build | 28 ++++++++++++++++++++++++++++
7 files changed, 37 insertions(+), 34 deletions(-)
delete mode 100644 qga/Makefile.objs
delete mode 100644 qga/vss-win32/Makefile.objs
create mode 100644 qga/vss-win32/meson.build
diff --git a/Makefile b/Makefile
index ab007ff60f..5ddec3a5da 100644
--- a/Makefile
+++ b/Makefile
@@ -284,7 +284,6 @@ endif
dummy := $(call unnest-vars,, \
authz-obj-y \
chardev-obj-y \
- qga-vss-dll-obj-y \
block-obj-y \
block-obj-m \
crypto-obj-y \
diff --git a/Makefile.objs b/Makefile.objs
index 92321847d1..f1465a620e 100644
--- a/Makefile.objs
+++ b/Makefile.objs
@@ -93,11 +93,3 @@ version-obj-$(CONFIG_WIN32) += $(BUILD_DIR)/version.o
######################################################################
# tracing
util-obj-y += trace/
-
-######################################################################
-# guest agent
-
-# FIXME: a few definitions from qapi/qapi-types.o and
-# qapi/qapi-visit.o are needed by libqemuutil.a. These should be
-# extracted into a QAPI schema module, or perhaps a separate schema.
-qga-vss-dll-obj-y = qga/
diff --git a/meson.build b/meson.build
index 04e11460a0..8709847493 100644
--- a/meson.build
+++ b/meson.build
@@ -9,12 +9,14 @@ add_project_arguments(config_host['CFLAGS'].split(),
language: ['c', 'objc'])
add_project_arguments(config_host['QEMU_CFLAGS'].split(),
language: 'c')
+add_project_arguments(config_host['QEMU_CXXFLAGS'].split(),
+ language: 'cpp')
add_project_link_arguments(config_host['LDFLAGS'].split(),
language: ['c', 'cpp', 'objc'])
add_project_link_arguments(config_host['QEMU_LDFLAGS'].split(),
language: ['c', 'cpp', 'objc'])
add_project_arguments(config_host['QEMU_INCLUDES'].split(),
- language: 'c')
+ language: ['c', 'cpp'])
configure_file(input: files('scripts/ninjatool.py'),
output: 'ninjatool',
diff --git a/qga/Makefile.objs b/qga/Makefile.objs
deleted file mode 100644
index 9ecf2496da..0000000000
--- a/qga/Makefile.objs
+++ /dev/null
@@ -1 +0,0 @@
-qga-vss-dll-obj-$(CONFIG_QGA_VSS) += vss-win32/
diff --git a/qga/meson.build b/qga/meson.build
index 116102b865..f0ec8cf0d8 100644
--- a/qga/meson.build
+++ b/qga/meson.build
@@ -41,3 +41,9 @@ 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])
+
+if host_machine.system() == 'windows'
+ if 'CONFIG_QGA_VSS' in config_host
+ subdir('vss-win32')
+ endif
+endif
diff --git a/qga/vss-win32/Makefile.objs b/qga/vss-win32/Makefile.objs
deleted file mode 100644
index fd3ba1896b..0000000000
--- a/qga/vss-win32/Makefile.objs
+++ /dev/null
@@ -1,23 +0,0 @@
-# rules to build qga-vss.dll
-
-qga-vss-dll-obj-y += requester.o provider.o install.o
-
-obj-qga-vss-dll-obj-y = $(addprefix $(obj)/, $(qga-vss-dll-obj-y))
-$(obj-qga-vss-dll-obj-y): QEMU_CXXFLAGS := $(filter-out -fstack-protector-all
-fstack-protector-strong, $(QEMU_CXXFLAGS)) -Wno-unknown-pragmas
-Wno-delete-non-virtual-dtor
-
-$(obj)/qga-vss.dll: LDFLAGS = -shared
-Wl,--add-stdcall-alias,--enable-stdcall-fixup -lglib-2.0 -lole32 -loleaut32
-lshlwapi -luuid -lintl -lws2_32 -static
-$(obj)/qga-vss.dll: $(obj-qga-vss-dll-obj-y) $(SRC_PATH)/$(obj)/qga-vss.def
- $(call quiet-command,$(CXX) -o $@ $(qga-vss-dll-obj-y)
$(SRC_PATH)/qga/vss-win32/qga-vss.def $(CXXFLAGS)
$(LDFLAGS),"LINK","$(TARGET_DIR)$@")
-
-
-# rules to build qga-provider.tlb
-# Currently, only native build is supported because building .tlb
-# (TypeLibrary) from .idl requires WindowsSDK and MIDL (and cl.exe in VC++).
-MIDL=$(WIN_SDK)/Bin/midl
-
-$(obj)/qga-vss.tlb: $(SRC_PATH)/$(obj)/qga-vss.idl
-ifeq ($(WIN_SDK),"")
- $(call quiet-command,cp $(dir $<)qga-vss.tlb
$@,"COPY","$(TARGET_DIR)$@")
-else
- $(call quiet-command,$(MIDL) -tlb $@ -I $(WIN_SDK)/Include
$<,"MIDL","$(TARGET_DIR)$@")
-endif
diff --git a/qga/vss-win32/meson.build b/qga/vss-win32/meson.build
new file mode 100644
index 0000000000..a7c865ffde
--- /dev/null
+++ b/qga/vss-win32/meson.build
@@ -0,0 +1,28 @@
+if add_languages('cpp', required: false)
+ glib_static = dependency('glib-2.0', static: true)
+ link_args = cc.get_supported_link_arguments(['-fstack-protector-all',
'-fstack-protector-strong', '-Wl,--add-stdcall-alias',
'-Wl,--enable-stdcall-fixup'])
+
+ shared_module('qga-vss', ['requester.cpp', 'provider.cpp', 'install.cpp'],
+ name_prefix: '',
+ cpp_args: ['-Wno-unknown-pragmas',
'-Wno-delete-non-virtual-dtor', '-Wno-non-virtual-dtor'],
+ link_args: link_args,
+ vs_module_defs: 'qga-vss.def',
+ dependencies: glib_static)
+endif
+
+# rules to build qga-vss.tlb
+# Currently, only native build is supported because building .tlb
+# (TypeLibrary) from .idl requires WindowsSDK and MIDL (and cl.exe in VC++).
+midl = find_program('midl', required: false)
+if midl.found()
+ gen_tlb = custom_target('gen-tlb',
+ input: 'qga-vss.idl',
+ output: 'qga-vss.tlb',
+ command: [midl, '-tlb', '-I' +
config_host['WIN_SDK'],
+ '@INPUT@', '@OUTPUT@'])
+else
+ gen_tlb = custom_target('gen-tlb',
+ input: 'qga-vss.tlb',
+ output: 'qga-vss.tlb',
+ command: ['cp', '@INPUT@', '@OUTPUT@'])
+endif
--
2.21.0
- [PATCH 015/142] meson: add version.o, (continued)
- [PATCH 015/142] meson: add version.o, Paolo Bonzini, 2020/01/28
- [PATCH 017/142] contrib/vhost-user-blk: convert to Meson, Paolo Bonzini, 2020/01/28
- [PATCH 018/142] contrib/vhost-user-scsi: convert to Meson, Paolo Bonzini, 2020/01/28
- [PATCH 019/142] contrib/rdmacm-mux: convert to Meson, Paolo Bonzini, 2020/01/28
- [PATCH 020/142] contrib/vhost-user-input: convert to meson, Paolo Bonzini, 2020/01/28
- [PATCH 013/142] libqemuutil: convert to meson, Paolo Bonzini, 2020/01/28
- [PATCH 021/142] contrib/vhost-user-gpu: convert to meson, Paolo Bonzini, 2020/01/28
- [PATCH 022/142] contrib/ivshmem: convert to meson, Paolo Bonzini, 2020/01/28
- [PATCH 023/142] contrib/elf2dmp: convert to meson, Paolo Bonzini, 2020/01/28
- [PATCH 024/142] meson: convert qemu-ga, Paolo Bonzini, 2020/01/28
- [PATCH 025/142] meson: convert vss-win32,
Paolo Bonzini <=
- [PATCH 026/142] meson: add msi generation, Paolo Bonzini, 2020/01/28
- [PATCH 027/142] meson: convert dummy Windows qga/qemu-ga target, Paolo Bonzini, 2020/01/28
- [PATCH 028/142] meson: add qemu-bridge-helper, Paolo Bonzini, 2020/01/28
- [PATCH 029/142] meson: add qemu-keymap, Paolo Bonzini, 2020/01/28
- [PATCH 030/142] meson: add qemu-edid, Paolo Bonzini, 2020/01/28
- [PATCH 031/142] meson: add virtfs-proxy-helper, Paolo Bonzini, 2020/01/28
- [PATCH 032/142] meson: keymap-gen, Paolo Bonzini, 2020/01/28
- [PATCH 033/142] meson: generate qemu-version.h, Paolo Bonzini, 2020/01/28
- [PATCH 034/142] meson: generate shader headers, Paolo Bonzini, 2020/01/28
- [PATCH 035/142] meson: generate hxtool files, Paolo Bonzini, 2020/01/28