meson: convert qemu-ga
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
cfad62f1fa
commit
f15bff25f7
53
Makefile
53
Makefile
@ -301,7 +301,6 @@ endif
|
||||
dummy := $(call unnest-vars,, \
|
||||
authz-obj-y \
|
||||
chardev-obj-y \
|
||||
qga-obj-y \
|
||||
qga-vss-dll-obj-y \
|
||||
block-obj-y \
|
||||
block-obj-m \
|
||||
@ -449,52 +448,15 @@ endif
|
||||
qemu-img-cmds.h: $(SRC_PATH)/qemu-img-cmds.hx $(SRC_PATH)/scripts/hxtool
|
||||
$(call quiet-command,sh $(SRC_PATH)/scripts/hxtool -h < $< > $@,"GEN","$@")
|
||||
|
||||
qemu-ga$(EXESUF): LIBS = $(LIBS_QGA)
|
||||
qemu-ga$(EXESUF): QEMU_CFLAGS += -I qga/qapi-generated
|
||||
|
||||
qemu-keymap$(EXESUF): LIBS += $(XKBCOMMON_LIBS)
|
||||
qemu-keymap$(EXESUF): QEMU_CFLAGS += $(XKBCOMMON_CFLAGS)
|
||||
|
||||
qapi-py = $(SRC_PATH)/scripts/qapi/__init__.py \
|
||||
$(SRC_PATH)/scripts/qapi/commands.py \
|
||||
$(SRC_PATH)/scripts/qapi/common.py \
|
||||
$(SRC_PATH)/scripts/qapi/doc.py \
|
||||
$(SRC_PATH)/scripts/qapi/error.py \
|
||||
$(SRC_PATH)/scripts/qapi/events.py \
|
||||
$(SRC_PATH)/scripts/qapi/expr.py \
|
||||
$(SRC_PATH)/scripts/qapi/gen.py \
|
||||
$(SRC_PATH)/scripts/qapi/introspect.py \
|
||||
$(SRC_PATH)/scripts/qapi/parser.py \
|
||||
$(SRC_PATH)/scripts/qapi/schema.py \
|
||||
$(SRC_PATH)/scripts/qapi/source.py \
|
||||
$(SRC_PATH)/scripts/qapi/types.py \
|
||||
$(SRC_PATH)/scripts/qapi/visit.py \
|
||||
$(SRC_PATH)/scripts/qapi-gen.py
|
||||
|
||||
qga/qapi-generated/qga-qapi-types.c qga/qapi-generated/qga-qapi-types.h \
|
||||
qga/qapi-generated/qga-qapi-visit.c qga/qapi-generated/qga-qapi-visit.h \
|
||||
qga/qapi-generated/qga-qapi-commands.h qga/qapi-generated/qga-qapi-commands.c \
|
||||
qga/qapi-generated/qga-qapi-init-commands.h qga/qapi-generated/qga-qapi-init-commands.c \
|
||||
qga/qapi-generated/qga-qapi-doc.texi: \
|
||||
qga/qapi-generated/qapi-gen-timestamp ;
|
||||
qga/qapi-generated/qapi-gen-timestamp: $(SRC_PATH)/qga/qapi-schema.json $(qapi-py)
|
||||
$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-gen.py \
|
||||
-o qga/qapi-generated -p "qga-" $<, \
|
||||
"GEN","$(@:%-timestamp=%)")
|
||||
@>$@
|
||||
|
||||
QGALIB_GEN=$(addprefix qga/qapi-generated/, qga-qapi-types.h qga-qapi-visit.h qga-qapi-commands.h qga-qapi-init-commands.h)
|
||||
$(qga-obj-y): $(QGALIB_GEN)
|
||||
|
||||
qemu-ga$(EXESUF): $(qga-obj-y) $(COMMON_LDADDS)
|
||||
$(call LINK, $^)
|
||||
|
||||
ifdef QEMU_GA_MSI_ENABLED
|
||||
QEMU_GA_MSI=qemu-ga-$(ARCH).msi
|
||||
|
||||
msi: $(QEMU_GA_MSI)
|
||||
|
||||
$(QEMU_GA_MSI): qemu-ga.exe $(QGA_VSS_PROVIDER)
|
||||
$(QEMU_GA_MSI): qga/qemu-ga.exe $(QGA_VSS_PROVIDER)
|
||||
|
||||
$(QEMU_GA_MSI): config-host.mak
|
||||
|
||||
@ -507,8 +469,8 @@ msi:
|
||||
endif
|
||||
|
||||
ifneq ($(EXESUF),)
|
||||
.PHONY: qemu-ga
|
||||
qemu-ga: qemu-ga$(EXESUF) $(QGA_VSS_PROVIDER) $(QEMU_GA_MSI)
|
||||
.PHONY: qga/qemu-ga
|
||||
qga/qemu-ga: qga/qemu-ga$(EXESUF) $(QGA_VSS_PROVIDER) $(QEMU_GA_MSI)
|
||||
endif
|
||||
|
||||
module_block.h: $(SRC_PATH)/scripts/modules/module_block.py config-host.mak
|
||||
@ -533,9 +495,6 @@ clean: recurse-clean ninja-clean clean-ctlist
|
||||
rm -f qemu-img-cmds.h
|
||||
rm -f ui/shader/*-vert.h ui/shader/*-frag.h
|
||||
rm -f $(foreach f,$(generated-files-y),$(f) $(f)-timestamp)
|
||||
rm -f qapi-gen-timestamp
|
||||
rm -f storage-daemon/qapi/qapi-gen-timestamp
|
||||
rm -rf qga/qapi-generated
|
||||
rm -f config-all-devices.mak
|
||||
rm -f $(SUBDIR_DEVICES_MAK)
|
||||
|
||||
@ -657,7 +616,7 @@ endif
|
||||
ifdef CONFIG_TRACE_SYSTEMTAP
|
||||
$(INSTALL_DATA) $(MANUAL_BUILDDIR)/tools/qemu-trace-stap.1 "$(DESTDIR)$(mandir)/man1"
|
||||
endif
|
||||
ifneq (,$(findstring qemu-ga,$(TOOLS)))
|
||||
ifeq ($(CONFIG_GUEST_AGENT),y)
|
||||
$(INSTALL_DATA) $(MANUAL_BUILDDIR)/interop/qemu-ga.8 "$(DESTDIR)$(mandir)/man8"
|
||||
$(INSTALL_DIR) "$(DESTDIR)$(qemu_docdir)/interop"
|
||||
$(INSTALL_DATA) docs/interop/qemu-ga-ref.html "$(DESTDIR)$(qemu_docdir)/interop"
|
||||
@ -678,7 +637,7 @@ install-datadir:
|
||||
|
||||
install-localstatedir:
|
||||
ifdef CONFIG_POSIX
|
||||
ifneq (,$(findstring qemu-ga,$(TOOLS)))
|
||||
ifeq ($(CONFIG_GUEST_AGENT),y)
|
||||
$(INSTALL_DIR) "$(DESTDIR)$(qemu_localstatedir)"/run
|
||||
endif
|
||||
endif
|
||||
@ -870,7 +829,7 @@ $(MANUAL_BUILDDIR)/index.html: $(SRC_PATH)/docs/index.html.in qemu-version.h
|
||||
docs/interop/qemu-qmp-qapi.texi: qapi/qapi-doc.texi
|
||||
@cp -p $< $@
|
||||
|
||||
docs/interop/qemu-ga-qapi.texi: qga/qapi-generated/qga-qapi-doc.texi
|
||||
docs/interop/qemu-ga-qapi.texi: qga/qga-qapi-doc.texi
|
||||
@cp -p $< $@
|
||||
|
||||
html: docs/interop/qemu-qmp-ref.html docs/interop/qemu-ga-ref.html sphinxdocs
|
||||
|
@ -98,5 +98,4 @@ version-obj-$(CONFIG_WIN32) += $(BUILD_DIR)/version.o
|
||||
# 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-obj-y = qga/
|
||||
qga-vss-dll-obj-y = qga/
|
||||
|
14
configure
vendored
14
configure
vendored
@ -872,8 +872,6 @@ FreeBSD)
|
||||
audio_possible_drivers="oss sdl pa"
|
||||
# needed for kinfo_getvmmap(3) in libutil.h
|
||||
LIBS="-lutil $LIBS"
|
||||
# needed for kinfo_getproc
|
||||
libs_qga="-lutil $libs_qga"
|
||||
netmap="" # enable netmap autodetect
|
||||
HOST_VARIANT_DIR="freebsd"
|
||||
;;
|
||||
@ -935,7 +933,6 @@ SunOS)
|
||||
QEMU_CFLAGS="-D__EXTENSIONS__ $QEMU_CFLAGS"
|
||||
solarisnetlibs="-lsocket -lnsl -lresolv"
|
||||
LIBS="$solarisnetlibs $LIBS"
|
||||
libs_qga="$solarisnetlibs $libs_qga"
|
||||
;;
|
||||
Haiku)
|
||||
haiku="yes"
|
||||
@ -4021,7 +4018,6 @@ for i in $glib_modules; do
|
||||
glib_libs=$($pkg_config --libs $i)
|
||||
QEMU_CFLAGS="$glib_cflags $QEMU_CFLAGS"
|
||||
LIBS="$glib_libs $LIBS"
|
||||
libs_qga="$glib_libs $libs_qga"
|
||||
else
|
||||
error_exit "glib-$glib_req_ver $i is required to compile QEMU"
|
||||
fi
|
||||
@ -4232,7 +4228,6 @@ else
|
||||
done
|
||||
if test "$found" = "no"; then
|
||||
LIBS="$pthread_lib $LIBS"
|
||||
libs_qga="$pthread_lib $libs_qga"
|
||||
fi
|
||||
PTHREAD_LIB="$pthread_lib"
|
||||
break
|
||||
@ -5241,7 +5236,6 @@ if compile_prog "" "" ; then
|
||||
:
|
||||
elif compile_prog "" "-lm" ; then
|
||||
LIBS="-lm $LIBS"
|
||||
libs_qga="-lm $libs_qga"
|
||||
else
|
||||
error_exit "libm check failed"
|
||||
fi
|
||||
@ -5266,7 +5260,6 @@ if compile_prog "" "" ; then
|
||||
# we need pthread for static linking. use previous pthread test result
|
||||
elif compile_prog "" "$pthread_lib -lrt" ; then
|
||||
LIBS="$LIBS -lrt"
|
||||
libs_qga="$libs_qga -lrt"
|
||||
fi
|
||||
|
||||
# Check whether we need to link libutil for openpty()
|
||||
@ -5645,7 +5638,6 @@ EOF
|
||||
fi
|
||||
|
||||
LIBS="$lttng_ust_libs $urcu_bp_libs $LIBS"
|
||||
libs_qga="$lttng_ust_libs $urcu_bp_libs $libs_qga"
|
||||
else
|
||||
error_exit "Trace backend 'ust' missing lttng-ust header files"
|
||||
fi
|
||||
@ -6771,7 +6763,6 @@ if [ "$guest_agent" != "no" ]; then
|
||||
if [ "$softmmu" = no -a "$want_tools" = no ] ; then
|
||||
guest_agent=no
|
||||
elif [ "$linux" = "yes" -o "$bsd" = "yes" -o "$solaris" = "yes" -o "$mingw32" = "yes" ] ; then
|
||||
tools="qemu-ga\$(EXESUF) $tools"
|
||||
guest_agent=yes
|
||||
elif [ "$guest_agent" != yes ]; then
|
||||
guest_agent=no
|
||||
@ -7017,6 +7008,9 @@ fi
|
||||
if test "$want_tools" = "yes" ; then
|
||||
echo "CONFIG_TOOLS=y" >> $config_host_mak
|
||||
fi
|
||||
if test "$guest_agent" = "yes" ; then
|
||||
echo "CONFIG_GUEST_AGENT=y" >> $config_host_mak
|
||||
fi
|
||||
if test "$slirp" != "no"; then
|
||||
echo "CONFIG_SLIRP=y" >> $config_host_mak
|
||||
echo "CONFIG_SMBD_COMMAND=\"$smbd\"" >> $config_host_mak
|
||||
@ -7874,7 +7868,7 @@ echo "PTHREAD_LIB=$PTHREAD_LIB" >> $config_host_mak
|
||||
echo "EXESUF=$EXESUF" >> $config_host_mak
|
||||
echo "DSOSUF=$DSOSUF" >> $config_host_mak
|
||||
echo "LDFLAGS_SHARED=$LDFLAGS_SHARED" >> $config_host_mak
|
||||
echo "LIBS_QGA+=$libs_qga" >> $config_host_mak
|
||||
echo "LIBS_QGA=$libs_qga" >> $config_host_mak
|
||||
echo "TASN1_LIBS=$tasn1_libs" >> $config_host_mak
|
||||
echo "TASN1_CFLAGS=$tasn1_cflags" >> $config_host_mak
|
||||
echo "POD2MAN=$POD2MAN" >> $config_host_mak
|
||||
|
@ -132,6 +132,10 @@ if 'CONFIG_CURL' in config_host
|
||||
curl = declare_dependency(compile_args: config_host['CURL_CFLAGS'].split(),
|
||||
link_args: config_host['CURL_LIBS'].split())
|
||||
endif
|
||||
libudev = not_found
|
||||
if 'CONFIG_LIBUDEV' in config_host
|
||||
libudev = declare_dependency(link_args: config_host['LIBUDEV_LIBS'].split())
|
||||
endif
|
||||
|
||||
target_dirs = config_host['TARGET_DIRS'].split()
|
||||
have_user = false
|
||||
@ -294,6 +298,10 @@ qemuutil = declare_dependency(link_with: libqemuutil,
|
||||
|
||||
# Other build targets
|
||||
|
||||
if 'CONFIG_GUEST_AGENT' in config_host
|
||||
subdir('qga')
|
||||
endif
|
||||
|
||||
if have_tools
|
||||
subdir('contrib/rdmacm-mux')
|
||||
subdir('contrib/elf2dmp')
|
||||
|
@ -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/
|
||||
|
@ -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"
|
||||
|
46
qga/meson.build
Normal file
46
qga/meson.build
Normal file
@ -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)
|
@ -129,7 +129,7 @@ ifndef CONFIG_TSAN
|
||||
# https://github.com/google/sanitizers/issues/1116
|
||||
check-unit-$(CONFIG_SOFTMMU) += tests/test-char$(EXESUF)
|
||||
check-unit-$(CONFIG_SOFTMMU) += tests/test-qdev-global-props$(EXESUF)
|
||||
ifneq (,$(findstring qemu-ga,$(TOOLS)))
|
||||
ifeq ($(CONFIG_GUEST_AGENT),y)
|
||||
check-unit-$(call land,$(CONFIG_LINUX),$(CONFIG_VIRTIO_SERIAL)) += tests/test-qga$(EXESUF)
|
||||
endif
|
||||
endif
|
||||
@ -603,7 +603,7 @@ tests/migration/initrd-stress.img: tests/migration/stress$(EXESUF)
|
||||
|
||||
include $(SRC_PATH)/tests/qtest/Makefile.include
|
||||
|
||||
tests/test-qga$(EXESUF): qemu-ga$(EXESUF)
|
||||
tests/test-qga$(EXESUF): qga/qemu-ga$(EXESUF)
|
||||
tests/test-qga$(EXESUF): tests/test-qga.o $(qtest-obj-y)
|
||||
tests/vhost-user-bridge$(EXESUF): tests/vhost-user-bridge.o $(test-util-obj-y) libvhost-user.a
|
||||
tests/qemu-iotests/socket_scm_helper$(EXESUF): tests/qemu-iotests/socket_scm_helper.o
|
||||
|
@ -61,8 +61,8 @@ fixture_setup(TestFixture *fixture, gconstpointer data, gchar **envp)
|
||||
|
||||
path = g_build_filename(fixture->test_dir, "sock", NULL);
|
||||
cwd = g_get_current_dir();
|
||||
cmd = g_strdup_printf("%s%cqemu-ga -m unix-listen -t %s -p %s %s %s",
|
||||
cwd, G_DIR_SEPARATOR,
|
||||
cmd = g_strdup_printf("%s%cqga%cqemu-ga -m unix-listen -t %s -p %s %s %s",
|
||||
cwd, G_DIR_SEPARATOR, G_DIR_SEPARATOR,
|
||||
fixture->test_dir, path,
|
||||
getenv("QTEST_LOG") ? "-v" : "",
|
||||
extra_arg ?: "");
|
||||
@ -699,8 +699,8 @@ static void test_qga_config(gconstpointer data)
|
||||
GKeyFile *kf;
|
||||
|
||||
cwd = g_get_current_dir();
|
||||
cmd = g_strdup_printf("%s%cqemu-ga -D",
|
||||
cwd, G_DIR_SEPARATOR);
|
||||
cmd = g_strdup_printf("%s%cqga%cqemu-ga -D",
|
||||
cwd, G_DIR_SEPARATOR, G_DIR_SEPARATOR);
|
||||
g_free(cwd);
|
||||
g_shell_parse_argv(cmd, NULL, &argv, &error);
|
||||
g_free(cmd);
|
||||
|
Loading…
Reference in New Issue
Block a user