[macOS] Add Android NDK r23 (#4032)

This commit is contained in:
Nikita Bykov
2021-09-15 10:14:42 +03:00
committed by GitHub
parent d639badcd6
commit 65da2f8781
6 changed files with 44 additions and 21 deletions

View File

@@ -26,13 +26,14 @@ function get_full_ndk_version {
components=() components=()
ANDROID_PLATFORM=($(get_toolset_value '.android.platform_min_version')) ANDROID_PLATFORM=$(get_toolset_value '.android.platform_min_version')
ANDROID_BUILD_TOOL=($(get_toolset_value '.android.build_tools_min_version')) ANDROID_BUILD_TOOL=$(get_toolset_value '.android.build_tools_min_version')
ANDROID_EXTRA_LIST=($(get_toolset_value '.android."extra-list"[]')) ANDROID_EXTRA_LIST=($(get_toolset_value '.android."extra-list"[]'))
ANDROID_ADDON_LIST=($(get_toolset_value '.android."addon-list"[]')) ANDROID_ADDON_LIST=($(get_toolset_value '.android."addon-list"[]'))
ANDROID_ADDITIONAL_TOOLS=($(get_toolset_value '.android."additional-tools"[]')) ANDROID_ADDITIONAL_TOOLS=($(get_toolset_value '.android."additional-tools"[]'))
ANDROID_NDK_MAJOR_LTS=($(get_toolset_value '.android.ndk.lts')) ANDROID_NDK_MAJOR_VERSIONS=($(get_toolset_value '.android.ndk."versions"[]'))
ANDROID_NDK_MAJOR_LATEST=($(get_toolset_value '.android.ndk.latest')) ANDROID_NDK_MAJOR_DEFAULT=$(get_toolset_value '.android.ndk.default')
ANDROID_NDK_MAJOR_LATEST=$(get_toolset_value '.android.ndk."versions"[-1]')
# Get the latest command line tools from https://developer.android.com/studio#cmdline-tools # Get the latest command line tools from https://developer.android.com/studio#cmdline-tools
ANDROID_OSX_SDK_URL="https://dl.google.com/android/repository/commandlinetools-mac-7302050_latest.zip" ANDROID_OSX_SDK_URL="https://dl.google.com/android/repository/commandlinetools-mac-7302050_latest.zip"
ANDROID_HOME=$HOME/Library/Android/sdk ANDROID_HOME=$HOME/Library/Android/sdk
@@ -59,13 +60,17 @@ echo "Installing latest tools & platform tools..."
echo y | $SDKMANAGER "tools" "platform-tools" echo y | $SDKMANAGER "tools" "platform-tools"
echo "Installing latest ndk..." echo "Installing latest ndk..."
ndkLtsLatest=$(get_full_ndk_version $ANDROID_NDK_MAJOR_LTS) for ndk_version in "${ANDROID_NDK_MAJOR_VERSIONS[@]}"
ndkLatest=$(get_full_ndk_version $ANDROID_NDK_MAJOR_LATEST) do
echo y | $SDKMANAGER "ndk;$ndkLtsLatest" "ndk;$ndkLatest" ndk_full_version=$(get_full_ndk_version $ndk_version)
echo y | $SDKMANAGER "ndk;$ndk_full_version"
done
# This changes were added due to incompatibility with android ndk-bundle (ndk;22.0.7026061). # This changes were added due to incompatibility with android ndk-bundle (ndk;22.0.7026061).
# Link issue virtual-environments: https://github.com/actions/virtual-environments/issues/2481 # Link issue virtual-environments: https://github.com/actions/virtual-environments/issues/2481
# Link issue xamarin-android: https://github.com/xamarin/xamarin-android/issues/5526 # Link issue xamarin-android: https://github.com/xamarin/xamarin-android/issues/5526
ln -s $ANDROID_HOME/ndk/$ndkLtsLatest $ANDROID_HOME/ndk-bundle ndkDefault=$(get_full_ndk_version $ANDROID_NDK_MAJOR_DEFAULT)
ndkLatest=$(get_full_ndk_version $ANDROID_NDK_MAJOR_LATEST)
ln -s $ANDROID_HOME/ndk/$ndkDefault $ANDROID_HOME/ndk-bundle
ANDROID_NDK_LATEST_HOME=$ANDROID_HOME/ndk/$ndkLatest ANDROID_NDK_LATEST_HOME=$ANDROID_HOME/ndk/$ndkLatest
echo "export ANDROID_NDK_LATEST_HOME=$ANDROID_NDK_LATEST_HOME" >> "${HOME}/.bashrc" echo "export ANDROID_NDK_LATEST_HOME=$ANDROID_NDK_LATEST_HOME" >> "${HOME}/.bashrc"

View File

@@ -1,4 +1,5 @@
Import-Module "$PSScriptRoot/../helpers/SoftwareReport.Helpers.psm1" -DisableNameChecking Import-Module "$PSScriptRoot/../helpers/SoftwareReport.Helpers.psm1" -DisableNameChecking
Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1"
function Split-TableRowByColumns { function Split-TableRowByColumns {
param( param(
@@ -184,8 +185,13 @@ function Get-AndroidNDKVersions {
$ndkFolderPath = Join-Path (Get-AndroidSDKRoot) "ndk" $ndkFolderPath = Join-Path (Get-AndroidSDKRoot) "ndk"
$versions += Get-ChildItem -Path $ndkFolderPath -Name $versions += Get-ChildItem -Path $ndkFolderPath -Name
$ndkDefaultVersion = Get-ToolsetValue "android.ndk.default"
$ndkDefaultFullVersion = Get-ChildItem "$env:ANDROID_HOME/ndk/$ndkDefaultVersion.*" -Name | Select-Object -Last 1
return ($versions -Join "<br>") return ($versions | ForEach-Object {
$defaultPostfix = ( $_ -eq $ndkDefaultFullVersion ) ? " (default)" : ""
$_ + $defaultPostfix
} | Join-String -Separator "<br>")
} }
function Get-IntelHaxmVersion { function Get-IntelHaxmVersion {

View File

@@ -8,10 +8,10 @@ Describe "Android" {
$androidSdkManagerPackages = Get-AndroidPackages $androidSdkManagerPackages = Get-AndroidPackages
[int]$platformMinVersion = Get-ToolsetValue "android.platform_min_version" [int]$platformMinVersion = Get-ToolsetValue "android.platform_min_version"
[version]$buildToolsMinVersion = Get-ToolsetValue "android.build_tools_min_version" [version]$buildToolsMinVersion = Get-ToolsetValue "android.build_tools_min_version"
[string]$ndkLatestVersion = Get-ToolsetValue "android.ndk.latest" [array]$ndkVersions = Get-ToolsetValue "android.ndk.versions"
[string]$ndkLtsVersion = Get-ToolsetValue "android.ndk.lts" [string]$ndkDefaultVersion = Get-ToolsetValue "android.ndk.default"
$ndkLatestFullVersion = (Get-ChildItem "$env:ANDROID_HOME/ndk/$ndkLatestVersion.*" | Select-Object -Last 1).Name $ndkFullVersions = $ndkVersions | ForEach-Object { Get-ChildItem "$env:ANDROID_HOME/ndk/${_}.*" -Name | Select-Object -Last 1} | ForEach-Object { "ndk/${_}" }
$ndkLtsFullVersion = (Get-ChildItem "$env:ANDROID_HOME/ndk/$ndkLtsVersion.*" | Select-Object -Last 1).Name $ndkDefaultFullVersion = Get-ChildItem "$env:ANDROID_HOME/ndk/$ndkDefaultVersion.*" -Name | Select-Object -Last 1
$platformVersionsList = ($androidSdkManagerPackages | Where-Object { "$_".StartsWith("platforms;") }) -replace 'platforms;android-', '' $platformVersionsList = ($androidSdkManagerPackages | Where-Object { "$_".StartsWith("platforms;") }) -replace 'platforms;android-', ''
$platformNumericList = $platformVersionsList | Where-Object { $_ -match "\d+" } | Where-Object { [int]$_ -ge $platformMinVersion } | Sort-Object -Unique $platformNumericList = $platformVersionsList | Where-Object { $_ -match "\d+" } | Where-Object { [int]$_ -ge $platformMinVersion } | Sort-Object -Unique
@@ -28,10 +28,9 @@ Describe "Android" {
"tools/proguard", "tools/proguard",
"ndk-bundle", "ndk-bundle",
"cmake", "cmake",
"ndk/$ndkLatestFullVersion",
"ndk/$ndkLtsFullVersion",
$platforms, $platforms,
$buildTools, $buildTools,
$ndkFullVersions,
(Get-ToolsetValue "android.extra-list" | ForEach-Object { "extras/${_}" }), (Get-ToolsetValue "android.extra-list" | ForEach-Object { "extras/${_}" }),
(Get-ToolsetValue "android.addon-list" | ForEach-Object { "add-ons/${_}" }), (Get-ToolsetValue "android.addon-list" | ForEach-Object { "add-ons/${_}" }),
(Get-ToolsetValue "android.additional-tools") (Get-ToolsetValue "android.additional-tools")
@@ -76,11 +75,18 @@ Describe "Android" {
Context "Packages" { Context "Packages" {
$testCases = $androidPackages | ForEach-Object { @{ PackageName = $_ } } $testCases = $androidPackages | ForEach-Object { @{ PackageName = $_ } }
$defaultNdkTestCase = @{ NdkDefaultFullVersion = $ndkDefaultFullVersion }
It "<PackageName>" -TestCases $testCases { It "<PackageName>" -TestCases $testCases {
param ([string] $PackageName) param ([string] $PackageName)
Validate-AndroidPackage $PackageName Validate-AndroidPackage $PackageName
} }
It "ndk-bundle points to the default NDK version" -TestCases $defaultNdkTestCase {
$ndkLinkTarget = (Get-Item $env:ANDROID_NDK_HOME).Target
$ndkVersion = Split-Path -Path $ndkLinkTarget -Leaf
$ndkVersion | Should -BeExactly $NdkDefaultFullVersion
}
} }
It "HAXM is installed" -Skip:($os.IsBigSur) { It "HAXM is installed" -Skip:($os.IsBigSur) {

View File

@@ -215,8 +215,10 @@
"cmake;3.18.1" "cmake;3.18.1"
], ],
"ndk": { "ndk": {
"lts": "21", "default": "21",
"latest": "22" "versions": [
"21", "22", "23"
]
} }
}, },
"powershellModules": [ "powershellModules": [

View File

@@ -167,8 +167,10 @@
"cmake;3.18.1" "cmake;3.18.1"
], ],
"ndk": { "ndk": {
"lts": "21", "default": "21",
"latest": "22" "versions": [
"21", "22", "23"
]
} }
}, },
"powershellModules": [ "powershellModules": [

View File

@@ -115,8 +115,10 @@
"cmake;3.18.1" "cmake;3.18.1"
], ],
"ndk": { "ndk": {
"lts": "21", "default": "21",
"latest": "22" "versions": [
"21", "22", "23"
]
} }
}, },
"powershellModules": [ "powershellModules": [