aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Turney <jon.turney@dronecode.org.uk>2020-01-18 16:04:04 +0000
committerJon Turney <jon.turney@dronecode.org.uk>2020-01-18 17:29:47 +0000
commitc272c8de386eddbc8d0b01faea0c7a5a89fa37ed (patch)
treee0068386b95b7c08204b7ac31b59022b550efb46
parent3ae34b438639a7e2fb7460dc67f078eb768b1264 (diff)
downloadmeson-c272c8de386eddbc8d0b01faea0c7a5a89fa37ed.zip
meson-c272c8de386eddbc8d0b01faea0c7a5a89fa37ed.tar.gz
meson-c272c8de386eddbc8d0b01faea0c7a5a89fa37ed.tar.bz2
Make the 'framework/4 qt' test more flexible
Make the 'framework/4 qt' test more flexible about what version of Qt is expected to be present in the CI environment. Currently, this is hard-coded as Qt5. We add an option to specify it so we can run this test under CI with just Qt4 present.
-rw-r--r--.github/workflows/ci_frameworks.yml2
-rw-r--r--test cases/frameworks/4 qt/meson.build18
-rw-r--r--test cases/frameworks/4 qt/meson_options.txt1
3 files changed, 14 insertions, 7 deletions
diff --git a/.github/workflows/ci_frameworks.yml b/.github/workflows/ci_frameworks.yml
index 7ae65d1..12d41f8 100644
--- a/.github/workflows/ci_frameworks.yml
+++ b/.github/workflows/ci_frameworks.yml
@@ -71,7 +71,7 @@ jobs:
- run: brew install pkg-config ninja gcc
- run: brew tap cartr/qt4
- run: brew install qt@4
- - run: meson setup "test cases/frameworks/4 qt" build
+ - run: meson setup "test cases/frameworks/4 qt" build -Drequired=qt4
- run: ninja -C build
- uses: actions/upload-artifact@v1
if: failure()
diff --git a/test cases/frameworks/4 qt/meson.build b/test cases/frameworks/4 qt/meson.build
index 15fd822..f5bfa95 100644
--- a/test cases/frameworks/4 qt/meson.build
+++ b/test cases/frameworks/4 qt/meson.build
@@ -21,19 +21,25 @@ foreach qt : ['qt4', 'qt5']
error('Invalid qt dep incorrectly found!')
endif
- # This test should be skipped if qt5 isn't found
- if qt == 'qt5'
+ # This test should be skipped if the required version of Qt isn't found
+ #
+ # (In the CI environment, the specified version of Qt is definitely present.
+ # An unexpected skip here is treated as a failure, so we are testing that the
+ # detection mechanism is able to find Qt.)
+ needed_qt = get_option('required').to_lower()
+ required = (qt == needed_qt)
+ if required
dep = dependency(qt, modules : ['Core'], required : false, method : get_option('method'))
if not dep.found()
- error('MESON_SKIP_TEST qt5 not found.')
+ error('MESON_SKIP_TEST @0@ not found.'.format(needed_qt))
endif
endif
# Ensure that the "no-Core-module-specified" code branch is hit
- nocoredep = dependency(qt, modules : ['Gui'], required : qt == 'qt5', method : get_option('method'))
+ nocoredep = dependency(qt, modules : ['Gui'], required : required, method : get_option('method'))
- # If qt4 modules are found, test that. qt5 is required.
- qtdep = dependency(qt, modules : qt_modules, main : true, private_headers: true, required : qt == 'qt5', method : get_option('method'))
+ # If 'qt' modules are found, test that.
+ qtdep = dependency(qt, modules : qt_modules, main : true, private_headers: true, required : required, method : get_option('method'))
if qtdep.found()
qtmodule = import(qt)
diff --git a/test cases/frameworks/4 qt/meson_options.txt b/test cases/frameworks/4 qt/meson_options.txt
index bc1069e..223f4fb 100644
--- a/test cases/frameworks/4 qt/meson_options.txt
+++ b/test cases/frameworks/4 qt/meson_options.txt
@@ -1 +1,2 @@
option('method', type : 'string', value : 'auto', description : 'The method to use to find Qt')
+option('required', type : 'string', value : 'qt5', description : 'The version of Qt which is required to be present')