COIN: Add instructions for oldest supported Qt version

And fix installation of ICU, that was installed at the wrong location
(the toplevel Qt directory instead of lib/, which didn't matter on
systems where the right ICU version was preinstalled anyway)

Change-Id: I53dcd6126b7b46358dd9aa0622e58a8c614bff3f
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Eike Ziller
2024-11-01 10:36:45 +01:00
parent 98f966d5be
commit c327cb08f4
4 changed files with 86 additions and 25 deletions

View File

@@ -2,8 +2,32 @@ type: Group
instructions:
- type: Group
instructions:
# Currently used Qt version for packaging ...
- type: Group
instructions:
- type: EnvironmentVariable
variableName: QTC_QT_BASE_URL
variableValue: "https://ci-files02-hki.ci.qt.io/packages/jenkins/qt/6.8.0/release_content/"
- type: EnvironmentVariable
variableName: MACOSX_DEPLOYMENT_TARGET
variableValue: 12.0
enable_if:
condition: property
property: features
not_contains_value: "OldestQt"
# ... or oldest supported Qt version
- type: Group
instructions:
- type: EnvironmentVariable
variableName: QTC_QT_BASE_URL
variableValue: "https://ci-files02-hki.ci.qt.io/packages/jenkins/qt/6.4.3/release_content/"
- type: EnvironmentVariable
variableName: MACOSX_DEPLOYMENT_TARGET
variableValue: 11.0
enable_if:
condition: property
property: features
contains_value: "OldestQt"
- type: SetBuildDirectory
directory: "{{.AgentWorkingDir}}/build"
- type: MakeDirectory
@@ -14,15 +38,9 @@ instructions:
- type: EnvironmentVariable
variableName: LLVM_BASE_URL
variableValue: https://ci-files02-hki.ci.qt.io/packages/jenkins/qtcreator_libclang/libclang-release_19.1.0-based
- type: EnvironmentVariable
variableName: QTC_QT_BASE_URL
variableValue: "https://ci-files02-hki.ci.qt.io/packages/jenkins/qt/6.8.0/release_content/"
- type: EnvironmentVariable
variableName: QTC_QT_MODULES
variableValue: "qt5compat qtbase qtdeclarative qtimageformats qtquick3d qtquicktimeline qtserialport qtshadertools qtsvg qttools qttranslations qtwebengine"
- type: EnvironmentVariable
variableName: MACOSX_DEPLOYMENT_TARGET
variableValue: 11.0
- type: EnvironmentVariable
variableName: SDKTOOL_MACOSX_DEPLOYMENT_TARGET
variableValue: 11.0
@@ -37,6 +55,17 @@ instructions:
- type: EnvironmentVariable
variableName: QTC_QT_POSTFIX
variableValue: "-Windows-Windows_11_23H2-MSVC2022-Windows-Windows_11_23H2-X86_64.7z"
enable_if:
condition: property
property: features
not_contains_value: "OldestQt"
- type: EnvironmentVariable
variableName: QTC_QT_POSTFIX
variableValue: "-Windows-Windows_11_22H2-MSVC2019-Windows-Windows_11_22H2-X86_64.7z"
enable_if:
condition: property
property: features
contains_value: "OldestQt"
- type: EnvironmentVariable
variableName: QTC_SDKTOOL_QT_EXT
variableValue: ".zip"
@@ -53,11 +82,32 @@ instructions:
condition: property
property: target.os
equals_value: Windows
- type: Group
instructions:
- type: Group
instructions:
- type: EnvironmentVariable
variableName: QTC_QT_POSTFIX
variableValue: "-Linux-RHEL_8_8-GCC-Linux-RHEL_8_8-X86_64.7z"
- type: EnvironmentVariable
variableName: QTC_ICU_URL
variableValue: "https://ci-files02-hki.ci.qt.io/packages/jenkins/development_releases/prebuilt/icu/prebuilt/73.2/icu-linux-g++-Rhel8.6-x64.7z"
enable_if:
condition: property
property: features
not_contains_value: "OldestQt"
- type: Group
instructions:
- type: EnvironmentVariable
variableName: QTC_QT_POSTFIX
variableValue: "-Linux-RHEL_8_4-GCC-Linux-RHEL_8_4-X86_64.7z"
- type: EnvironmentVariable
variableName: QTC_ICU_URL
variableValue: "https://ci-files02-hki.ci.qt.io/packages/jenkins/development_releases/prebuilt/icu/prebuilt/56.1/icu-linux-g++-Rhel7.2-x64.7z"
enable_if:
condition: property
property: features
contains_value: "OldestQt"
- type: EnvironmentVariable
variableName: QTC_SDKTOOL_QT_EXT
variableValue: ".tar.xz"
@@ -67,9 +117,6 @@ instructions:
- type: EnvironmentVariable
variableName: QTC_LLVM_POSTFIX
variableValue: "-linux-Rhel8.8-gcc10.3-x86_64.7z"
- type: EnvironmentVariable
variableName: QTC_ICU_URL
variableValue: "https://ci-files02-hki.ci.qt.io/packages/jenkins/development_releases/prebuilt/icu/prebuilt/56.1/icu-linux-g++-Rhel7.2-x64.7z"
- type: EnvironmentVariable
variableName: PYTHON_EXECUTABLE
variableValue: "python3"
@@ -124,6 +171,17 @@ instructions:
- type: EnvironmentVariable
variableName: QTC_QT_POSTFIX
variableValue: "-MacOS-MacOS_14-Clang-MacOS-MacOS_14-X86_64-ARM64.7z"
enable_if:
condition: property
property: features
not_contains_value: "OldestQt"
- type: EnvironmentVariable
variableName: QTC_QT_POSTFIX
variableValue: "-MacOS-MacOS_12-Clang-MacOS-MacOS_12-X86_64-ARM64.7z"
enable_if:
condition: property
property: features
contains_value: "OldestQt"
- type: EnvironmentVariable
variableName: QTC_SDKTOOL_QT_EXT
variableValue: ".tar.xz"

