summaryrefslogtreecommitdiff
path: root/meson.build
diff options
context:
space:
mode:
authorChristoph Reiter <reiter.christoph@gmail.com>2019-09-28 12:27:13 +0200
committerChristoph Reiter <reiter.christoph@gmail.com>2019-09-28 12:31:01 +0200
commit1cb3b2b27f824f3bbdab1a2e3fedf45a39689019 (patch)
tree77316a989ea260f0976fc32321c5d7dbdc46cbea /meson.build
parentaec85eaf4d41fbc82889a2dfe1c0e672f036cbae (diff)
downloadgobject-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.build26
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