diff options
author | Christoph Reiter <reiter.christoph@gmail.com> | 2019-09-28 12:27:13 +0200 |
---|---|---|
committer | Christoph Reiter <reiter.christoph@gmail.com> | 2019-09-28 12:31:01 +0200 |
commit | 1cb3b2b27f824f3bbdab1a2e3fedf45a39689019 (patch) | |
tree | 77316a989ea260f0976fc32321c5d7dbdc46cbea /meson.build | |
parent | aec85eaf4d41fbc82889a2dfe1c0e672f036cbae (diff) | |
download | gobject-introspection-1cb3b2b27f824f3bbdab1a2e3fedf45a39689019.tar.gz |
meson: change "cairo" from a boolean to a feature option
We require cairo only to run all tests and thus default it to false.
This usually results in developers not using it when working on changes and
tests depending on cairo then failing in CI.
This changes it to a feature option that defaults to auto, so that devs that
have cairo headers installed will automatically use it.
Diffstat (limited to 'meson.build')
-rw-r--r-- | meson.build | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/meson.build b/meson.build index 9025388f..c71d2d84 100644 --- a/meson.build +++ b/meson.build @@ -144,19 +144,31 @@ endif libffi_dep = dependency('libffi', fallback : ['libffi', 'ffi_dep']) -with_cairo = get_option('cairo') +# cairo +cairo_option = get_option('cairo') +if cc.get_id() == 'msvc' + if cairo_option.disabled() + req = cairo_option + else + req = false + endif -if with_cairo - cairo_dep = dependency('cairo', required: cc.get_id() != 'msvc') - cairo_gobject_dep = dependency('cairo-gobject', required: cc.get_id() != 'msvc') + cairo_dep = dependency('cairo', required: req) + cairo_gobject_dep = dependency('cairo-gobject', required: req) - if cc.get_id() == 'msvc' and (not cairo_gobject_dep.found() or not cairo_dep.found()) + if not cairo_gobject_dep.found() or not cairo_dep.found() if cc.has_header('cairo.h') and cc.has_header ('cairo-gobject.h') - cairo_dep = cc.find_library ('cairo') - cairo_gobject_dep = cc.find_library ('cairo-gobject') + cairo_dep = cc.find_library('cairo', required: cairo_option) + cairo_gobject_dep = cc.find_library('cairo-gobject', required: cairo_option) endif endif else + cairo_dep = dependency('cairo', required: cairo_option) + cairo_gobject_dep = dependency('cairo-gobject', required: cairo_option) +endif +cairo_deps_found = cairo_gobject_dep.found() and cairo_dep.found() + +if not cairo_deps_found warning('Not building with cairo support, not all tests will be run') endif |