View File

@@ -1,4 +1,3 @@
dependencies:
../../qt/qt5.git:
ref: "6.8"

View File

@@ -142,22 +142,26 @@ async def download(url: str, target: Path) -> None:
def download_and_extract(urls: list[str], target: Path, temp: Path) -> None:
download_and_extract_tuples([(url, target) for url in urls], temp)
def download_and_extract_tuples(urls_and_targets: list[tuple[str, Path]], temp: Path) -> None:
temp.mkdir(parents=True, exist_ok=True)
target_files = []
target_tuples : list[tuple[Path, Path]] = []
# TODO make this work with file URLs, which then aren't downloaded
# but just extracted
async def impl():
tasks : list[asyncio.Task] = []
for url in urls:
for (url, target_path) in urls_and_targets:
u = urlparse(url)
filename = Path(u.path).name
target_file = temp / filename
target_files.append(target_file)
target_tuples.append((target_file, target_path))
tasks.append(asyncio.create_task(download(url, target_file)))
for task in tasks:
await task
asyncio.run(impl())
for file in target_files:
for (file, target) in target_tuples:
extract_file(file, target)

View File

@@ -4,7 +4,7 @@
from __future__ import annotations
import argparse
from common import download_and_extract
from common import download_and_extract_tuples
from pathlib import Path
import subprocess
import sys
@@ -73,10 +73,10 @@ def install_qt(
with TemporaryDirectory() as temporary_dir:
if need_to_install_qt:
urls = qt_modules
url_target_tuples = [(url, qt_path) for url in qt_modules]
if icu_url:
qt_modules.append(icu_url)
download_and_extract(urls, qt_path, Path(temporary_dir))
url_target_tuples.append((icu_url, qt_path / 'lib'))
download_and_extract_tuples(url_target_tuples, Path(temporary_dir))
patch_qt(qt_path)