Android 16: Introduce NDK r29-beta2 as preview NDK

This patch introduces preview NDK. Environment variables related to
preview NDK's are marked with _PREVIEW. The patch introduces NDK
29.0.13599879-beta2 as first _PREVIEW NDK. This preview NDK will be
first used in insignificant platforms Android 16.

Task-number: QTQAINFRA-7290
Fixes: QTQAINFRA-7291
Change-Id: Id093b8f71970f77409bd805d6d1d153f47ade762
Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Reviewed-by: Elias Toivola <elias.toivola@qt.io>
This commit is contained in:
Rami Potinkara
2025-07-24 16:53:22 +03:00
committed by Elias Toivola
parent 29f432f318
commit 1ce81f80e4
12 changed files with 87 additions and 307 deletions

View File

@@ -79,9 +79,9 @@ Configurations:
Platform dependency: 'rhel-8.10'
Features: ['Sccache', 'WarningsAreErrors', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM', 'InsignificantTests']
Environment variables: [
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86_64',
'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_LATEST}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86_64_NDK_LATEST}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_LATEST}}',
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_PREVIEW}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86_64',
'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_PREVIEW}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86_64_NDK_PREVIEW}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_PREVIEW}}',
'ANDROID_EMULATOR=emulator_x86_64_api_36'
]

View File

