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:
parent
87727cb1d2
commit
1a94933fcc
@ -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()}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -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)
|
||||||
|
Loading…
Reference in New Issue
Block a user