Files
aqtinstall/ci/generate_azure_pipelines_matrices.py
Hiroshi Miura 060a1125f3 Handle Qt6/non-desktop installation patching (#210)
* Do not check qmake for android

Signed-off-by: Hiroshi Miura <miurahr@linux.com>

* Refactoring patching

Signed-off-by: Hiroshi Miura <miurahr@linux.com>

* CI: test android_armv7 in 6.0.1

Signed-off-by: Hiroshi Miura <miurahr@linux.com>

* Patching qt6 android qmake script

Signed-off-by: Hiroshi Miura <miurahr@linux.com>

* Patching qt6 android qmake script(wip)

Signed-off-by: Hiroshi Miura <miurahr@linux.com>

* CI: test android/qt6 on github actions

Signed-off-by: Hiroshi Miura <miurahr@linux.com>

* Add combination for Qt6 and update README

Signed-off-by: Hiroshi Miura <miurahr@linux.com>

* CI: Azure: Fix test cases

Signed-off-by: Hiroshi Miura <miurahr@linux.com>

* CI: Azure: Fix Qt6 test case

Signed-off-by: Hiroshi Miura <miurahr@linux.com>

* CI: Fix windows case

Signed-off-by: Hiroshi Miura <miurahr@linux.com>

* CI: Fix windows case

Add debug print

Signed-off-by: Hiroshi Miura <miurahr@linux.com>

* Fix prefix path for patching

Signed-off-by: Hiroshi Miura <miurahr@linux.com>

* Improvve log messages for patching

Signed-off-by: Hiroshi Miura <miurahr@linux.com>

* CI: Check android installation

Signed-off-by: Hiroshi Miura <miurahr@linux.com>

* CI: Check android installation

Signed-off-by: Hiroshi Miura <miurahr@linux.com>

* CI: Check android installation

Signed-off-by: Hiroshi Miura <miurahr@linux.com>

* Updater: update logging message

Signed-off-by: Hiroshi Miura <miurahr@linux.com>

* Updater: Fix qmake detection on windows

Signed-off-by: Hiroshi Miura <miurahr@linux.com>

* CI: run qmake.bat on windows

Signed-off-by: Hiroshi Miura <miurahr@linux.com>

* CI: run Qt6 qmake.bat on windows

Signed-off-by: Hiroshi Miura <miurahr@linux.com>

* CI: run Qt6 qmake.bat on windows

Signed-off-by: Hiroshi Miura <miurahr@linux.com>

* CI: Azure: fix mirror test

Signed-off-by: Hiroshi Miura <miurahr@linux.com>

* CI: Azure: test Qt6 with Ubuntu 20.04

Signed-off-by: Hiroshi Miura <miurahr@linux.com>
2021-02-11 10:05:13 +09:00

133 lines
4.0 KiB
Python

"""
This sets variables for a matrix of QT versions to test downloading against with Azure Pipelines
"""
import collections
import json
from itertools import product
class BuildJob:
def __init__(self, qt_version, host, target, arch, archdir, module=None):
self.qt_version = qt_version
self.host = host
self.target = target
self.arch = arch
self.archdir = archdir
self.module = module
class PlatformBuildJobs:
def __init__(self, platform, build_jobs):
self.platform = platform
self.build_jobs = build_jobs
python_versions = [
'3.7',
]
qt_versions = [
'5.13.2',
'5.14.0'
]
linux_build_jobs = []
mac_build_jobs = []
windows_build_jobs = []
all_platform_build_jobs = [
PlatformBuildJobs('linux', linux_build_jobs),
PlatformBuildJobs('mac', mac_build_jobs),
PlatformBuildJobs('windows', windows_build_jobs),
]
# Linux Desktop
for qt_version in qt_versions:
linux_build_jobs.append(
BuildJob(qt_version, 'linux', 'desktop', 'gcc_64', 'gcc_64')
)
# Mac Desktop
for qt_version in qt_versions:
mac_build_jobs.append(
BuildJob(qt_version, 'mac', 'desktop', 'clang_64', "clang_64")
)
# Mac iOS, android
mac_build_jobs.extend(
[
BuildJob('5.15.2', 'mac', 'ios', 'ios', 'ios'),
BuildJob('5.14.2', 'mac', 'android', 'android', 'android')
]
)
# Windows Desktop
windows_build_jobs.extend(
[
BuildJob('5.14.2', 'windows', 'desktop', 'win64_msvc2017_64', 'msvc2017_64'),
BuildJob('5.14.2', 'windows', 'desktop', 'win32_msvc2017', 'msvc2017'),
BuildJob('5.13.2', 'windows', 'desktop', 'win64_msvc2015_64', 'msvc2015_64'),
BuildJob('5.15.0', 'windows', 'desktop', 'win64_mingw81', 'mingw81_64'),
# Known issue with Azure-Pipelines environment: it has a pre-installed mingw81 which cause link error.
# BuildJob('5.15.0', 'windows', 'desktop', 'win32_mingw81', 'mingw81_32'),
BuildJob('5.15.0', 'windows', 'desktop', 'win64_msvc2019_64', 'msvc2019_64', module='qcharts qtnetworkauth'),
]
)
# Extra modules test
linux_build_jobs.extend(
[
BuildJob('5.15.0', 'linux', 'desktop', 'gcc_64', 'gcc_64', module='qcharts qtnetworkauth'),
BuildJob('5.14.2', 'linux', 'desktop', 'gcc_64', 'gcc_64', module='all')
]
)
mac_build_jobs.append(
BuildJob('5.14.2', 'mac', 'desktop', 'clang_64', 'clang_64', module='qcharts qtnetworkauth')
)
# WASM
linux_build_jobs.append(
BuildJob('5.14.0', 'linux', 'desktop', 'wasm_32', "wasm_32")
)
mac_build_jobs.append(
BuildJob('5.14.0', 'mac', 'desktop', 'wasm_32', "wasm_32")
)
windows_build_jobs.append(
BuildJob('5.14.2', 'windows', 'desktop', 'wasm_32', "wasm_32")
)
# android
linux_build_jobs.extend(
[
BuildJob('5.14.2', 'linux', 'android', 'android', 'android'),
]
)
matrices = {}
for platform_build_job in all_platform_build_jobs:
matrix_dictionary = collections.OrderedDict()
for build_job, python_version in product(platform_build_job.build_jobs, python_versions):
key = '{} {} for {} on {}'.format(build_job.qt_version, build_job.arch, build_job.target, build_job.host)
if build_job.module:
key = "{} ({})".format(key, build_job.module)
matrix_dictionary[key] = collections.OrderedDict(
[
('PYTHON_VERSION', python_version),
('QT_VERSION', build_job.qt_version),
('HOST', build_job.host),
('TARGET', build_job.target),
('ARCH', build_job.arch),
('ARCHDIR', build_job.archdir),
('MODULE', build_job.module if build_job.module else '')
]
)
matrices[platform_build_job.platform] = matrix_dictionary
print("Setting Variables below")
print(f"##vso[task.setVariable variable=linux;isOutput=true]{json.dumps(matrices['linux'])}")
print(f"##vso[task.setVariable variable=windows;isOutput=true]{json.dumps(matrices['windows'])}")
print(f"##vso[task.setVariable variable=mac;isOutput=true]{json.dumps(matrices['mac'])}")