@@ -31,10 +31,14 @@ toolsSha1="9172381ff070ee2a416723c1989770cf4b0d1076"
ndkVersionLatest="r27c"
ndkSha1Latest="090e8083a715fdb1a3e402d0763c388abb03fb4e"
# Preview NDK that is in alpha/beta/RC state
ndkVersionPreview="r29-beta2"
ndkSha1Preview="06c29d6764526fb51407d08fcead41247ddd3b70"
# Non-latest (but still supported by the qt/qt5 branch) NDKs are installed for nightly targets in:
# coin/platform_configs/nightly_android.yaml
ndkVersionNightly1=$ndkVersionLatest # Same version = skip NDK install for nightly
ndkVersionNightly1=$ndkVersionLatest # Set as same version as latest = skip NDK install in provisioning
ndkSha1Nightly1=$ndkSha1Latest
ndkVersionNightly2=$ndkVersionLatest
@@ -79,6 +83,11 @@ function InstallNdk() {
InstallNdk $ndkVersionLatest $ndkSha1Latest
SetEnvVar "ANDROID_NDK_ROOT_LATEST" "$androidNdkRoot"
if [ "$ndkVersionPreview" != "$ndkVersionLatest" ]; then
InstallNdk $ndkVersionPreview $ndkSha1Preview
SetEnvVar "ANDROID_NDK_ROOT_PREVIEW" "$androidNdkRoot"
fi
if [ "$ndkVersionNightly1" != "$ndkVersionLatest" ]; then
InstallNdk $ndkVersionNightly1 $ndkSha1Nightly1
SetEnvVar "ANDROID_NDK_ROOT_NIGHTLY1" "$androidNdkRoot"

View File

@@ -24,6 +24,7 @@ toolsFile="commandlinetools-mac-6609375_latest.zip"
# coin/platform_configs/nightly_android.yaml
ndkVersionLatest="r27c"
ndkVersionPreview="r29-beta2"
ndkVersionNightly1="$ndkVersionLatest" # If same version as latest = skip NDK install for nightly
ndkVersionNightly2="$ndkVersionLatest"
@@ -48,6 +49,11 @@ function InstallNdk() {
InstallNdk $ndkVersionLatest
SetEnvVar "ANDROID_NDK_ROOT_LATEST" "$targetFolder/android-ndk-$ndkVersionLatest"
if [ "$ndkVersionPreview" != "$ndkVersionLatest" ]; then
InstallNdk $ndkVersionPreview
SetEnvVar "ANDROID_NDK_ROOT_PREVIEW" "$targetFolder/android-ndk-$ndkVersionPreview"
fi
if [ "$ndkVersionNightly1" != "$ndkVersionLatest" ]; then
InstallNdk $ndkVersionNightly1
SetEnvVar "ANDROID_NDK_ROOT_NIGHTLY1" "$targetFolder/android-ndk-$ndkVersionNightly1"

View File

@@ -116,24 +116,28 @@ if [ "$os" == "android-x86" ]; then
envvar_latest="FFMPEG_DIR_ANDROID_X86_NDK_LATEST"
envvar_nightly1="FFMPEG_DIR_ANDROID_X86_NDK_NIGHTLY1"
envvar_nightly2="FFMPEG_DIR_ANDROID_X86_NDK_NIGHTLY2"
envvar_preview="FFMPEG_DIR_ANDROID_X86_NDK_PREVIEW"
elif [ "$os" == "android-x86_64" ]; then
target_arch=x86_64
target_dir="/usr/local/android/ffmpeg-x86_64"
envvar_latest="FFMPEG_DIR_ANDROID_X86_64_NDK_LATEST"
envvar_nightly1="FFMPEG_DIR_ANDROID_X86_64_NDK_NIGHTLY1"
envvar_nightly2="FFMPEG_DIR_ANDROID_X86_64_NDK_NIGHTLY2"
envvar_preview="FFMPEG_DIR_ANDROID_X86_64_NDK_PREVIEW"
elif [ "$os" == "android-arm32" ]; then
target_arch=arm32
target_dir="/usr/local/android/ffmpeg-arm32"
envvar_latest="FFMPEG_DIR_ANDROID_ARM32_NDK_LATEST"
envvar_nightly1="FFMPEG_DIR_ANDROID_ARM32_NDK_NIGHTLY1"
envvar_nightly2="FFMPEG_DIR_ANDROID_ARM32_NDK_NIGHTLY2"
envvar_preview="FFMPEG_DIR_ANDROID_ARM32_NDK_PREVIEW"
elif [ "$os" == "android-arm64" ]; then
target_arch=arm64
target_dir="/usr/local/android/ffmpeg-arm64"
envvar_latest="FFMPEG_DIR_ANDROID_ARM64_NDK_LATEST"
envvar_nightly1="FFMPEG_DIR_ANDROID_ARM64_NDK_NIGHTLY1"
envvar_nightly2="FFMPEG_DIR_ANDROID_ARM64_NDK_NIGHTLY2"
envvar_preview="FFMPEG_DIR_ANDROID_ARM64_NDK_PREVIEW"
else
>&2 echo "Unhandled android os param: $os"
exit 1
@@ -149,6 +153,13 @@ assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_LATEST"
build_ffmpeg_android "$target_arch" "$target_dir/latest" "$ANDROID_NDK_ROOT_LATEST" "$OPENSSL_ANDROID_HOME_LATEST"
set_ffmpeg_dir_env_var "$envvar_latest" "$target_dir/latest"
if [ "${ANDROID_NDK_ROOT_PREVIEW}" ]; then
assert_envvar_is_populated_dir "ANDROID_NDK_ROOT_PREVIEW"
assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_PREVIEW"
build_ffmpeg_android "$target_arch" "$target_dir/preview" "$ANDROID_NDK_ROOT_PREVIEW" "$OPENSSL_ANDROID_HOME_PREVIEW"
set_ffmpeg_dir_env_var "$envvar_preview" "$target_dir/preview"
fi
if [ "${ANDROID_NDK_ROOT_NIGHTLY1}" ]; then
assert_envvar_is_populated_dir "ANDROID_NDK_ROOT_NIGHTLY1"
assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_NIGHTLY1"

View File

@@ -15,6 +15,10 @@ sslVersionForLatest="3.0.7"
ndkVersionLatest="r27c"
prebuiltOpensslShaLatest="733cff853b6ee7738e78b90f46b5f028c8490e1e"
sslVersionForPreview="3.0.7"
ndkVersionPreview="r29-beta2"
prebuiltOpensslShaPreview="c2cf8fabfb7e00b31abcc554e6e306dafd99ae1b"
ndkVersionNightly1=$ndkVersionLatest
sslVersionForNightly1=$sslVersionForLatest
prebuiltOpensslShaNightly1=$prebuiltOpensslShaLatest
@@ -23,7 +27,7 @@ ndkVersionNightly2=$ndkVersionLatest
sslVersionForNightly2=$sslVersionForLatest
prebuiltOpensslShaNightly2=$prebuiltOpensslShaLatest
: <<'EOB' SOURCE BUILD INSTRUCTIONS - Openssl prebuilt was made using Android NDK r27c
: <<'EOB' SOURCE BUILD INSTRUCTIONS - Openssl prebuilt was made using Android NDK r29-beta2
# Source built requires GCC and Perl to be in PATH. Rhel "requires yum install perl-IPC-Cmd"
exports_file="/tmp/export.sh"
# source previously made environmental variables.
@@ -84,6 +88,12 @@ if [ "$ndkVersionNightly2" != "$ndkVersionLatest" ]; then
echo "OpenSSL for Android $ndkVersionNightly2 = $sslVersionForNightly2" >> ~/versions.txt
fi
if [ "$ndkVersionPreview" != "$ndkVersionLatest" ]; then
InstallPrebuiltOpenssl $ndkVersionPreview $prebuiltOpensslShaPreview $sslVersionForPreview
SetEnvVar "OPENSSL_ANDROID_HOME_PREVIEW" "$opensslHome"
echo "OpenSSL for Android $ndkVersionPreview = $sslVersionForPreview" >> ~/versions.txt
fi
InstallPrebuiltOpenssl $ndkVersionLatest $prebuiltOpensslShaLatest $sslVersionForLatest
SetEnvVar "OPENSSL_ANDROID_HOME_LATEST" "$opensslHome"
echo "OpenSSL for Android $ndkVersionLatest = $sslVersionForLatest" >> ~/versions.txt

View File

@@ -20,6 +20,11 @@ $ndk_version_latest = "r27c"
$prebuilt_ssl_sha1_latest = "733cff853b6ee7738e78b90f46b5f028c8490e1e"
$openssl_sha1_latest = "f20736d6aae36bcbfa9aba0d358c71601833bf27"
$openssl_version_preview = "3.0.7"
$ndk_version_preview = "r29-beta2"
$prebuilt_ssl_sha1_preview = "c2cf8fabfb7e00b31abcc554e6e306dafd99ae1b"
$openssl_sha1_preview = "f20736d6aae36bcbfa9aba0d358c71601833bf27"
$openssl_version_nightly1 = $openssl_version_latest
$ndk_version_nightly1 = $ndk_version_latest
$prebuilt_ssl_sha1_nightly1 = $prebuilt_ssl_sha1_latest
@@ -103,6 +108,12 @@ $ndk_ssl_path = Install $openssl_version_latest $ndk_version_latest $prebuilt_ss
Set-EnvironmentVariable "OPENSSL_ANDROID_HOME_LATEST" "$ndk_ssl_path"
Write-Output "Android OpenSSL $openssl_version_latest for NDK $ndk_version_latest" >> ~/versions.txt
if ($ndk_version_preview -ne $ndk_version_latest) {
$ndk_ssl_path = Install $openssl_version_preview $ndk_version_preview $prebuilt_ssl_sha1_preview $openssl_sha1_preview
Set-EnvironmentVariable "OPENSSL_ANDROID_HOME_PREVIEW" "$ndk_ssl_path"
Write-Output "Android OpenSSL $openssl_version_preview for NDK $ndk_version_preview" >> ~/versions.txt
}
if ($ndk_version_nightly1 -ne $ndk_version_latest) {
$ndk_ssl_path = Install $openssl_version_nightly1 $ndk_version_nightly1 $prebuilt_ssl_sha1_nightly1 $openssl_sha1_nightly1
Set-EnvironmentVariable "OPENSSL_ANDROID_HOME_NIGHTLY1" "$ndk_ssl_path"

View File

@@ -17,6 +17,13 @@ $ndkChecksumLatest = "ac5f7762764b1f15341094e148ad4f847d050c38"
$ndkCachedUrlLatest = "\\ci-files01-hki.ci.qt.io\provisioning\android\android-ndk-$ndkVersionLatest-windows.zip"
$ndkOfficialUrlLatest = "https://dl.google.com/android/repository/android-ndk-$ndkVersionLatest-windows.zip"
# NDK in alpha/beta/RC state
$ndkVersionPreview = "r29-beta2"
$ndkChecksumPreview = "59b665f7506f1079771393f2c90f3cb29817ecfb"
$ndkCachedUrlPreview = "\\ci-files01-hki.ci.qt.io\provisioning\android\android-ndk-$ndkVersionPreview-windows.zip"
$ndkOfficialUrlPreview = "https://dl.google.com/android/repository/android-ndk-$ndkVersionPreview-windows.zip"
# Non-latest (but still supported by the qt/qt5 branch) NDKs are installed for nightly targets in:
# coin/platform_configs/nightly_android.yaml
@@ -68,6 +75,13 @@ Set-EnvironmentVariable "ANDROID_NDK_ROOT_LATEST" $ndkFolderLatest
# To be used by vcpkg
Set-EnvironmentVariable "ANDROID_NDK_HOME" $ndkFolderLatest
if ($ndkVersionPreview -ne $ndkVersionLatest) {
Write-Host "Installing Android NDK $ndkVersionPreview"
$ndkFolderPreview = Install $ndkCachedUrlPreview $ndkZip $ndkChecksumPreview $ndkOfficialUrlPreview
Set-EnvironmentVariable "ANDROID_NDK_ROOT_PREVIEW" $ndkFolderPreview
Write-Output "Android NDK = $ndkVersionPreview" >> ~/versions.txt
}
if ($ndkVersionNightly1 -ne $ndkVersionLatest) {
Write-Host "Installing Android NDK $ndkVersionNightly1"
$ndkFolderNightly = Install $ndkCachedUrlNightly1 $ndkZip $ndkChecksumNightly1 $ndkOfficialUrlNightly1

View File

@@ -1,64 +1,8 @@
#!/usr/bin/env bash
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
# This script install Android sdk and ndk.
# It also runs update for SDK API, latest SDK tools, latest platform-tools and build-tools version
#Copyright (C) 2025 The Qt Company Ltd
#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
set -ex
# shellcheck source=../common/unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh"
targetFolder="/opt/android"
sdkTargetFolder="$targetFolder/sdk"
basePath="/net/ci-files01-hki.ci.qt.io/hdd/www/input/android"
toolsVersion="2.1"
# toolsFile dertermines tools version
toolsFile="commandlinetools-mac-6609375_latest.zip"
ndkVersion="r27c"
ndkFile="android-ndk-$ndkVersion-darwin.zip"
sdkBuildToolsVersion="35.0.1"
# this is compile sdk version
sdkApiLevel="android-35"
toolsSourceFile="$basePath/$toolsFile"
ndkSourceFile="$basePath/$ndkFile"
echo "Unzipping Android NDK to '$targetFolder'"
sudo unzip -q "$ndkSourceFile" -d "$targetFolder"
echo "Unzipping Android Tools to '$sdkTargetFolder'"
sudo unzip -q "$toolsSourceFile" -d "$sdkTargetFolder"
echo "Changing ownership of Android files."
sudo chown -R qt:wheel "$targetFolder"
# Run the following command under `eval` or `sh -c` so that the shell properly splits it
sdkmanager_no_progress_bar_cmd="tr '\r' '\n' | grep -v '^\[[ =]*\]'"
sudo mkdir "$sdkTargetFolder/cmdline-tools"
sudo mv "$sdkTargetFolder/tools" "$sdkTargetFolder/cmdline-tools"
echo "Running SDK manager for platforms;$sdkApiLevel, platform-tools and build-tools;$sdkBuildToolsVersion."
(echo "y"; echo "y") | "$sdkTargetFolder/cmdline-tools/tools/bin/sdkmanager" "--sdk_root=$sdkTargetFolder" \
"platforms;$sdkApiLevel" "platform-tools" "build-tools;$sdkBuildToolsVersion" \
| eval "$sdkmanager_no_progress_bar_cmd"
echo "Checking the contents of Android SDK..."
ls -l "$sdkTargetFolder"
SetEnvVar "ANDROID_SDK_ROOT" "$sdkTargetFolder"
SetEnvVar "ANDROID_NDK_ROOT" "$targetFolder/android-ndk-$ndkVersion"
SetEnvVar "ANDROID_NDK_HOST" "darwin-x86_64"
SetEnvVar "ANDROID_API_VERSION" "$sdkApiLevel"
cat << EOB >> ~/versions.txt
Android SDK tools = $toolsVersion
Android SDK Build Tools = $sdkBuildToolsVersion
Android SDK API level = $sdkApiLevel
Android NDK = $ndkVersion
EOB
# shellcheck source=../common/macos/android.sh
source "${BASH_SOURCE%/*}/../common/macos/android.sh"

View File

@@ -1,64 +1,8 @@
#!/usr/bin/env bash
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
# This script install Android sdk and ndk.
# It also runs update for SDK API, latest SDK tools, latest platform-tools and build-tools version
#Copyright (C) 2025 The Qt Company Ltd
#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
set -ex
# shellcheck source=../common/unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh"
targetFolder="/opt/android"
sdkTargetFolder="$targetFolder/sdk"
basePath="/net/ci-files01-hki.ci.qt.io/hdd/www/input/android"
toolsVersion="2.1"
# toolsFile dertermines tools version
toolsFile="commandlinetools-mac-6609375_latest.zip"
ndkVersion="r27c"
ndkFile="android-ndk-$ndkVersion-darwin.zip"
sdkBuildToolsVersion="35.0.1"
# this is compile sdk version
sdkApiLevel="android-35"
toolsSourceFile="$basePath/$toolsFile"
ndkSourceFile="$basePath/$ndkFile"
echo "Unzipping Android NDK to '$targetFolder'"
sudo unzip -q "$ndkSourceFile" -d "$targetFolder"
echo "Unzipping Android Tools to '$sdkTargetFolder'"
sudo unzip -q "$toolsSourceFile" -d "$sdkTargetFolder"
echo "Changing ownership of Android files."
sudo chown -R qt:wheel "$targetFolder"
# Run the following command under `eval` or `sh -c` so that the shell properly splits it
sdkmanager_no_progress_bar_cmd="tr '\r' '\n' | grep -v '^\[[ =]*\]'"
sudo mkdir "$sdkTargetFolder/cmdline-tools"
sudo mv "$sdkTargetFolder/tools" "$sdkTargetFolder/cmdline-tools"
echo "Running SDK manager for platforms;$sdkApiLevel, platform-tools and build-tools;$sdkBuildToolsVersion."
(echo "y"; echo "y") | "$sdkTargetFolder/cmdline-tools/tools/bin/sdkmanager" "--sdk_root=$sdkTargetFolder" \
"platforms;$sdkApiLevel" "platform-tools" "build-tools;$sdkBuildToolsVersion" \
| eval "$sdkmanager_no_progress_bar_cmd"
echo "Checking the contents of Android SDK..."
ls -l "$sdkTargetFolder"
SetEnvVar "ANDROID_SDK_ROOT" "$sdkTargetFolder"
SetEnvVar "ANDROID_NDK_ROOT" "$targetFolder/android-ndk-$ndkVersion"
SetEnvVar "ANDROID_NDK_HOST" "darwin-x86_64"
SetEnvVar "ANDROID_API_VERSION" "$sdkApiLevel"
cat << EOB >> ~/versions.txt
Android SDK tools = $toolsVersion
Android SDK Build Tools = $sdkBuildToolsVersion
Android SDK API level = $sdkApiLevel
Android NDK = $ndkVersion
EOB
# shellcheck source=../common/macos/android.sh
source "${BASH_SOURCE%/*}/../common/macos/android.sh"

View File

@@ -1,65 +1,8 @@
#!/usr/bin/env bash
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
# This script install Android sdk and ndk.
# It also runs update for SDK API, latest SDK tools, latest platform-tools and build-tools version
#Copyright (C) 2025 The Qt Company Ltd
#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
set -ex
# shellcheck source=../common/unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh"
targetFolder="/opt/android"
sdkTargetFolder="$targetFolder/sdk"
basePath="/net/ci-files01-hki.ci.qt.io/hdd/www/input/android"
toolsVersion="2.1"
# toolsFile dertermines tools version
toolsFile="commandlinetools-mac-6609375_latest.zip"
ndkVersion="r27c"
ndkFile="android-ndk-$ndkVersion-darwin.zip"
sdkBuildToolsVersion="35.0.1"
# this is compile sdk version
sdkApiLevel="android-35"
toolsSourceFile="$basePath/$toolsFile"
ndkSourceFile="$basePath/$ndkFile"
echo "Unzipping Android NDK to '$targetFolder'"
sudo unzip -q "$ndkSourceFile" -d "$targetFolder"
echo "Unzipping Android Tools to '$sdkTargetFolder'"
sudo unzip -q "$toolsSourceFile" -d "$sdkTargetFolder"
echo "Changing ownership of Android files."
sudo chown -R qt:wheel "$targetFolder"
sudo chmod -R 755 $targetFolder
# Run the following command under `eval` or `sh -c` so that the shell properly splits it
sdkmanager_no_progress_bar_cmd="tr '\r' '\n' | grep -v '^\[[ =]*\]'"
sudo mkdir "$sdkTargetFolder/cmdline-tools"
sudo mv "$sdkTargetFolder/tools" "$sdkTargetFolder/cmdline-tools"
echo "Running SDK manager for platforms;$sdkApiLevel, platform-tools and build-tools;$sdkBuildToolsVersion."
(echo "y"; echo "y") | "$sdkTargetFolder/cmdline-tools/tools/bin/sdkmanager" "--sdk_root=$sdkTargetFolder" \
"platforms;$sdkApiLevel" "platform-tools" "build-tools;$sdkBuildToolsVersion" \
| eval "$sdkmanager_no_progress_bar_cmd"
echo "Checking the contents of Android SDK..."
ls -l "$sdkTargetFolder"
SetEnvVar "ANDROID_SDK_ROOT" "$sdkTargetFolder"
SetEnvVar "ANDROID_NDK_ROOT" "$targetFolder/android-ndk-$ndkVersion"
SetEnvVar "ANDROID_NDK_HOST" "darwin-x86_64"
SetEnvVar "ANDROID_API_VERSION" "$sdkApiLevel"
cat << EOB >> ~/versions.txt
Android SDK tools = $toolsVersion
Android SDK Build Tools = $sdkBuildToolsVersion
Android SDK API level = $sdkApiLevel
Android NDK = $ndkVersion
EOB
# shellcheck source=../common/macos/android.sh
source "${BASH_SOURCE%/*}/../common/macos/android.sh"

View File

@@ -1,64 +1,8 @@
#!/usr/bin/env bash
# Copyright (C) 2020 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
# This script install Android sdk and ndk.
# It also runs update for SDK API, latest SDK tools, latest platform-tools and build-tools version
#Copyright (C) 2025 The Qt Company Ltd
#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
set -ex
# shellcheck source=../common/unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh"
targetFolder="/opt/android"
sdkTargetFolder="$targetFolder/sdk"
basePath="/net/ci-files01-hki.ci.qt.io/hdd/www/input/android"
toolsVersion="2.1"
# toolsFile dertermines tools version
toolsFile="commandlinetools-mac-6609375_latest.zip"
ndkVersion="r27c"
ndkFile="android-ndk-$ndkVersion-darwin.zip"
sdkBuildToolsVersion="35.0.1"
# this is compile sdk version
sdkApiLevel="android-35"
toolsSourceFile="$basePath/$toolsFile"
ndkSourceFile="$basePath/$ndkFile"
echo "Unzipping Android NDK to '$targetFolder'"
sudo unzip -q "$ndkSourceFile" -d "$targetFolder"
echo "Unzipping Android Tools to '$sdkTargetFolder'"
sudo unzip -q "$toolsSourceFile" -d "$sdkTargetFolder"
echo "Changing ownership of Android files."
sudo chown -R qt:wheel "$targetFolder"
# Run the following command under `eval` or `sh -c` so that the shell properly splits it
sdkmanager_no_progress_bar_cmd="tr '\r' '\n' | grep -v '^\[[ =]*\]'"
sudo mkdir "$sdkTargetFolder/cmdline-tools"
sudo mv "$sdkTargetFolder/tools" "$sdkTargetFolder/cmdline-tools"
echo "Running SDK manager for platforms;$sdkApiLevel, platform-tools and build-tools;$sdkBuildToolsVersion."
(echo "y"; echo "y") | "$sdkTargetFolder/cmdline-tools/tools/bin/sdkmanager" "--sdk_root=$sdkTargetFolder" \
"platforms;$sdkApiLevel" "platform-tools" "build-tools;$sdkBuildToolsVersion" \
| eval "$sdkmanager_no_progress_bar_cmd"
echo "Checking the contents of Android SDK..."
ls -l "$sdkTargetFolder"
SetEnvVar "ANDROID_SDK_ROOT" "$sdkTargetFolder"
SetEnvVar "ANDROID_NDK_ROOT" "$targetFolder/android-ndk-$ndkVersion"
SetEnvVar "ANDROID_NDK_HOST" "darwin-x86_64"
SetEnvVar "ANDROID_API_VERSION" "$sdkApiLevel"
cat << EOB >> ~/versions.txt
Android SDK tools = $toolsVersion
Android SDK Build Tools = $sdkBuildToolsVersion
Android SDK API level = $sdkApiLevel
Android NDK = $ndkVersion
EOB
# shellcheck source=../common/macos/android.sh
source "${BASH_SOURCE%/*}/../common/macos/android.sh"

View File

@@ -1,64 +1,8 @@
#!/usr/bin/env bash
# Copyright (C) 2020 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
# This script install Android sdk and ndk.
# It also runs update for SDK API, latest SDK tools, latest platform-tools and build-tools version
#Copyright (C) 2025 The Qt Company Ltd
#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
set -ex
# shellcheck source=../common/unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh"
targetFolder="/opt/android"
sdkTargetFolder="$targetFolder/sdk"
basePath="/net/ci-files01-hki.ci.qt.io/hdd/www/input/android"
toolsVersion="2.1"
# toolsFile dertermines tools version
toolsFile="commandlinetools-mac-6609375_latest.zip"
ndkVersion="r27c"
ndkFile="android-ndk-$ndkVersion-darwin.zip"
sdkBuildToolsVersion="35.0.1"
# this is compile sdk version
sdkApiLevel="android-35"
toolsSourceFile="$basePath/$toolsFile"
ndkSourceFile="$basePath/$ndkFile"
echo "Unzipping Android NDK to '$targetFolder'"
sudo unzip -q "$ndkSourceFile" -d "$targetFolder"
echo "Unzipping Android Tools to '$sdkTargetFolder'"
sudo unzip -q "$toolsSourceFile" -d "$sdkTargetFolder"
echo "Changing ownership of Android files."
sudo chown -R qt:wheel "$targetFolder"
# Run the following command under `eval` or `sh -c` so that the shell properly splits it
sdkmanager_no_progress_bar_cmd="tr '\r' '\n' | grep -v '^\[[ =]*\]'"
sudo mkdir "$sdkTargetFolder/cmdline-tools"
sudo mv "$sdkTargetFolder/tools" "$sdkTargetFolder/cmdline-tools"
echo "Running SDK manager for platforms;$sdkApiLevel, platform-tools and build-tools;$sdkBuildToolsVersion."
(echo "y"; echo "y") | "$sdkTargetFolder/cmdline-tools/tools/bin/sdkmanager" "--sdk_root=$sdkTargetFolder" \
"platforms;$sdkApiLevel" "platform-tools" "build-tools;$sdkBuildToolsVersion" \
| eval "$sdkmanager_no_progress_bar_cmd"
echo "Checking the contents of Android SDK..."
ls -l "$sdkTargetFolder"
SetEnvVar "ANDROID_SDK_ROOT" "$sdkTargetFolder"
SetEnvVar "ANDROID_NDK_ROOT" "$targetFolder/android-ndk-$ndkVersion"
SetEnvVar "ANDROID_NDK_HOST" "darwin-x86_64"
SetEnvVar "ANDROID_API_VERSION" "$sdkApiLevel"
cat << EOB >> ~/versions.txt
Android SDK tools = $toolsVersion
Android SDK Build Tools = $sdkBuildToolsVersion
Android SDK API level = $sdkApiLevel
Android NDK = $ndkVersion
EOB
# shellcheck source=../common/macos/android.sh
source "${BASH_SOURCE%/*}/../common/macos/android.sh"