From ac22ffaf57a6943b4e8034d2bd9ddd44b5aeee29 Mon Sep 17 00:00:00 2001 From: Elias Toivola Date: Thu, 27 Mar 2025 11:22:31 +0200 Subject: [PATCH] Android: set nightly targets for older NDK versions This change makes provisioning also install older NDKs for Android, which will be used in nightly targets. Task-number: QTQAINFRA-7069 Change-Id: Ia8695383e94df282822da9019c33f1004a879bf6 Reviewed-by: Assam Boudjelthia (cherry picked from commit 687b73cde0370fad9ebc949994ac2c9ac484508d) Reviewed-by: Qt Cherry-pick Bot --- .../cmake_platforms_target_android.yaml | 18 +-- .../linux_android_tests_developer.yaml | 4 +- coin/platform_configs/nightly_android.yaml | 107 ++++++++++++++++++ .../tqtc-android-automotive.yaml | 8 +- .../common/linux/android_linux.sh | 38 ++++--- .../common/unix/install-ffmpeg-android.sh | 12 +- .../common/unix/openssl_for_android.sh | 50 +++++--- .../common/windows/android-openssl.ps1 | 88 ++++++++------ coin/provisioning/common/windows/android.ps1 | 54 +++++---- .../common/windows/install-ffmpeg.ps1 | 4 +- 10 files changed, 274 insertions(+), 109 deletions(-) create mode 100644 coin/platform_configs/nightly_android.yaml diff --git a/coin/platform_configs/cmake_platforms_target_android.yaml b/coin/platform_configs/cmake_platforms_target_android.yaml index dd69c739..c2634f51 100644 --- a/coin/platform_configs/cmake_platforms_target_android.yaml +++ b/coin/platform_configs/cmake_platforms_target_android.yaml @@ -26,10 +26,10 @@ Configurations: Features: ['Packaging', 'Sccache', 'WarningsAreErrors', 'DisableTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM'] Environment variables: [ 'Path={{.Env.MINGW_PATH}}\bin;{{.Env.Path}}', - 'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_DEFAULT}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis armeabi-v7a -no-feature-pkg-config', - 'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_DEFAULT}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON', + 'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis armeabi-v7a -no-feature-pkg-config', + '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=-DQT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH={{.Env.Protobuf_ROOT_mingw}} -DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_ARMV7}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR={{.Env.Protobuf_ROOT_msvc}}/include', - 'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_DEFAULT}}' + 'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_LATEST}}' ] - Id: 'android-9-x86-on-linux' @@ -41,10 +41,10 @@ Configurations: Platform dependency: 'rhel-8.10' Features: ['Packaging', 'Sccache', 'WarningsAreErrors', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM'] Environment variables: [ - 'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_DEFAULT}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86', - 'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_DEFAULT}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON', + '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', + '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}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include', - 'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_DEFAULT}}', + 'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_LATEST}}', 'ANDROID_EMULATOR=emulator_x86_api_28' ] - @@ -57,10 +57,10 @@ Configurations: Platform dependency: 'rhel-8.10' Features: ['Packaging', 'Sccache', 'WarningsAreErrors', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM'] Environment variables: [ - 'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_DEFAULT}} -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_DEFAULT}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON', + '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}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include', - 'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_DEFAULT}}', + 'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_LATEST}}', 'ANDROID_EMULATOR=emulator_x86_64_api_35' ] - diff --git a/coin/platform_configs/linux_android_tests_developer.yaml b/coin/platform_configs/linux_android_tests_developer.yaml index 3488a44d..248b1f7b 100644 --- a/coin/platform_configs/linux_android_tests_developer.yaml +++ b/coin/platform_configs/linux_android_tests_developer.yaml @@ -10,8 +10,8 @@ Configurations: Platform dependency: 'rhel-8.10' Features: ['Packaging', 'Sccache', 'AndroidTestRun', 'UseConfigure'] Environment variables: [ - 'TARGET_CONFIGURE_ARGS=-nomake examples -debug -developer-build -android-ndk {{.Env.ANDROID_NDK_ROOT_DEFAULT}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86', - 'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_DEFAULT}}', + 'TARGET_CONFIGURE_ARGS=-nomake examples -debug -developer-build -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86', + 'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_LATEST}}', 'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID}}', 'NON_QTBASE_TARGET_CMAKE_ARGS=', 'ANDROID_EMULATOR=emulator_x86_api_28'] diff --git a/coin/platform_configs/nightly_android.yaml b/coin/platform_configs/nightly_android.yaml new file mode 100644 index 00000000..529966a0 --- /dev/null +++ b/coin/platform_configs/nightly_android.yaml @@ -0,0 +1,107 @@ +Version: 2 +Include: [ + cmake_platforms.yaml: [ + 'rhel-8.10', + 'windows-10_22h2-mingw13' + ] +] +# Android nightly to check for older (but still supported for the branch) NDKs +Configurations: +- + Id: 'android-15-x86_64-on-linux' + Template: 'qtci-linux-RHEL-8.10-x86_64-51' + Target os: 'Android_ANY' + Target arch: 'x86_64' + Compiler: 'GCC' + Target compiler: 'Clang' + Platform dependency: 'rhel-8.10' + Features: ['Sccache', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'WarningsAreErrors'] + Environment variables: [ + 'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_NIGHTLY1}} -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_NIGHTLY1}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON', + 'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86_64}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include', + 'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_NIGHTLY1}}', + 'ANDROID_EMULATOR=emulator_x86_64_api_35' + ] +- + Id: 'android-9-x86-on-linux' + Template: 'qtci-linux-RHEL-8.10-x86_64-51' + Target os: 'Android_ANY' + Target arch: 'x86' + Compiler: 'GCC' + Target compiler: 'Clang' + Platform dependency: 'rhel-8.10' + Features: ['Sccache', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'WarningsAreErrors'] + Environment variables: [ + 'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_NIGHTLY1}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86', + 'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_NIGHTLY1}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON', + 'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include', + 'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_NIGHTLY1}}', + 'ANDROID_EMULATOR=emulator_x86_api_28' + ] +- + Id: 'android-armv7-on-windows' + Template: 'qtci-windows-10_22H2-x86_64-53' + Target os: 'Android_ANY' + Target arch: 'armv7' + Compiler: 'Mingw' + Target compiler: 'Clang' + Platform dependency: 'windows-10_22h2-mingw13' + Features: ['Sccache', 'WarningsAreErrors', 'DisableTests', 'UseConfigure'] + Environment variables: [ + 'Path={{.Env.MINGW_PATH}}\bin;{{.Env.Path}}', + 'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_NIGHTLY1}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis armeabi-v7a -no-feature-pkg-config', + 'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_NIGHTLY1}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON', + 'NON_QTBASE_TARGET_CMAKE_ARGS=-DQT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH={{.Env.Protobuf_ROOT_mingw}} -DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_ARMV7}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR={{.Env.Protobuf_ROOT_msvc}}/include', + 'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_NIGHTLY1}}' + ] + +# ANDROID_NDK_ROOT_NIGHTLY2 +- + Id: 'android-15-x86_64-on-linux' + Template: 'qtci-linux-RHEL-8.10-x86_64-51' + Target os: 'Android_ANY' + Target arch: 'x86_64' + Compiler: 'GCC' + Target compiler: 'Clang' + Platform dependency: 'rhel-8.10' + Features: ['Sccache', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'WarningsAreErrors'] + Environment variables: [ + 'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_NIGHTLY2}} -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_NIGHTLY2}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON', + 'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86_64}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include', + 'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_NIGHTLY2}}', + 'ANDROID_EMULATOR=emulator_x86_64_api_35' + ] +- + Id: 'android-9-x86-on-linux' + Template: 'qtci-linux-RHEL-8.10-x86_64-51' + Target os: 'Android_ANY' + Target arch: 'x86' + Compiler: 'GCC' + Target compiler: 'Clang' + Platform dependency: 'rhel-8.10' + Features: ['Sccache', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'WarningsAreErrors'] + Environment variables: [ + 'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_NIGHTLY2}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86', + 'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_NIGHTLY2}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON', + 'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include', + 'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_NIGHTLY2}}', + 'ANDROID_EMULATOR=emulator_x86_api_28' + ] +- + Id: 'android-armv7-on-windows' + Template: 'qtci-windows-10_22H2-x86_64-53' + Target os: 'Android_ANY' + Target arch: 'armv7' + Compiler: 'Mingw' + Target compiler: 'Clang' + Platform dependency: 'windows-10_22h2-mingw13' + Features: ['Sccache', 'WarningsAreErrors', 'DisableTests', 'UseConfigure'] + Environment variables: [ + 'Path={{.Env.MINGW_PATH}}\bin;{{.Env.Path}}', + 'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_NIGHTLY2}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis armeabi-v7a -no-feature-pkg-config', + 'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_NIGHTLY2}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON', + 'NON_QTBASE_TARGET_CMAKE_ARGS=-DQT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH={{.Env.Protobuf_ROOT_mingw}} -DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_ARMV7}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR={{.Env.Protobuf_ROOT_msvc}}/include', + 'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_NIGHTLY2}}' + ] diff --git a/coin/platform_configs/tqtc-android-automotive.yaml b/coin/platform_configs/tqtc-android-automotive.yaml index 95704569..50790fc5 100644 --- a/coin/platform_configs/tqtc-android-automotive.yaml +++ b/coin/platform_configs/tqtc-android-automotive.yaml @@ -27,8 +27,8 @@ Configurations: Platform dependency: 'rhel-8.10' Features: ['Packaging', 'Sccache', 'WarningsAreErrors', 'AndroidTestRun', 'VMSize8', 'UseConfigure'] Environment variables: [ - 'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_DEFAULT}} -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_DEFAULT}}', + '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}}', 'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID}}', 'NON_QTBASE_TARGET_CMAKE_ARGS= -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include', 'ANDROID_EMULATOR=automotive_emulator_x86_64_api_34' @@ -43,8 +43,8 @@ Configurations: Platform dependency: 'rhel-8.10' Features: ['Packaging', 'Sccache', 'WarningsAreErrors', 'AndroidTestRun', 'VMSize8', 'UseConfigure'] Environment variables: [ - 'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_DEFAULT}} -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_DEFAULT}}', + '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}}', 'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID}}', 'NON_QTBASE_TARGET_CMAKE_ARGS= -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include', 'ANDROID_EMULATOR=automotive_emulator_x86_64_api_29' diff --git a/coin/provisioning/common/linux/android_linux.sh b/coin/provisioning/common/linux/android_linux.sh index 4cad2b65..178133d5 100755 --- a/coin/provisioning/common/linux/android_linux.sh +++ b/coin/provisioning/common/linux/android_linux.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# Copyright (C) 2022 The Qt Company Ltd. +# 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 # This script install Android sdk and ndk. @@ -24,14 +24,21 @@ basePath="http://ci-files01-hki.ci.qt.io/input/android" toolsVersion="2.1" toolsFile="commandlinetools-linux-6609375_latest.zip" -ndkVersionLatest="r27c" -ndkVersionDefault=$ndkVersionLatest sdkBuildToolsVersion="35.0.1" sdkApiLevel="android-35" - toolsSha1="9172381ff070ee2a416723c1989770cf4b0d1076" + +ndkVersionLatest="r27c" ndkSha1Latest="090e8083a715fdb1a3e402d0763c388abb03fb4e" -ndkSha1Default=$ndkSha1Latest + +# 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 +ndkSha1Nightly1=$ndkSha1Latest + +ndkVersionNightly2=$ndkVersionLatest +ndkSha1Nightly2=$ndkSha1Latest # Android Automotive max SDK level image sdkApiLevelAutomotiveMax="android-34" @@ -69,17 +76,22 @@ function InstallNdk() { androidNdkRoot="${targetFolder}/${zipBase}" } -InstallNdk $ndkVersionDefault $ndkSha1Default -SetEnvVar "ANDROID_NDK_ROOT_DEFAULT" "$androidNdkRoot" - -if [ "$ndkVersionDefault" != "$ndkVersionLatest" ]; then - InstallNdk $ndkVersionLatest $ndkSha1Latest -fi +InstallNdk $ndkVersionLatest $ndkSha1Latest SetEnvVar "ANDROID_NDK_ROOT_LATEST" "$androidNdkRoot" +if [ "$ndkVersionNightly1" != "$ndkVersionLatest" ]; then + InstallNdk $ndkVersionNightly1 $ndkSha1Nightly1 + SetEnvVar "ANDROID_NDK_ROOT_NIGHTLY1" "$androidNdkRoot" +fi + +if [ "$ndkVersionNightly2" != "$ndkVersionLatest" ]; then + InstallNdk $ndkVersionNightly2 $ndkSha1Nightly2 + SetEnvVar "ANDROID_NDK_ROOT_NIGHTLY2" "$androidNdkRoot" +fi + # To be used by vcpkg -SetEnvVar "ANDROID_NDK_HOME" "$targetFolder/android-ndk-$ndkVersionDefault" -export ANDROID_NDK_HOME="$targetFolder/android-ndk-$ndkVersionDefault" +SetEnvVar "ANDROID_NDK_HOME" "$targetFolder/android-ndk-$ndkVersionLatest" +export ANDROID_NDK_HOME="$targetFolder/android-ndk-$ndkVersionLatest" echo "Changing ownership of Android files." if uname -a |grep -q "el7"; then diff --git a/coin/provisioning/common/unix/install-ffmpeg-android.sh b/coin/provisioning/common/unix/install-ffmpeg-android.sh index 62ee173f..dca9db56 100755 --- a/coin/provisioning/common/unix/install-ffmpeg-android.sh +++ b/coin/provisioning/common/unix/install-ffmpeg-android.sh @@ -30,7 +30,7 @@ build_ffmpeg_android() { sudo mkdir -p "$target_dir" - local openssl_include="$OPENSSL_ANDROID_HOME_DEFAULT/include" + local openssl_include="$OPENSSL_ANDROID_HOME_LATEST/include" local openssl_libs local libs_prefix local target_cpu @@ -40,19 +40,19 @@ build_ffmpeg_android() { target_toolchain_arch="x86_64-linux-android" target_arch=x86_64 target_cpu=x86-64 - openssl_libs="$OPENSSL_ANDROID_HOME_DEFAULT/x86_64" + openssl_libs="$OPENSSL_ANDROID_HOME_LATEST/x86_64" libs_prefix="_x86_64" elif [ "$target_arch" == "x86" ]; then target_toolchain_arch="i686-linux-android" target_arch=x86 target_cpu=i686 - openssl_libs="$OPENSSL_ANDROID_HOME_DEFAULT/x86" + openssl_libs="$OPENSSL_ANDROID_HOME_LATEST/x86" libs_prefix="_x86" elif [ "$target_arch" == "arm64" ]; then target_toolchain_arch="aarch64-linux-android" target_arch=aarch64 target_cpu=armv8-a - openssl_libs="$OPENSSL_ANDROID_HOME_DEFAULT/arm64-v8a" + openssl_libs="$OPENSSL_ANDROID_HOME_LATEST/arm64-v8a" libs_prefix="_arm64-v8a" fi @@ -61,7 +61,7 @@ build_ffmpeg_android() { local api_version=24 - local ndk_root=$ANDROID_NDK_ROOT_DEFAULT + local ndk_root=$ANDROID_NDK_ROOT_LATEST local ndk_host if uname -a |grep -q "Darwin"; then ndk_host=darwin-x86_64 @@ -124,7 +124,7 @@ fi # If parameter is set, use it as the target output directory. if [ ! -z $target_install_dir_param ]; then - target_dir=$target_install_dir_param + target_dir=$target_install_dir_param fi build_ffmpeg_android "$target_arch" "$target_dir" diff --git a/coin/provisioning/common/unix/openssl_for_android.sh b/coin/provisioning/common/unix/openssl_for_android.sh index c7ea1402..ef1bdc2b 100755 --- a/coin/provisioning/common/unix/openssl_for_android.sh +++ b/coin/provisioning/common/unix/openssl_for_android.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# Copyright (C) 2023 The Qt Company Ltd. +# 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 # This script install prebuilt OpenSSL which was built against Android NDK 25. @@ -11,11 +11,17 @@ source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh" # shellcheck source=../unix/SetEnvVar.sh source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh" -version="3.0.7" +sslVersionForLatest="3.0.7" ndkVersionLatest="r27c" -ndkVersionDefault=$ndkVersionLatest -prebuiltOpensslNdkShaLatest="733cff853b6ee7738e78b90f46b5f028c8490e1e" -prebuiltOpensslNdkShaDefault=$prebuiltOpensslNdkShaLatest +prebuiltOpensslShaLatest="733cff853b6ee7738e78b90f46b5f028c8490e1e" + +ndkVersionNightly1=$ndkVersionLatest +sslVersionForNightly1=$sslVersionForLatest +prebuiltOpensslShaNightly1=$prebuiltOpensslShaLatest + +ndkVersionNightly2=$ndkVersionLatest +sslVersionForNightly2=$sslVersionForLatest +prebuiltOpensslShaNightly2=$prebuiltOpensslShaLatest : <<'EOB' SOURCE BUILD INSTRUCTIONS - Openssl prebuilt was made using Android NDK r27c # Source built requires GCC and Perl to be in PATH. Rhel "requires yum install perl-IPC-Cmd" @@ -31,11 +37,11 @@ else rm -rf "$exports_file" fi -officialUrl="https://www.openssl.org/source/openssl-$version.tar.gz" -cachedUrl="http://ci-files01-hki.ci.qt.io/input/openssl/openssl-$version.tar.gz" -targetFile="/tmp/openssl-$version.tar.gz" +officialUrl="https://www.openssl.org/source/openssl-$sslVersionForLatest.tar.gz" +cachedUrl="http://ci-files01-hki.ci.qt.io/input/openssl/openssl-$sslVersionForLatest.tar.gz" +targetFile="/tmp/openssl-$sslVersionForLatest.tar.gz" sha="f20736d6aae36bcbfa9aba0d358c71601833bf27" -opensslHome="${HOME}/openssl/android/openssl-${version}" +opensslHome="${HOME}/openssl/android/openssl-${sslVersionForLatest}" DownloadURL "$cachedUrl" "$officialUrl" "$sha" "$targetFile" mkdir -p "${HOME}/openssl/android/" tar -xzf "$targetFile" -C "${HOME}/openssl/android/" @@ -53,11 +59,12 @@ function InstallPrebuiltOpenssl() { ndkVersion=$1 sha=$2 + sslVersion=$3 - opensslHome="${HOME}/prebuilt-openssl-${version}-for-android-ndk-${ndkVersion}" + opensslHome="${HOME}/prebuilt-openssl-${sslVersion}-for-android-ndk-${ndkVersion}" if [[ ! -d ${opensslHome} ]]; then - prebuiltUrl="http://ci-files01-hki.ci.qt.io/input/openssl/prebuilt-openssl-${version}-for-android-ndk-${ndkVersion}.zip" - targetFile="/tmp/prebuilt-openssl-${version}-for-android-ndk-${ndkVersion}.zip" + prebuiltUrl="http://ci-files01-hki.ci.qt.io/input/openssl/prebuilt-openssl-${sslVersion}-for-android-ndk-${ndkVersion}.zip" + targetFile="/tmp/prebuilt-openssl-${sslVersion}-for-android-ndk-${ndkVersion}.zip" DownloadURL "$prebuiltUrl" "$prebuiltUrl" "$sha" "$targetFile" unzip -o "$targetFile" -d "${HOME}" @@ -65,9 +72,18 @@ function InstallPrebuiltOpenssl() { fi } -InstallPrebuiltOpenssl $ndkVersionDefault $prebuiltOpensslNdkShaDefault -SetEnvVar "OPENSSL_ANDROID_HOME_DEFAULT" "$opensslHome" -InstallPrebuiltOpenssl $ndkVersionLatest $prebuiltOpensslNdkShaLatest -SetEnvVar "OPENSSL_ANDROID_HOME_LATEST" "$opensslHome" +if [ "$ndkVersionNightly1" != "$ndkVersionLatest" ]; then + InstallPrebuiltOpenssl $ndkVersionNightly1 $prebuiltOpensslShaNightly1 $sslVersionForNightly1 + SetEnvVar "OPENSSL_ANDROID_HOME_NIGHTLY1" "$opensslHome" + echo "OpenSSL for Android $ndkVersionNightly1 = $sslVersionForNightly1" >> ~/versions.txt +fi -echo "OpenSSL for Android = $version" >> ~/versions.txt +if [ "$ndkVersionNightly2" != "$ndkVersionLatest" ]; then + InstallPrebuiltOpenssl $ndkVersionNightly2 $prebuiltOpensslShaNightly2 $sslVersionForNightly2 + SetEnvVar "OPENSSL_ANDROID_HOME_NIGHTLY2" "$opensslHome" + echo "OpenSSL for Android $ndkVersionNightly2 = $sslVersionForNightly2" >> ~/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 5c431a26..88811f12 100644 --- a/coin/provisioning/common/windows/android-openssl.ps1 +++ b/coin/provisioning/common/windows/android-openssl.ps1 @@ -1,4 +1,4 @@ -# Copyright (C) 2023 The Qt Company Ltd. +# 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 # Requires: 7z, perl and msys @@ -15,26 +15,38 @@ if (Is64BitWinHost) { # Msys need to be installed to target machine # More info and building instructions can be found from http://doc.qt.io/qt-5/opensslsupport.html -$openssl_version = "3.0.7" +$openssl_version_latest = "3.0.7" $ndk_version_latest = "r27c" -$ndk_version_default = "$ndk_version_latest" -$openssl_compressed = Get-DownloadLocation ("openssl-${openssl_version}.tar.gz") -$openssl_sha1 = "f20736d6aae36bcbfa9aba0d358c71601833bf27" -$prebuilt_sha1_ndk_latest = "733cff853b6ee7738e78b90f46b5f028c8490e1e" -$prebuilt_sha1_ndk_default = "$prebuilt_sha1_ndk_latest" -$destination_prefix = "C:\Utils\prebuilt-openssl-${openssl_version}-for-android-ndk" +$prebuilt_ssl_sha1_latest = "733cff853b6ee7738e78b90f46b5f028c8490e1e" +$openssl_sha1_latest = "f20736d6aae36bcbfa9aba0d358c71601833bf27" -function Install($1, $2) { - $ndk_version = $1 - $prebuilt_sha1 = $2 +$openssl_version_nightly1 = $openssl_version_latest +$ndk_version_nightly1 = $ndk_version_latest +$prebuilt_ssl_sha1_nightly1 = $prebuilt_ssl_sha1_latest +$openssl_sha1_nightly1 = $openssl_sha1_latest - # msys unix style paths - $openssl_path = "/c/Utils/openssl-android-master" - $ndk_path = "/c/Utils/Android/android-ndk-${ndk_version}" - $cc_path = "$ndk_path/toolchains/llvm/prebuilt/windows-x86_64/bin" +$openssl_version_nightly2 = $openssl_version_latest +$ndk_version_nightly2 = $ndk_version_latest +$prebuilt_ssl_sha1_nightly2 = $prebuilt_ssl_sha1_latest +$openssl_sha1_nightly2 = $openssl_sha1_latest - $prebuilt_url_openssl = "\\ci-files01-hki.ci.qt.io\provisioning\openssl\prebuilt-openssl-${openssl_version}-for-android-ndk-${ndk_version}.zip" - $prebuilt_zip_openssl = Get-DownloadLocation ("prebuilt-openssl-${openssl_version}-for-android-ndk-${ndk_version}.zip") +function Install($1, $2, $3, $4) { + + $openssl_version = $1 + $ndk_version = $2 + $prebuilt_sha1 = $3 + $openssl_sha1 = $4 + + Write-Host "Installing OpenSSL ${openssl_version} for Android NDK ${ndk_version}" + + $openssl_compressed = Get-DownloadLocation ("openssl-${openssl_version}.tar.gz") + # msys unix style paths + $openssl_path = "/c/Utils/openssl-android-master" + $ndk_path = "/c/Utils/Android/android-ndk-${ndk_version}" + $cc_path = "$ndk_path/toolchains/llvm/prebuilt/windows-x86_64/bin" + + $prebuilt_url_openssl = "\\ci-files01-hki.ci.qt.io\provisioning\openssl\prebuilt-openssl-${openssl_version}-for-android-ndk-${ndk_version}.zip" + $prebuilt_zip_openssl = Get-DownloadLocation ("prebuilt-openssl-${openssl_version}-for-android-ndk-${ndk_version}.zip") if ((Test-Path $prebuilt_url_openssl)) { Write-Host "Install prebuilt OpenSSL for Android" @@ -69,34 +81,36 @@ function Install($1, $2) { } } - # ANDROID_NDK_ROOT needs to be in environment variables before running this script - # Set-EnvironmentVariable "ANDROID_NDK_ROOT" "C:\Utils\Android\android-ndk-r27c" + $make_install = Start-Process -NoNewWindow -Wait -PassThru -ErrorAction Stop -FilePath "$msys_bash" -ArgumentList ("-lc", "`"yes | pacman -S make`"") + CheckExitCode $make_install - $make_install = Start-Process -NoNewWindow -Wait -PassThru -ErrorAction Stop -FilePath "$msys_bash" -ArgumentList ("-lc", "`"yes | pacman -S make`"") - CheckExitCode $make_install + $configure = Start-Process -NoNewWindow -Wait -PassThru -ErrorAction Stop -FilePath "$msys_bash" -ArgumentList ("-lc", "`"pushd $openssl_path; ANDROID_NDK_ROOT=$ndk_path PATH=${cc_path}:`$PATH CC=clang $openssl_path/Configure shared android-arm`"") + CheckExitCode $configure - $configure = Start-Process -NoNewWindow -Wait -PassThru -ErrorAction Stop -FilePath "$msys_bash" -ArgumentList ("-lc", "`"pushd $openssl_path; ANDROID_NDK_ROOT=$ndk_path PATH=${cc_path}:`$PATH CC=clang $openssl_path/Configure shared android-arm`"") - CheckExitCode $configure + $make = Start-Process -NoNewWindow -Wait -PassThru -ErrorAction Stop -FilePath "$msys_bash" -ArgumentList ("-lc", "`"pushd $openssl_path; ANDROID_NDK_ROOT=$ndk_path PATH=${cc_path}:`$PATH CC=clang make -f $openssl_path/Makefile build_generated`"") + CheckExitCode $make - $make = Start-Process -NoNewWindow -Wait -PassThru -ErrorAction Stop -FilePath "$msys_bash" -ArgumentList ("-lc", "`"pushd $openssl_path; ANDROID_NDK_ROOT=$ndk_path PATH=${cc_path}:`$PATH CC=clang make -f $openssl_path/Makefile build_generated`"") - CheckExitCode $make - - Pop-Location - Remove-item C:\Utils\tmp -Recurse -Confirm:$false + Pop-Location + Remove-item C:\Utils\tmp -Recurse -Confirm:$false } + return "C:\Utils\prebuilt-openssl-${openssl_version}-for-android-ndk-${ndk_version}" + } # Install NDK Default version -Install $ndk_version_default $prebuilt_sha1_ndk_default +$ndk_ssl_path = Install $openssl_version_latest $ndk_version_latest $prebuilt_ssl_sha1_latest $openssl_sha1_latest +Set-EnvironmentVariable "OPENSSL_ANDROID_HOME_LATEST" "$ndk_ssl_path" +Write-Output "Android OpenSSL $openssl_version_latest for NDK $ndk_version_latest" >> ~/versions.txt -if (Test-Path -Path ${destination_prefix}-${ndk_version_latest}) { - Write-Host "OpenSSL for Android Latest version is the same than Default. Installation done." -} else { - # Install NDK Latest version - Install $ndk_version_latest $prebuilt_sha1_ndk_latest +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" + Write-Output "Android OpenSSL $openssl_version_nightly1 for NDK $ndk_version_nightly1" >> ~/versions.txt } -Set-EnvironmentVariable "OPENSSL_ANDROID_HOME_DEFAULT" "${destination_prefix}-${ndk_version_default}" -Set-EnvironmentVariable "OPENSSL_ANDROID_HOME_LATEST" "${destination_prefix}-${ndk_version_latest}" -Write-Output "Android OpenSSL = $openssl_version" >> ~/versions.txt +if ($ndk_version_nightly2 -ne $ndk_version_latest) { + $ndk_ssl_path = Install $openssl_version_nightly2 $ndk_version_nightly2 $prebuilt_ssl_sha1_nightly2 $openssl_sha1_nightly2 + Set-EnvironmentVariable "OPENSSL_ANDROID_HOME_NIGHTLY2" "$ndk_ssl_path" + Write-Output "Android OpenSSL $openssl_version_nightly2 for NDK $ndk_version_nightly2" >> ~/versions.txt +} diff --git a/coin/provisioning/common/windows/android.ps1 b/coin/provisioning/common/windows/android.ps1 index 4e9dde67..d67b86f1 100644 --- a/coin/provisioning/common/windows/android.ps1 +++ b/coin/provisioning/common/windows/android.ps1 @@ -1,4 +1,4 @@ -# Copyright (C) 2022 The Qt Company Ltd. +# 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 . "$PSScriptRoot\helpers.ps1" @@ -10,15 +10,25 @@ # That's why we need to use Andoid-21 API version in Qt 5.9. # NDK +$ndkZip = "C:\Windows\Temp\android_ndk.zip" + $ndkVersionLatest = "r27c" -$ndkVersionDefault = $ndkVersionLatest $ndkChecksumLatest = "ac5f7762764b1f15341094e148ad4f847d050c38" -$ndkChecksumDefault = $ndkChecksumLatest $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" -$ndkCachedUrlDefault = "\\ci-files01-hki.ci.qt.io\provisioning\android\android-ndk-$ndkVersionDefault-windows.zip" -$ndkOfficialUrlDefault = "https://dl.google.com/android/repository/android-ndk-$ndkVersionDefault-windows.zip" -$ndkZip = "C:\Windows\Temp\android_ndk.zip" + +# 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 +$ndkChecksumNightly1 = $ndkChecksumLatest +$ndkCachedUrlNightly1 = "\\ci-files01-hki.ci.qt.io\provisioning\android\android-ndk-$ndkVersionNightly1-windows.zip" +$ndkOfficialUrlNightly1 = "https://dl.google.com/android/repository/android-ndk-$ndkVersionNightly1-windows.zip" + +$ndkVersionNightly2 = $ndkVersionLatest +$ndkChecksumNightly2 = $ndkChecksumLatest +$ndkCachedUrlNightly2 = "\\ci-files01-hki.ci.qt.io\provisioning\android\android-ndk-$ndkVersionNightly2-windows.zip" +$ndkOfficialUrlNightly2 = "https://dl.google.com/android/repository/android-ndk-$ndkVersionNightly2-windows.zip" # SDK $toolsVersion = "2.1" @@ -32,6 +42,8 @@ $toolsChecksum = "e2e19c2ff584efa87ef0cfdd1987f92881323208" $cmdFolder = "c:\Utils\Android\cmdline-tools" $sdkZip = "c:\Windows\Temp\$toolsFile" +New-Item -ItemType Directory -Path C:\Utils\Android\ +New-Item -ItemType Directory -Path C:\Windows\Temp\android_extract function Install($1, $2, $3, $4) { $cacheUrl = $1 @@ -50,20 +62,24 @@ function Install($1, $2, $3, $4) { return "C:\Utils\Android\$baseDirectory" } -New-Item -ItemType Directory -Path C:\Utils\Android\ -New-Item -ItemType Directory -Path C:\Windows\Temp\android_extract -Write-Host "Installing Android NDK $ndkVersionDefault" -$ndkFolderDefault = Install $ndkCachedUrlDefault $ndkZip $ndkChecksumDefault $ndkOfficialUrlDefault -Set-EnvironmentVariable "ANDROID_NDK_ROOT_DEFAULT" $ndkFolderDefault +Write-Host "Installing Android NDK $nkdVersionLatest" +$ndkFolderLatest = Install $ndkCachedUrlLatest $ndkZip $ndkChecksumLatest $ndkOfficialUrlLatest +Set-EnvironmentVariable "ANDROID_NDK_ROOT_LATEST" $ndkFolderLatest # To be used by vcpkg -Set-EnvironmentVariable "ANDROID_NDK_HOME" $ndkFolderDefault +Set-EnvironmentVariable "ANDROID_NDK_HOME" $ndkFolderLatest -if ($ndkVersionDefault -eq $ndkVersionLatest) { - Write-Host "Android Latest version is the same than Default. NDK installation done." -} else { - Write-Host "Installing Android NDK $nkdVersionLatest" - $ndkFolderLatest = Install $ndkCachedUrlLatest $ndkZip $ndkChecksumLatest $ndkOfficialUrlLatest - Set-EnvironmentVariable "ANDROID_NDK_ROOT_LATEST" $ndkFolderLatest +if ($ndkVersionNightly1 -ne $ndkVersionLatest) { + Write-Host "Installing Android NDK $ndkVersionNightly1" + $ndkFolderNightly = Install $ndkCachedUrlNightly1 $ndkZip $ndkChecksumNightly1 $ndkOfficialUrlNightly1 + Set-EnvironmentVariable "ANDROID_NDK_ROOT_NIGHTLY1" $ndkFolderNightly + Write-Output "Android NDK = $ndkVersionNightly1" >> ~/versions.txt +} + +if ($ndkVersionNightly2 -ne $ndkVersionLatest) { + Write-Host "Installing Android NDK $ndkVersionNightly2" + $ndkFolderNightly = Install $ndkCachedUrlNightly2 $ndkZip $ndkChecksumNightly2 $ndkOfficialUrlNightly2 + Set-EnvironmentVariable "ANDROID_NDK_ROOT_NIGHTLY2" $ndkFolderNightly + Write-Output "Android NDK = $ndkVersionNightly2" >> ~/versions.txt } $toolsFolder = Install $toolsCachedUrl $sdkZip $toolsChecksum $toolsOfficialUrl @@ -102,4 +118,4 @@ cmd /c "dir C:\Utils\android" Write-Output "Android SDK tools= $toolsVersion" >> ~/versions.txt Write-Output "Android SDK Build Tools = $sdkBuildToolsVersion" >> ~/versions.txt Write-Output "Android SDK Api Level = $sdkApiLevel" >> ~/versions.txt -Write-Output "Android NDK = $ndkVersionDefault" >> ~/versions.txt +Write-Output "Android NDK = $ndkVersionLatest" >> ~/versions.txt diff --git a/coin/provisioning/common/windows/install-ffmpeg.ps1 b/coin/provisioning/common/windows/install-ffmpeg.ps1 index ee8c2f2f..57f13e09 100644 --- a/coin/provisioning/common/windows/install-ffmpeg.ps1 +++ b/coin/provisioning/common/windows/install-ffmpeg.ps1 @@ -157,7 +157,7 @@ function InstallAndroidArmv7 { $ranlib="${toolchain_bin}/llvm-ranlib.exe" $nm="${toolchain_bin}/llvm-nm.exe" $strip="${toolchain_bin}/llvm-strip.exe" - $openssl_path = [System.Environment]::GetEnvironmentVariable("OPENSSL_ANDROID_HOME_DEFAULT", [System.EnvironmentVariableTarget]::Machine) + $openssl_path = [System.Environment]::GetEnvironmentVariable("OPENSSL_ANDROID_HOME_LATEST", [System.EnvironmentVariableTarget]::Machine) $openssl_path = $openssl_path.Replace("\", "/") New-Item -ItemType SymbolicLink -Path ${openssl_path}/armeabi-v7a/libcrypto.so -Target ${openssl_path}/armeabi-v7a/libcrypto_3.so @@ -167,7 +167,7 @@ function InstallAndroidArmv7 { $config += " --enable-cross-compile --target-os=android --enable-jni --enable-mediacodec --enable-openssl --enable-pthreads --enable-neon --disable-asm --disable-indev=android_camera" $config += " --arch=$target_arch --cpu=${target_cpu} --sysroot=${sysroot} --sysinclude=${sysroot}/usr/include/" $config += " --cc=${cc} --cxx=${cxx} --ar=${ar} --ranlib=${ranlib}" - $config += " --extra-cflags=-I$envOPENSSL_ANDROID_HOME_DEFAULT/include --extra-ldflags=-L$env:OPENSSL_ANDROID_HOME_DEFAULT/armeabi-v7a" + $config += " --extra-cflags=-I$envOPENSSL_ANDROID_HOME_LATEST/include --extra-ldflags=-L$env:OPENSSL_ANDROID_HOME_LATEST/armeabi-v7a" $config += " --extra-cflags=-I${openssl_path}/include --extra-ldflags=-L${openssl_path}/armeabi-v7a" $config += " --strip=$strip"