diff --git a/coin/platform_configs/cmake_platforms_target_android.yaml b/coin/platform_configs/cmake_platforms_target_android.yaml index a23f0a7a..3b2871c1 100644 --- a/coin/platform_configs/cmake_platforms_target_android.yaml +++ b/coin/platform_configs/cmake_platforms_target_android.yaml @@ -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' ] diff --git a/coin/provisioning/common/linux/android_linux.sh b/coin/provisioning/common/linux/android_linux.sh index f666bc00..511f9038 100755 --- a/coin/provisioning/common/linux/android_linux.sh +++ b/coin/provisioning/common/linux/android_linux.sh @@ -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" diff --git a/coin/provisioning/common/macos/android.sh b/coin/provisioning/common/macos/android.sh index eafaee81..840ef305 100755 --- a/coin/provisioning/common/macos/android.sh +++ b/coin/provisioning/common/macos/android.sh @@ -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" diff --git a/coin/provisioning/common/unix/install-ffmpeg-android.sh b/coin/provisioning/common/unix/install-ffmpeg-android.sh index 827fda5d..e129102a 100755 --- a/coin/provisioning/common/unix/install-ffmpeg-android.sh +++ b/coin/provisioning/common/unix/install-ffmpeg-android.sh @@ -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" diff --git a/coin/provisioning/common/unix/openssl_for_android.sh b/coin/provisioning/common/unix/openssl_for_android.sh index ef1bdc2b..22114bea 100755 --- a/coin/provisioning/common/unix/openssl_for_android.sh +++ b/coin/provisioning/common/unix/openssl_for_android.sh @@ -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 diff --git a/coin/provisioning/common/windows/android-openssl.ps1 b/coin/provisioning/common/windows/android-openssl.ps1 index 88811f12..d50c127b 100644 --- a/coin/provisioning/common/windows/android-openssl.ps1 +++ b/coin/provisioning/common/windows/android-openssl.ps1 @@ -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" diff --git a/coin/provisioning/common/windows/android.ps1 b/coin/provisioning/common/windows/android.ps1 index d67b86f1..191e84df 100644 --- a/coin/provisioning/common/windows/android.ps1 +++ b/coin/provisioning/common/windows/android.ps1 @@ -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 diff --git a/coin/provisioning/qtci-macos-10.15-x86_64/30-android.sh b/coin/provisioning/qtci-macos-10.15-x86_64/30-android.sh index e164cb95..f6d17e49 100755 --- a/coin/provisioning/qtci-macos-10.15-x86_64/30-android.sh +++ b/coin/provisioning/qtci-macos-10.15-x86_64/30-android.sh @@ -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" diff --git a/coin/provisioning/qtci-macos-11-arm/30-android.sh b/coin/provisioning/qtci-macos-11-arm/30-android.sh index e164cb95..f6d17e49 100755 --- a/coin/provisioning/qtci-macos-11-arm/30-android.sh +++ b/coin/provisioning/qtci-macos-11-arm/30-android.sh @@ -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" diff --git a/coin/provisioning/qtci-macos-11-x86_64/30-android.sh b/coin/provisioning/qtci-macos-11-x86_64/30-android.sh index b1568e4d..f6d17e49 100755 --- a/coin/provisioning/qtci-macos-11-x86_64/30-android.sh +++ b/coin/provisioning/qtci-macos-11-x86_64/30-android.sh @@ -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" diff --git a/coin/provisioning/qtci-macos-15-arm/30-android.sh b/coin/provisioning/qtci-macos-15-arm/30-android.sh index acd2d4b9..f6d17e49 100755 --- a/coin/provisioning/qtci-macos-15-arm/30-android.sh +++ b/coin/provisioning/qtci-macos-15-arm/30-android.sh @@ -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" diff --git a/coin/provisioning/qtci-macos-26-arm/30-android.sh b/coin/provisioning/qtci-macos-26-arm/30-android.sh index acd2d4b9..f6d17e49 100755 --- a/coin/provisioning/qtci-macos-26-arm/30-android.sh +++ b/coin/provisioning/qtci-macos-26-arm/30-android.sh @@ -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"