summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml4
-rw-r--r--.gitlab-ci/test-msys2-meson.sh2
-rw-r--r--meson.build26
-rw-r--r--meson_options.txt2
-rw-r--r--tests/scanner/meson.build14
5 files changed, 30 insertions, 18 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 72d6f7a1..800f07bc 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -16,7 +16,7 @@ fedora-x86_64-meson:
CFLAGS: "-Werror"
script:
- python3 -m pip install --user mako markdown
- - meson --prefix /usr --libdir /usr/lib64 --buildtype debug -Ddoctool=true -Dgtk_doc=true -Dcairo=true -Dpython=python3 _build .
+ - meson --prefix /usr --libdir /usr/lib64 --buildtype debug -Ddoctool=true -Dgtk_doc=true -Dcairo=enabled -Dpython=python3 _build .
- cd _build
- ninja
- meson test --print-errorlogs --suite=gobject-introspection --no-suite=glib
@@ -43,7 +43,7 @@ fedora-x86_64-python3.5:
PYENV_VERSION: "3.5.6"
script:
- python3 -m pip install --user mako markdown
- - meson --prefix /usr --libdir /usr/lib64 --buildtype debug -Ddoctool=true -Dgtk_doc=true -Dcairo=true -Dpython=python3 _build .
+ - meson --prefix /usr --libdir /usr/lib64 --buildtype debug -Ddoctool=true -Dgtk_doc=true -Dcairo=enabled -Dpython=python3 _build .
- cd _build
- ninja
- meson test --print-errorlogs --suite=gobject-introspection --no-suite=glib
diff --git a/.gitlab-ci/test-msys2-meson.sh b/.gitlab-ci/test-msys2-meson.sh
index ce1768c4..37a0f913 100644
--- a/.gitlab-ci/test-msys2-meson.sh
+++ b/.gitlab-ci/test-msys2-meson.sh
@@ -38,7 +38,7 @@ export PATH="$HOME/.local/bin:$PATH"
# Passing the full interpreter path works around the issue
PYTHON="$(which python3)"
export CFLAGS="-Werror"
-meson -Dcairo=true -Ddoctool=true -Dpython="${PYTHON}" --buildtype debug _build
+meson -Dcairo=enabled -Ddoctool=true -Dpython="${PYTHON}" --buildtype debug _build
cd _build
ninja
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
diff --git a/meson_options.txt b/meson_options.txt
index 445a68a4..2bf2876f 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -1,4 +1,4 @@
-option('cairo', type: 'boolean', value : false,
+option('cairo', type: 'feature', value : 'auto',
description: 'Use cairo for tests'
)
diff --git a/tests/scanner/meson.build b/tests/scanner/meson.build
index a028e3d2..022d1829 100644
--- a/tests/scanner/meson.build
+++ b/tests/scanner/meson.build
@@ -87,7 +87,7 @@ if cc.get_id() != 'msvc'
])
endif
-if with_cairo
+if cairo_deps_found
regress_deps = [cairo_dep, cairo_gobject_dep]
regress_c_args = []
else
@@ -455,7 +455,7 @@ if glib_dep.type_name() == 'pkgconfig'
command: gircompiler_command,
)
- if with_cairo
+ if cairo_deps_found
regress_scanner_cairo_args = ['--include=cairo-1.0']
else
regress_scanner_cairo_args = ['-D_GI_DISABLE_CAIRO',]
@@ -492,7 +492,7 @@ if glib_dep.type_name() == 'pkgconfig'
# The reference gir is generated with cairo support, so we can only compare
# things if we build with cairo as well
- if with_cairo
+ if cairo_deps_found
test_girs += regress_gir
endif
@@ -527,7 +527,7 @@ if with_doctool and glib_dep.type_name() == 'pkgconfig'
'generate-docs-' + language,
input: regress_gir,
depends: [doc_templates],
- build_by_default: not with_cairo,
+ build_by_default: not cairo_deps_found,
output: 'Regress-1.0-' + language,
command: [
python, girdoctool,
@@ -537,7 +537,7 @@ if with_doctool and glib_dep.type_name() == 'pkgconfig'
'@INPUT@', '-o', '@OUTPUT@'],
)
- if with_cairo
+ if cairo_deps_found
test(
'gi-tester-docs-Regress-1.0-' + language,
python,
@@ -555,7 +555,7 @@ if with_doctool and glib_dep.type_name() == 'pkgconfig'
'generate-docs-sections',
input: regress_gir,
depends: [doc_templates],
- build_by_default: not with_cairo,
+ build_by_default: not cairo_deps_found,
output: 'Regress-1.0-sections.txt',
command: [
python, girdoctool,
@@ -565,7 +565,7 @@ if with_doctool and glib_dep.type_name() == 'pkgconfig'
'@INPUT@', '-o', '@OUTPUT@'],
)
- if with_cairo
+ if cairo_deps_found
test(
'gi-tester-docs-Regress-1.0-sections.txt',
python,