summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaolo Bonzini2020-02-06 15:48:52 +0100
committerPaolo Bonzini2020-08-21 12:30:44 +0200
commita0b93237d82bed836842a75f9927ec72ebba280b (patch)
treed415a4b55bcb8c66a1c912a7481dbac456a99336
parentmeson: move SDL and SDL-image detection to meson (diff)
downloadqemu-a0b93237d82bed836842a75f9927ec72ebba280b.tar.gz
qemu-a0b93237d82bed836842a75f9927ec72ebba280b.tar.xz
qemu-a0b93237d82bed836842a75f9927ec72ebba280b.zip
meson: convert VNC and dependent libraries to meson
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rwxr-xr-xconfigure122
-rw-r--r--meson.build40
-rw-r--r--meson_options.txt4
-rw-r--r--ui/meson.build10
4 files changed, 45 insertions, 131 deletions
diff --git a/configure b/configure
index 5b7b932e8d..916bd5085a 100755
--- a/configure
+++ b/configure
@@ -426,12 +426,12 @@ sdl="auto"
sdl_image="auto"
virtfs=""
mpath=""
-vnc="yes"
+vnc="enabled"
sparse="no"
vde=""
-vnc_sasl=""
-vnc_jpeg=""
-vnc_png=""
+vnc_sasl="auto"
+vnc_jpeg="auto"
+vnc_png="auto"
xkbcommon=""
xen=""
xen_ctrl_version=""
@@ -1157,9 +1157,9 @@ for opt do
;;
--enable-mpath) mpath="yes"
;;
- --disable-vnc) vnc="no"
+ --disable-vnc) vnc="disabled"
;;
- --enable-vnc) vnc="yes"
+ --enable-vnc) vnc="enabled"
;;
--oss-lib=*) oss_lib="$optarg"
;;
@@ -1195,17 +1195,17 @@ for opt do
;;
--disable-strip) strip_opt="no"
;;
- --disable-vnc-sasl) vnc_sasl="no"
+ --disable-vnc-sasl) vnc_sasl="disabled"
;;
- --enable-vnc-sasl) vnc_sasl="yes"
+ --enable-vnc-sasl) vnc_sasl="enabled"
;;
- --disable-vnc-jpeg) vnc_jpeg="no"
+ --disable-vnc-jpeg) vnc_jpeg="disabled"
;;
- --enable-vnc-jpeg) vnc_jpeg="yes"
+ --enable-vnc-jpeg) vnc_jpeg="enabled"
;;
- --disable-vnc-png) vnc_png="no"
+ --disable-vnc-png) vnc_png="disabled"
;;
- --enable-vnc-png) vnc_png="yes"
+ --enable-vnc-png) vnc_png="enabled"
;;
--disable-slirp) slirp="no"
;;
@@ -3429,85 +3429,6 @@ EOF
fi
##########################################
-# VNC SASL detection
-if test "$vnc" = "yes" && test "$vnc_sasl" != "no" ; then
- cat > $TMPC <<EOF
-#include <sasl/sasl.h>
-#include <stdio.h>
-int main(void) { sasl_server_init(NULL, "qemu"); return 0; }
-EOF
- # Assuming Cyrus-SASL installed in /usr prefix
- # QEMU defines struct iovec in "qemu/osdep.h",
- # we don't want libsasl to redefine it in <sasl/sasl.h>.
- vnc_sasl_cflags="-DSTRUCT_IOVEC_DEFINED"
- vnc_sasl_libs="-lsasl2"
- if compile_prog "$vnc_sasl_cflags" "$vnc_sasl_libs" ; then
- vnc_sasl=yes
- libs_softmmu="$vnc_sasl_libs $libs_softmmu"
- QEMU_CFLAGS="$QEMU_CFLAGS $vnc_sasl_cflags"
- else
- if test "$vnc_sasl" = "yes" ; then
- feature_not_found "vnc-sasl" "Install Cyrus SASL devel"
- fi
- vnc_sasl=no
- fi
-fi
-
-##########################################
-# VNC JPEG detection
-if test "$vnc" = "yes" && test "$vnc_jpeg" != "no" ; then
-cat > $TMPC <<EOF
-#include <stdio.h>
-#include <jpeglib.h>
-int main(void) { struct jpeg_compress_struct s; jpeg_create_compress(&s); return 0; }
-EOF
- vnc_jpeg_cflags=""
- vnc_jpeg_libs="-ljpeg"
- if compile_prog "$vnc_jpeg_cflags" "$vnc_jpeg_libs" ; then
- vnc_jpeg=yes
- libs_softmmu="$vnc_jpeg_libs $libs_softmmu"
- QEMU_CFLAGS="$QEMU_CFLAGS $vnc_jpeg_cflags"
- else
- if test "$vnc_jpeg" = "yes" ; then
- feature_not_found "vnc-jpeg" "Install libjpeg-turbo devel"
- fi
- vnc_jpeg=no
- fi
-fi
-
-##########################################
-# VNC PNG detection
-if test "$vnc" = "yes" && test "$vnc_png" != "no" ; then
-cat > $TMPC <<EOF
-//#include <stdio.h>
-#include <png.h>
-#include <stddef.h>
-int main(void) {
- png_structp png_ptr;
- png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
- return png_ptr != 0;
-}
-EOF
- if $pkg_config libpng --exists; then
- vnc_png_cflags=$($pkg_config libpng --cflags)
- vnc_png_libs=$($pkg_config libpng --libs)
- else
- vnc_png_cflags=""
- vnc_png_libs="-lpng"
- fi
- if compile_prog "$vnc_png_cflags" "$vnc_png_libs" ; then
- vnc_png=yes
- libs_softmmu="$vnc_png_libs $libs_softmmu"
- QEMU_CFLAGS="$QEMU_CFLAGS $vnc_png_cflags"
- else
- if test "$vnc_png" = "yes" ; then
- feature_not_found "vnc-png" "Install libpng devel"
- fi
- vnc_png=no
- fi
-fi
-
-##########################################
# xkbcommon probe
if test "$xkbcommon" != "no" ; then
if $pkg_config xkbcommon --exists; then
@@ -6888,24 +6809,6 @@ if test "$audio_win_int" = "yes" ; then
fi
echo "CONFIG_BDRV_RW_WHITELIST=$block_drv_rw_whitelist" >> $config_host_mak
echo "CONFIG_BDRV_RO_WHITELIST=$block_drv_ro_whitelist" >> $config_host_mak
-if test "$vnc" = "yes" ; then
- echo "CONFIG_VNC=y" >> $config_host_mak
-fi
-if test "$vnc_sasl" = "yes" ; then
- echo "CONFIG_VNC_SASL=y" >> $config_host_mak
-fi
-echo "SASL_CFLAGS=$vnc_sasl_cflags" >> $config_host_mak
-echo "SASL_LIBS=$vnc_sasl_libs" >> $config_host_mak
-if test "$vnc_jpeg" = "yes" ; then
- echo "CONFIG_VNC_JPEG=y" >> $config_host_mak
-fi
-echo "JPEG_CFLAGS=$vnc_jpeg_cflags" >> $config_host_mak
-echo "JPEG_LIBS=$vnc_jpeg_libs" >> $config_host_mak
-if test "$vnc_png" = "yes" ; then
- echo "CONFIG_VNC_PNG=y" >> $config_host_mak
-fi
-echo "PNG_CFLAGS=$vnc_png_cflags" >> $config_host_mak
-echo "PNG_LIBS=$vnc_png_libs" >> $config_host_mak
if test "$xkbcommon" = "yes" ; then
echo "CONFIG_XKBCOMMON=y" >> $config_host_mak
echo "XKBCOMMON_CFLAGS=$xkbcommon_cflags" >> $config_host_mak
@@ -8327,6 +8230,7 @@ NINJA=$PWD/ninjatool $meson setup \
-Db_pie=$(if test "$pie" = yes; then echo true; else echo false; fi) \
-Db_coverage=$(if test "$gcov" = yes; then echo true; else echo false; fi) \
-Dsdl=$sdl -Dsdl_image=$sdl_image \
+ -Dvnc=$vnc -Dvnc_sasl=$vnc_sasl -Dvnc_jpeg=$vnc_jpeg -Dvnc_png=$vnc_png \
$cross_arg \
"$PWD" "$source_path"
diff --git a/meson.build b/meson.build
index f0374e8508..1ae9d42868 100644
--- a/meson.build
+++ b/meson.build
@@ -306,20 +306,24 @@ if 'CONFIG_GIO' in config_host
gio = declare_dependency(compile_args: config_host['GIO_CFLAGS'].split(),
link_args: config_host['GIO_LIBS'].split())
endif
+vnc = not_found
png = not_found
-if 'CONFIG_VNC_PNG' in config_host
- png = declare_dependency(compile_args: config_host['PNG_CFLAGS'].split(),
- link_args: config_host['PNG_LIBS'].split())
-endif
jpeg = not_found
-if 'CONFIG_VNC_JPEG' in config_host
- jpeg = declare_dependency(compile_args: config_host['JPEG_CFLAGS'].split(),
- link_args: config_host['JPEG_LIBS'].split())
-endif
sasl = not_found
-if 'CONFIG_VNC_SASL' in config_host
- sasl = declare_dependency(compile_args: config_host['SASL_CFLAGS'].split(),
- link_args: config_host['SASL_LIBS'].split())
+if get_option('vnc').enabled()
+ vnc = declare_dependency() # dummy dependency
+ png = dependency('libpng', required: get_option('vnc_png'),
+ static: enable_static)
+ jpeg = cc.find_library('jpeg', has_headers: ['jpeglib.h'],
+ required: get_option('vnc_jpeg'),
+ static: enable_static)
+ sasl = cc.find_library('sasl2', has_headers: ['sasl/sasl.h'],
+ required: get_option('vnc_sasl'),
+ static: enable_static)
+ if sasl.found()
+ sasl = declare_dependency(dependencies: sasl,
+ compile_args: '-DSTRUCT_IOVEC_DEFINED')
+ endif
endif
fdt = not_found
if 'CONFIG_FDT' in config_host
@@ -377,6 +381,10 @@ endif
config_host_data.set('CONFIG_SDL', sdl.found())
config_host_data.set('CONFIG_SDL_IMAGE', sdl_image.found())
+config_host_data.set('CONFIG_VNC', vnc.found())
+config_host_data.set('CONFIG_VNC_JPEG', jpeg.found())
+config_host_data.set('CONFIG_VNC_PNG', png.found())
+config_host_data.set('CONFIG_VNC_SASL', sasl.found())
config_host_data.set('QEMU_VERSION', '"@0@"'.format(meson.project_version()))
config_host_data.set('QEMU_VERSION_MAJOR', meson.project_version().split('.')[0])
config_host_data.set('QEMU_VERSION_MINOR', meson.project_version().split('.')[1])
@@ -1286,11 +1294,11 @@ summary_info += {'Block whitelist (rw)': config_host['CONFIG_BDRV_RW_WHITELIST']
summary_info += {'Block whitelist (ro)': config_host['CONFIG_BDRV_RO_WHITELIST']}
summary_info += {'VirtFS support': config_host.has_key('CONFIG_VIRTFS')}
summary_info += {'Multipath support': config_host.has_key('CONFIG_MPATH')}
-summary_info += {'VNC support': config_host.has_key('CONFIG_VNC')}
-if config_host.has_key('CONFIG_VNC')
- summary_info += {'VNC SASL support': config_host.has_key('CONFIG_VNC_SASL')}
- summary_info += {'VNC JPEG support': config_host.has_key('CONFIG_VNC_JPEG')}
- summary_info += {'VNC PNG support': config_host.has_key('CONFIG_VNC_PNG')}
+summary_info += {'VNC support': vnc.found()}
+if vnc.found()
+ summary_info += {'VNC SASL support': sasl.found()}
+ summary_info += {'VNC JPEG support': jpeg.found()}
+ summary_info += {'VNC PNG support': png.found()}
endif
summary_info += {'xen support': config_host.has_key('CONFIG_XEN_BACKEND')}
if config_host.has_key('CONFIG_XEN_BACKEND')
diff --git a/meson_options.txt b/meson_options.txt
index e548211f34..67455c57bc 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -1,2 +1,6 @@
option('sdl', type : 'feature', value : 'auto')
option('sdl_image', type : 'feature', value : 'auto')
+option('vnc', type : 'feature', value : 'enabled')
+option('vnc_jpeg', type : 'feature', value : 'auto')
+option('vnc_png', type : 'feature', value : 'auto')
+option('vnc_sasl', type : 'feature', value : 'auto')
diff --git a/ui/meson.build b/ui/meson.build
index daec6c405e..6f74d30ea0 100644
--- a/ui/meson.build
+++ b/ui/meson.build
@@ -27,14 +27,12 @@ vnc_ss.add(files(
'vnc-ws.c',
'vnc-jobs.c',
))
-vnc_ss.add(zlib)
-vnc_ss.add(when: 'CONFIG_VNC_SASL', if_true: [files('vnc-auth-sasl.c'), sasl])
-softmmu_ss.add_all(when: 'CONFIG_VNC', if_true: vnc_ss)
-softmmu_ss.add(when: 'CONFIG_VNC', if_false: files('vnc-stubs.c'))
+vnc_ss.add(zlib, png, jpeg)
+vnc_ss.add(when: sasl, if_true: files('vnc-auth-sasl.c'))
+softmmu_ss.add_all(when: vnc, if_true: vnc_ss)
+softmmu_ss.add(when: vnc, if_false: files('vnc-stubs.c'))
softmmu_ss.add(when: [opengl, 'CONFIG_OPENGL'], if_true: files('shader.c', 'console-gl.c', 'egl-helpers.c', 'egl-context.c'))
softmmu_ss.add(when: [opengl, 'CONFIG_OPENGL_DMABUF'], if_true: files('egl-headless.c'))
-softmmu_ss.add(when: 'CONFIG_VNC_PNG', if_true: png)
-softmmu_ss.add(when: 'CONFIG_VNC_JPEG', if_true: jpeg)
ui_modules = {}