diff options
-rw-r--r-- | .github/workflows/ci_frameworks.yml | 2 | ||||
-rw-r--r-- | test cases/frameworks/4 qt/meson.build | 18 | ||||
-rw-r--r-- | test cases/frameworks/4 qt/meson_options.txt | 1 |
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') |