diff --git a/coin/instructions/common_environment.yaml b/coin/instructions/common_environment.yaml index 66119627c55..dedcbaf2fc5 100644 --- a/coin/instructions/common_environment.yaml +++ b/coin/instructions/common_environment.yaml @@ -2,27 +2,45 @@ type: Group instructions: - type: Group instructions: + # Currently used Qt version for packaging ... - type: Group instructions: - - type: SetBuildDirectory - directory: "{{.AgentWorkingDir}}/build" - - type: MakeDirectory - directory: "{{.BuildDir}}" + - 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 + directory: "{{.BuildDir}}" - type: EnvironmentVariable variableName: QTC_BUILD_TYPE variableValue: "RelWithDebInfo" - 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" @@ -55,9 +84,30 @@ instructions: equals_value: Windows - type: Group instructions: - - type: EnvironmentVariable - variableName: QTC_QT_POSTFIX - variableValue: "-Linux-RHEL_8_8-GCC-Linux-RHEL_8_8-X86_64.7z" + - 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" diff --git a/coin/product_dependencies.yaml b/coin/product_dependencies.yaml index 9f43d3da95f..959465886ef 100644 --- a/coin/product_dependencies.yaml +++ b/coin/product_dependencies.yaml @@ -1,4 +1,3 @@ dependencies: ../../qt/qt5.git: ref: "6.8" - diff --git a/scripts/common.py b/scripts/common.py index 4ee0ddf7036..1cbd13213d2 100644 --- a/scripts/common.py +++ b/scripts/common.py @@ -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) diff --git a/scripts/install_qt.py b/scripts/install_qt.py index c2c68f0e2ad..777349c91d0 100755 --- a/scripts/install_qt.py +++ b/scripts/install_qt.py @@ -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)