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.
pull/6481/head
Jon Turney 4 years ago
parent 3ae34b4386
commit c272c8de38
No known key found for this signature in database
GPG Key ID: C7C86F0370285C81
  1. 2
      .github/workflows/ci_frameworks.yml
  2. 18
      test cases/frameworks/4 qt/meson.build
  3. 1
      test cases/frameworks/4 qt/meson_options.txt

@ -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()

@ -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)

@ -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')

Loading…
Cancel
Save