meson: use pkg-config method to find dependencies

We do not need to ask cmake for the dependencies, so just use the
pkg-config mechanism.  Keep "auto" for SDL so that it tries using
sdl-config too.

The documentation is adjusted to use SDL2_image as the example,
rather than SDL which does not use the "pkg-config" method.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Paolo Bonzini 2020-08-31 06:27:00 -04:00
parent 87727cb1d2
commit 1a94933fcc
2 changed files with 18 additions and 17 deletions

View File

@ -66,46 +66,47 @@ following tasks:
upon completion. upon completion.
Taking the probe for SDL as an example, we have the following pieces Taking the probe for SDL2_Image as an example, we have the following pieces
in configure:: in configure::
# Initial variable state # Initial variable state
sdl=auto sdl_image=auto
..snip.. ..snip..
# Configure flag processing # Configure flag processing
--disable-gnutls) sdl=disabled --disable-sdl-image) sdl_image=disabled
;; ;;
--enable-gnutls) sdl=enabled --enable-sdl-image) sdl_image=enabled
;; ;;
..snip.. ..snip..
# Help output feature message # Help output feature message
sdl SDL UI sdl-image SDL Image support for icons
..snip.. ..snip..
# Meson invocation # Meson invocation
-Dsdl=$sdl -Dsdl_image=$sdl_image
In meson_options.txt:: In meson_options.txt::
option('sdl', type : 'feature', value : 'auto') option('sdl', type : 'feature', value : 'auto',
description: 'SDL Image support for icons')
In meson.build:: In meson.build::
# Detect dependency # Detect dependency
sdl = dependency('sdl2', sdl_image = dependency('SDL2_image', required: get_option('sdl_image'),
required: get_option('sdl'), method: 'pkg-config',
static: enable_static) static: enable_static)
# Create config-host.h # Create config-host.h (if applicable)
config_host_data.set('CONFIG_SDL', sdl.found()) config_host_data.set('CONFIG_SDL_IMAGE', sdl_image.found())
# Summary # Summary
summary_info += {'SDL support': sdl.found()} summary_info += {'SDL image support': sdl_image.found()}

View File

@ -129,7 +129,7 @@ endif
pixman = not_found pixman = not_found
if have_system or have_tools if have_system or have_tools
pixman = dependency('pixman-1', required: have_system, version:'>=0.21.8', pixman = dependency('pixman-1', required: have_system, version:'>=0.21.8',
static: enable_static) method: 'pkg-config', static: enable_static)
endif endif
pam = not_found pam = not_found
if 'CONFIG_AUTH_PAM' in config_host if 'CONFIG_AUTH_PAM' in config_host
@ -168,7 +168,7 @@ if get_option('xkbcommon').auto() and not have_system and not have_tools
xkbcommon = not_found xkbcommon = not_found
else else
xkbcommon = dependency('xkbcommon', required: get_option('xkbcommon'), xkbcommon = dependency('xkbcommon', required: get_option('xkbcommon'),
static: enable_static) method: 'pkg-config', static: enable_static)
endif endif
slirp = not_found slirp = not_found
if config_host.has_key('CONFIG_SLIRP') if config_host.has_key('CONFIG_SLIRP')
@ -247,7 +247,7 @@ if sdl.found()
sdl = declare_dependency(compile_args: '-Wno-undef', sdl = declare_dependency(compile_args: '-Wno-undef',
dependencies: sdl) dependencies: sdl)
sdl_image = dependency('SDL2_image', required: get_option('sdl_image'), sdl_image = dependency('SDL2_image', required: get_option('sdl_image'),
static: enable_static) method: 'pkg-config', static: enable_static)
else else
if get_option('sdl_image').enabled() if get_option('sdl_image').enabled()
error('sdl-image required, but SDL was @0@', error('sdl-image required, but SDL was @0@',
@ -332,7 +332,7 @@ sasl = not_found
if get_option('vnc').enabled() if get_option('vnc').enabled()
vnc = declare_dependency() # dummy dependency vnc = declare_dependency() # dummy dependency
png = dependency('libpng', required: get_option('vnc_png'), png = dependency('libpng', required: get_option('vnc_png'),
static: enable_static) method: 'pkg-config', static: enable_static)
jpeg = cc.find_library('jpeg', has_headers: ['jpeglib.h'], jpeg = cc.find_library('jpeg', has_headers: ['jpeglib.h'],
required: get_option('vnc_jpeg'), required: get_option('vnc_jpeg'),
static: enable_static) static: enable_static)