From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Marc-André Lureau" <marcandre.lureau@redhat.com>
Subject: [PATCH 025/142] meson: convert vss-win32
Date: Tue, 28 Jan 2020 18:51:45 +0100 [thread overview]
Message-ID: <20200128175342.9066-26-pbonzini@redhat.com> (raw)
In-Reply-To: <20200128175342.9066-1-pbonzini@redhat.com>
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
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
next prev parent reply other threads:[~2020-01-28 18:22 UTC|newest]
Thread overview: 151+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-28 17:51 [RFC PATCH v4 000/142] Proof of concept for Meson integration Paolo Bonzini
2020-01-28 17:51 ` [PATCH 001/142] minikconf: accept alnum identifiers Paolo Bonzini
2020-01-29 12:09 ` Thomas Huth
2020-01-29 13:41 ` Marc-André Lureau
2020-01-29 13:47 ` Thomas Huth
2020-01-29 14:04 ` Marc-André Lureau
2020-01-30 5:39 ` Paolo Bonzini
2020-01-28 17:51 ` [PATCH 002/142] optionrom: simplify Makefile Paolo Bonzini
2020-01-28 17:51 ` [PATCH 003/142] pc-bios/s390-ccw: " Paolo Bonzini
2020-01-28 17:51 ` [PATCH 004/142] build-sys hack: ensure target directory is there Paolo Bonzini
2020-01-28 17:51 ` [PATCH 005/142] configure: do not include $(...) variables in config-host.mak Paolo Bonzini
2020-01-28 17:51 ` [PATCH 006/142] configure: expand path variables for meson configure Paolo Bonzini
2020-01-28 17:51 ` [PATCH 007/142] configure: integrate Meson in the build system Paolo Bonzini
2020-01-28 17:51 ` [PATCH 008/142] configure: generate Meson cross file Paolo Bonzini
2020-01-28 17:51 ` [PATCH 009/142] build-sys: add meson submodule Paolo Bonzini
2020-01-28 17:51 ` [PATCH 010/142] meson: enable pie Paolo Bonzini
2020-01-28 17:51 ` [PATCH 011/142] meson: use coverage option Paolo Bonzini
2020-01-28 17:51 ` [PATCH 012/142] meson: add testsuite Makefile generator Paolo Bonzini
2020-01-28 17:51 ` [PATCH 013/142] libqemuutil: convert to meson Paolo Bonzini
2020-01-28 17:51 ` [PATCH 014/142] meson: add remaining generated tcg trace helpers Paolo Bonzini
2020-01-28 17:51 ` [PATCH 015/142] meson: add version.o Paolo Bonzini
2020-01-28 17:51 ` [PATCH 016/142] contrib/libvhost-user: convert to Meson Paolo Bonzini
2020-01-28 17:51 ` [PATCH 017/142] contrib/vhost-user-blk: " Paolo Bonzini
2020-01-28 17:51 ` [PATCH 018/142] contrib/vhost-user-scsi: " Paolo Bonzini
2020-01-28 17:51 ` [PATCH 019/142] contrib/rdmacm-mux: " Paolo Bonzini
2020-01-28 17:51 ` [PATCH 020/142] contrib/vhost-user-input: convert to meson Paolo Bonzini
2020-01-28 17:51 ` [PATCH 021/142] contrib/vhost-user-gpu: " Paolo Bonzini
2020-01-28 17:51 ` [PATCH 022/142] contrib/ivshmem: " Paolo Bonzini
2020-01-28 17:51 ` [PATCH 023/142] contrib/elf2dmp: " Paolo Bonzini
2020-01-28 17:51 ` [PATCH 024/142] meson: convert qemu-ga Paolo Bonzini
2020-01-28 17:51 ` Paolo Bonzini [this message]
2020-01-28 17:51 ` [PATCH 026/142] meson: add msi generation Paolo Bonzini
2020-01-28 17:51 ` [PATCH 027/142] meson: convert dummy Windows qga/qemu-ga target Paolo Bonzini
2020-01-28 17:51 ` [PATCH 028/142] meson: add qemu-bridge-helper Paolo Bonzini
2020-01-28 17:51 ` [PATCH 029/142] meson: add qemu-keymap Paolo Bonzini
2020-01-28 17:51 ` [PATCH 030/142] meson: add qemu-edid Paolo Bonzini
2020-01-28 17:51 ` [PATCH 031/142] meson: add virtfs-proxy-helper Paolo Bonzini
2020-01-28 17:51 ` [PATCH 032/142] meson: keymap-gen Paolo Bonzini
2020-01-28 17:51 ` [PATCH 033/142] meson: generate qemu-version.h Paolo Bonzini
2020-01-28 17:51 ` [PATCH 034/142] meson: generate shader headers Paolo Bonzini
2020-01-28 17:51 ` [PATCH 035/142] meson: generate hxtool files Paolo Bonzini
2020-01-28 17:51 ` [PATCH 036/142] meson: configure 50-qemu-gpu.json Paolo Bonzini
2020-01-28 17:51 ` [PATCH 037/142] meson: uncompress edk2 bios Paolo Bonzini
2020-01-28 17:51 ` [PATCH 038/142] build-sys hack: link with whole .fa archives Paolo Bonzini
2020-01-28 17:51 ` [PATCH 039/142] meson: convert qom directory to Meson Paolo Bonzini
2020-01-28 17:52 ` [PATCH 040/142] meson: convert authz " Paolo Bonzini
2020-01-28 17:52 ` [PATCH 041/142] meson: convert crypto " Paolo Bonzini
2020-01-28 17:52 ` [PATCH 042/142] meson: convert io " Paolo Bonzini
2020-01-28 17:52 ` [PATCH 043/142] meson: convert target/s390x/gen-features.h Paolo Bonzini
2020-01-28 17:52 ` [PATCH 044/142] meson: infrastructure for building emulators Paolo Bonzini
2020-01-28 17:52 ` [PATCH 045/142] meson: add macos dependencies Paolo Bonzini
2020-01-28 17:52 ` [PATCH 046/142] meson: add modules infrastructure Paolo Bonzini
2020-01-28 17:52 ` [PATCH 047/142] meson: convert chardev directory to Meson (tools part) Paolo Bonzini
2020-01-28 17:52 ` [PATCH 048/142] meson: convert block Paolo Bonzini
2020-01-28 17:52 ` [PATCH 049/142] meson: qemu-{img,io,nbd} Paolo Bonzini
2020-01-28 17:52 ` [PATCH 050/142] meson: qemu-pr-helper Paolo Bonzini
2020-01-28 17:52 ` [PATCH 051/142] configure, Makefile; remove TOOLS and HELPERS-y variable Paolo Bonzini
2020-01-28 17:52 ` [PATCH 052/142] meson: convert chardev directory to Meson (emulator part) Paolo Bonzini
2020-01-28 17:52 ` [PATCH 053/142] meson: convert audio directory to Meson Paolo Bonzini
2020-01-28 17:52 ` [PATCH 054/142] meson: convert ui " Paolo Bonzini
2020-01-28 17:52 ` [PATCH 055/142] meson: convert root " Paolo Bonzini
2020-01-28 17:52 ` [PATCH 056/142] meson: convert trace/ Paolo Bonzini
2020-01-28 17:52 ` [PATCH 057/142] meson: convert qom/ Paolo Bonzini
2020-01-28 17:52 ` [PATCH 058/142] meson: convert block/ Paolo Bonzini
2020-01-28 17:52 ` [PATCH 059/142] meson: convert dump/ Paolo Bonzini
2020-01-28 17:52 ` [PATCH 060/142] meson: convert monitor directory to Meson Paolo Bonzini
2020-01-28 17:52 ` [PATCH 061/142] meson: convert replay " Paolo Bonzini
2020-01-28 17:52 ` [PATCH 062/142] meson: convert migration " Paolo Bonzini
2020-01-28 17:52 ` [PATCH 063/142] meson: build softmmu-specific migration/ram.c Paolo Bonzini
2020-01-28 17:52 ` [PATCH 064/142] meson: convert net directory to Meson Paolo Bonzini
2020-01-28 17:52 ` [PATCH 065/142] meson: convert backends " Paolo Bonzini
2020-01-28 17:52 ` [PATCH 066/142] meson: convert fsdev/ Paolo Bonzini
2020-01-28 17:52 ` [PATCH 067/142] meson: convert disas directory to Meson Paolo Bonzini
2020-01-28 17:52 ` [PATCH 068/142] meson: convert qapi-specific to meson Paolo Bonzini
2020-01-28 17:52 ` [PATCH 069/142] meson: convert hw/xen Paolo Bonzini
2020-01-28 17:52 ` [PATCH 070/142] meson: convert hw/core Paolo Bonzini
2020-01-28 17:52 ` [PATCH 071/142] meson: convert hw/semihosting Paolo Bonzini
2020-01-28 17:52 ` [PATCH 072/142] meson: convert hw/nubus Paolo Bonzini
2020-01-28 17:52 ` [PATCH 073/142] meson: convert hw/smbios Paolo Bonzini
2020-01-28 17:52 ` [PATCH 074/142] meson: convert hw/mem Paolo Bonzini
2020-01-28 17:52 ` [PATCH 075/142] meson: convert hw/watchdog Paolo Bonzini
2020-01-28 17:52 ` [PATCH 076/142] meson: convert hw/virtio Paolo Bonzini
2020-01-28 17:52 ` [PATCH 077/142] meson: convert hw/vfio Paolo Bonzini
2020-01-28 17:52 ` [PATCH 078/142] meson: convert hw/usb Paolo Bonzini
2020-01-28 17:52 ` [PATCH 079/142] meson: convert hw/tpm Paolo Bonzini
2020-01-28 17:52 ` [PATCH 080/142] meson: convert hw/timer Paolo Bonzini
2020-01-28 17:52 ` [PATCH 081/142] meson: convert hw/rtc Paolo Bonzini
2020-01-28 17:52 ` [PATCH 082/142] meson: convert hw/ssi Paolo Bonzini
2020-01-28 17:52 ` [PATCH 083/142] meson: convert hw/sd Paolo Bonzini
2020-01-28 17:52 ` [PATCH 084/142] meson: convert hw/scsi Paolo Bonzini
2020-01-28 17:52 ` [PATCH 085/142] meson: convert hw/pcmcia Paolo Bonzini
2020-01-28 17:52 ` [PATCH 086/142] meson: convert hw/pci-host Paolo Bonzini
2020-01-28 17:52 ` [PATCH 087/142] meson: convert hw/pci-bridge Paolo Bonzini
2020-01-28 17:52 ` [PATCH 088/142] meson: convert hw/pci Paolo Bonzini
2020-01-28 17:52 ` [PATCH 089/142] meson: convert hw/nvram Paolo Bonzini
2020-01-28 17:52 ` [PATCH 090/142] meson: convert hw/rdma Paolo Bonzini
2020-01-28 17:52 ` [PATCH 091/142] meson: convert hw/net Paolo Bonzini
2020-01-28 17:52 ` [PATCH 092/142] meson: convert hw/misc Paolo Bonzini
2020-01-28 17:52 ` [PATCH 093/142] meson: convert hw/isa Paolo Bonzini
2020-01-28 17:52 ` [PATCH 094/142] meson: convert hw/ipmi Paolo Bonzini
2020-01-28 17:52 ` [PATCH 095/142] meson: convert hw/ipack Paolo Bonzini
2020-01-28 17:52 ` [PATCH 096/142] meson: convert hw/intc Paolo Bonzini
2020-01-28 17:52 ` [PATCH 097/142] meson: convert hw/input Paolo Bonzini
2020-01-28 17:52 ` [PATCH 098/142] meson: convert hw/ide Paolo Bonzini
2020-01-28 17:52 ` [PATCH 099/142] meson: convert hw/i2c Paolo Bonzini
2020-01-28 17:53 ` [PATCH 100/142] meson: convert hw/hyperv Paolo Bonzini
2020-01-28 17:53 ` [PATCH 101/142] meson: convert hw/gpio Paolo Bonzini
2020-01-28 17:53 ` [PATCH 102/142] meson: convert hw/dma Paolo Bonzini
2020-01-28 17:53 ` [PATCH 103/142] meson: convert hw/display Paolo Bonzini
2020-01-28 17:53 ` [PATCH 104/142] meson: convert hw/cpu Paolo Bonzini
2020-01-28 17:53 ` [PATCH 105/142] meson: convert hw/char Paolo Bonzini
2020-01-28 17:53 ` [PATCH 106/142] meson: convert hw/block Paolo Bonzini
2020-01-28 17:53 ` [PATCH 107/142] meson: convert hw/audio Paolo Bonzini
2020-01-28 17:53 ` [PATCH 108/142] meson: convert hw/adc Paolo Bonzini
2020-01-28 17:53 ` [PATCH 109/142] meson: convert hw/acpi Paolo Bonzini
2020-01-28 17:53 ` [PATCH 110/142] meson: convert hw/9pfs Paolo Bonzini
2020-01-28 17:53 ` [PATCH 111/142] meson: convert hw/arch* Paolo Bonzini
2020-01-28 17:53 ` [PATCH 112/142] meson: target Paolo Bonzini
2020-01-28 17:53 ` [PATCH 113/142] meson: accel Paolo Bonzini
2020-01-28 17:53 ` [PATCH 114/142] meson: linux-user Paolo Bonzini
2020-01-28 17:53 ` [PATCH 115/142] meson: bsd-user Paolo Bonzini
2020-01-28 17:53 ` [PATCH 116/142] meson: cpu-emu Paolo Bonzini
2020-01-28 17:53 ` [PATCH 117/142] meson: softmmu Paolo Bonzini
2020-01-28 17:53 ` [PATCH 118/142] meson: plugins Paolo Bonzini
2020-01-28 17:53 ` [PATCH 119/142] Aaaaallelujah! Paolo Bonzini
2020-01-29 12:12 ` Thomas Huth
2020-01-29 13:38 ` Aleksandar Markovic
2020-01-29 13:58 ` Marc-André Lureau
2020-01-28 17:53 ` [PATCH 120/142] meson: generate systemtap tapset files Paolo Bonzini
2020-01-28 17:53 ` [PATCH 121/142] build-sys/rules.mak: remove version.o Paolo Bonzini
2020-01-28 17:53 ` [PATCH 122/142] remove Makefile.target Paolo Bonzini
2020-01-28 17:53 ` [PATCH 123/142] meson: sphinx-build Paolo Bonzini
2020-01-28 17:53 ` [PATCH 124/142] meson: generate version.texi Paolo Bonzini
2020-01-28 17:53 ` [PATCH 125/142] meson: build texi doc Paolo Bonzini
2020-01-28 17:53 ` [PATCH 126/142] meson: add NSIS building Paolo Bonzini
2020-01-28 17:53 ` [PATCH 127/142] meson: install some scripts Paolo Bonzini
2020-01-28 17:53 ` [PATCH 128/142] meson: install edk2 Paolo Bonzini
2020-01-28 17:53 ` [PATCH 129/142] meson: install blobs Paolo Bonzini
2020-01-28 17:53 ` [PATCH 130/142] meson: install edk2 json descriptors Paolo Bonzini
2020-01-28 17:53 ` [PATCH 131/142] meson: install icons Paolo Bonzini
2020-01-28 17:53 ` [PATCH 132/142] meson: install desktop file Paolo Bonzini
2020-01-28 17:53 ` [PATCH 133/142] meson: convert pc-bios/keymaps/Makefile Paolo Bonzini
2020-01-28 17:53 ` [PATCH 134/142] meson: convert po/ Paolo Bonzini
2020-01-28 17:53 ` [PATCH 135/142] meson: replace mostly useless pc-bios/Makefile Paolo Bonzini
2020-01-28 17:53 ` [PATCH 136/142] meson: convert pc-bios/s390-ccw Paolo Bonzini
2020-01-28 17:53 ` [PATCH 137/142] meson: convert pc-bios/optionrom Paolo Bonzini
2020-01-28 17:53 ` [PATCH 138/142] rules.mak: drop unneeded macros Paolo Bonzini
2020-01-28 17:53 ` [PATCH 139/142] meson: convert check-block Paolo Bonzini
2020-01-28 17:53 ` [PATCH 140/142] meson: convert check-decodetree Paolo Bonzini
2020-01-28 17:53 ` [PATCH 141/142] meson: convert tests/fp and check-softfloat Paolo Bonzini
2020-01-28 17:53 ` [PATCH 142/142] meson: convert check-qapi-schema Paolo Bonzini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200128175342.9066-26-pbonzini@redhat.com \
--to=pbonzini@redhat.com \
--cc=marcandre.lureau@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).