forked from qt-creator/qt-creator
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:
@@ -2,27 +2,45 @@ type: Group
|
|||||||
instructions:
|
instructions:
|
||||||
- type: Group
|
- type: Group
|
||||||
instructions:
|
instructions:
|
||||||
|
# Currently used Qt version for packaging ...
|
||||||
- type: Group
|
- type: Group
|
||||||
instructions:
|
instructions:
|
||||||
- type: SetBuildDirectory
|
- type: EnvironmentVariable
|
||||||
directory: "{{.AgentWorkingDir}}/build"
|
variableName: QTC_QT_BASE_URL
|
||||||
- type: MakeDirectory
|
variableValue: "https://ci-files02-hki.ci.qt.io/packages/jenkins/qt/6.8.0/release_content/"
|
||||||
directory: "{{.BuildDir}}"
|
- 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
|
- type: EnvironmentVariable
|
||||||
variableName: QTC_BUILD_TYPE
|
variableName: QTC_BUILD_TYPE
|
||||||
variableValue: "RelWithDebInfo"
|
variableValue: "RelWithDebInfo"
|
||||||
- type: EnvironmentVariable
|
- type: EnvironmentVariable
|
||||||
variableName: LLVM_BASE_URL
|
variableName: LLVM_BASE_URL
|
||||||
variableValue: https://ci-files02-hki.ci.qt.io/packages/jenkins/qtcreator_libclang/libclang-release_19.1.0-based
|
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
|
- type: EnvironmentVariable
|
||||||
variableName: QTC_QT_MODULES
|
variableName: QTC_QT_MODULES
|
||||||
variableValue: "qt5compat qtbase qtdeclarative qtimageformats qtquick3d qtquicktimeline qtserialport qtshadertools qtsvg qttools qttranslations qtwebengine"
|
variableValue: "qt5compat qtbase qtdeclarative qtimageformats qtquick3d qtquicktimeline qtserialport qtshadertools qtsvg qttools qttranslations qtwebengine"
|
||||||
- type: EnvironmentVariable
|
|
||||||
variableName: MACOSX_DEPLOYMENT_TARGET
|
|
||||||
variableValue: 11.0
|
|
||||||
- type: EnvironmentVariable
|
- type: EnvironmentVariable
|
||||||
variableName: SDKTOOL_MACOSX_DEPLOYMENT_TARGET
|
variableName: SDKTOOL_MACOSX_DEPLOYMENT_TARGET
|
||||||
variableValue: 11.0
|
variableValue: 11.0
|
||||||
@@ -37,6 +55,17 @@ instructions:
|
|||||||
- type: EnvironmentVariable
|
- type: EnvironmentVariable
|
||||||
variableName: QTC_QT_POSTFIX
|
variableName: QTC_QT_POSTFIX
|
||||||
variableValue: "-Windows-Windows_11_23H2-MSVC2022-Windows-Windows_11_23H2-X86_64.7z"
|
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
|
- type: EnvironmentVariable
|
||||||
variableName: QTC_SDKTOOL_QT_EXT
|
variableName: QTC_SDKTOOL_QT_EXT
|
||||||
variableValue: ".zip"
|
variableValue: ".zip"
|
||||||
@@ -55,9 +84,30 @@ instructions:
|
|||||||
equals_value: Windows
|
equals_value: Windows
|
||||||
- type: Group
|
- type: Group
|
||||||
instructions:
|
instructions:
|
||||||
- type: EnvironmentVariable
|
- type: Group
|
||||||
variableName: QTC_QT_POSTFIX
|
instructions:
|
||||||
variableValue: "-Linux-RHEL_8_8-GCC-Linux-RHEL_8_8-X86_64.7z"
|
- 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
|
- type: EnvironmentVariable
|
||||||
variableName: QTC_SDKTOOL_QT_EXT
|
variableName: QTC_SDKTOOL_QT_EXT
|
||||||
variableValue: ".tar.xz"
|
variableValue: ".tar.xz"
|
||||||
@@ -67,9 +117,6 @@ instructions:
|
|||||||
- type: EnvironmentVariable
|
- type: EnvironmentVariable
|
||||||
variableName: QTC_LLVM_POSTFIX
|
variableName: QTC_LLVM_POSTFIX
|
||||||
variableValue: "-linux-Rhel8.8-gcc10.3-x86_64.7z"
|
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
|
- type: EnvironmentVariable
|
||||||
variableName: PYTHON_EXECUTABLE
|
variableName: PYTHON_EXECUTABLE
|
||||||
variableValue: "python3"
|
variableValue: "python3"
|
||||||
@@ -124,6 +171,17 @@ instructions:
|
|||||||
- type: EnvironmentVariable
|
- type: EnvironmentVariable
|
||||||
variableName: QTC_QT_POSTFIX
|
variableName: QTC_QT_POSTFIX
|
||||||
variableValue: "-MacOS-MacOS_14-Clang-MacOS-MacOS_14-X86_64-ARM64.7z"
|
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
|
- type: EnvironmentVariable
|
||||||
variableName: QTC_SDKTOOL_QT_EXT
|
variableName: QTC_SDKTOOL_QT_EXT
|
||||||
variableValue: ".tar.xz"
|
variableValue: ".tar.xz"
|
||||||
|
@@ -1,4 +1,3 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
../../qt/qt5.git:
|
../../qt/qt5.git:
|
||||||
ref: "6.8"
|
ref: "6.8"
|
||||||
|
|
||||||
|
@@ -142,22 +142,26 @@ async def download(url: str, target: Path) -> None:
|
|||||||
|
|
||||||
|
|
||||||
def download_and_extract(urls: list[str], target: Path, temp: 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)
|
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
|
# TODO make this work with file URLs, which then aren't downloaded
|
||||||
# but just extracted
|
# but just extracted
|
||||||
async def impl():
|
async def impl():
|
||||||
tasks : list[asyncio.Task] = []
|
tasks : list[asyncio.Task] = []
|
||||||
for url in urls:
|
for (url, target_path) in urls_and_targets:
|
||||||
u = urlparse(url)
|
u = urlparse(url)
|
||||||
filename = Path(u.path).name
|
filename = Path(u.path).name
|
||||||
target_file = temp / filename
|
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)))
|
tasks.append(asyncio.create_task(download(url, target_file)))
|
||||||
for task in tasks:
|
for task in tasks:
|
||||||
await task
|
await task
|
||||||
asyncio.run(impl())
|
asyncio.run(impl())
|
||||||
for file in target_files:
|
for (file, target) in target_tuples:
|
||||||
extract_file(file, target)
|
extract_file(file, target)
|
||||||
|
|
||||||
|
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
import argparse
|
import argparse
|
||||||
from common import download_and_extract
|
from common import download_and_extract_tuples
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
@@ -73,10 +73,10 @@ def install_qt(
|
|||||||
|
|
||||||
with TemporaryDirectory() as temporary_dir:
|
with TemporaryDirectory() as temporary_dir:
|
||||||
if need_to_install_qt:
|
if need_to_install_qt:
|
||||||
urls = qt_modules
|
url_target_tuples = [(url, qt_path) for url in qt_modules]
|
||||||
if icu_url:
|
if icu_url:
|
||||||
qt_modules.append(icu_url)
|
url_target_tuples.append((icu_url, qt_path / 'lib'))
|
||||||
download_and_extract(urls, qt_path, Path(temporary_dir))
|
download_and_extract_tuples(url_target_tuples, Path(temporary_dir))
|
||||||
patch_qt(qt_path)
|
patch_qt(qt_path)
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user