[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=()
ANDROID_PLATFORM=($(get_toolset_value '.android.platform_min_version'))
ANDROID_BUILD_TOOL=($(get_toolset_value '.android.build_tools_min_version'))
ANDROID_PLATFORM=$(get_toolset_value '.android.platform_min_version')
ANDROID_BUILD_TOOL=$(get_toolset_value '.android.build_tools_min_version')
ANDROID_EXTRA_LIST=($(get_toolset_value '.android."extra-list"[]'))
ANDROID_ADDON_LIST=($(get_toolset_value '.android."addon-list"[]'))
ANDROID_ADDITIONAL_TOOLS=($(get_toolset_value '.android."additional-tools"[]'))
ANDROID_NDK_MAJOR_LTS=($(get_toolset_value '.android.ndk.lts'))
ANDROID_NDK_MAJOR_LATEST=($(get_toolset_value '.android.ndk.latest'))
ANDROID_NDK_MAJOR_VERSIONS=($(get_toolset_value '.android.ndk."versions"[]'))
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
ANDROID_OSX_SDK_URL="https://dl.google.com/android/repository/commandlinetools-mac-7302050_latest.zip"
ANDROID_HOME=$HOME/Library/Android/sdk
@@ -59,13 +60,17 @@ echo "Installing latest tools & platform tools..."
echo y | $SDKMANAGER "tools" "platform-tools"
echo "Installing latest ndk..."
ndkLtsLatest=$(get_full_ndk_version $ANDROID_NDK_MAJOR_LTS)
ndkLatest=$(get_full_ndk_version $ANDROID_NDK_MAJOR_LATEST)
echo y | $SDKMANAGER "ndk;$ndkLtsLatest" "ndk;$ndkLatest"
for ndk_version in "${ANDROID_NDK_MAJOR_VERSIONS[@]}"
do
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).
# Link issue virtual-environments: https://github.com/actions/virtual-environments/issues/2481
# 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
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/Common.Helpers.psm1"
function Split-TableRowByColumns {
param(
@@ -184,8 +185,13 @@ function Get-AndroidNDKVersions {
$ndkFolderPath = Join-Path (Get-AndroidSDKRoot) "ndk"
$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 {

View File

@@ -8,10 +8,10 @@ Describe "Android" {
$androidSdkManagerPackages = Get-AndroidPackages
[int]$platformMinVersion = Get-ToolsetValue "android.platform_min_version"
[version]$buildToolsMinVersion = Get-ToolsetValue "android.build_tools_min_version"
[string]$ndkLatestVersion = Get-ToolsetValue "android.ndk.latest"
[string]$ndkLtsVersion = Get-ToolsetValue "android.ndk.lts"
$ndkLatestFullVersion = (Get-ChildItem "$env:ANDROID_HOME/ndk/$ndkLatestVersion.*" | Select-Object -Last 1).Name
$ndkLtsFullVersion = (Get-ChildItem "$env:ANDROID_HOME/ndk/$ndkLtsVersion.*" | Select-Object -Last 1).Name
[array]$ndkVersions = Get-ToolsetValue "android.ndk.versions"
[string]$ndkDefaultVersion = Get-ToolsetValue "android.ndk.default"
$ndkFullVersions = $ndkVersions | ForEach-Object { Get-ChildItem "$env:ANDROID_HOME/ndk/${_}.*" -Name | Select-Object -Last 1} | ForEach-Object { "ndk/${_}" }
$ndkDefaultFullVersion = Get-ChildItem "$env:ANDROID_HOME/ndk/$ndkDefaultVersion.*" -Name | Select-Object -Last 1
$platformVersionsList = ($androidSdkManagerPackages | Where-Object { "$_".StartsWith("platforms;") }) -replace 'platforms;android-', ''
$platformNumericList = $platformVersionsList | Where-Object { $_ -match "\d+" } | Where-Object { [int]$_ -ge $platformMinVersion } | Sort-Object -Unique
@@ -28,10 +28,9 @@ Describe "Android" {
"tools/proguard",
"ndk-bundle",
"cmake",
"ndk/$ndkLatestFullVersion",
"ndk/$ndkLtsFullVersion",
$platforms,
$buildTools,
$ndkFullVersions,
(Get-ToolsetValue "android.extra-list" | ForEach-Object { "extras/${_}" }),
(Get-ToolsetValue "android.addon-list" | ForEach-Object { "add-ons/${_}" }),
(Get-ToolsetValue "android.additional-tools")
@@ -76,11 +75,18 @@ Describe "Android" {
Context "Packages" {
$testCases = $androidPackages | ForEach-Object { @{ PackageName = $_ } }
$defaultNdkTestCase = @{ NdkDefaultFullVersion = $ndkDefaultFullVersion }
It "<PackageName>" -TestCases $testCases {
param ([string] $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) {

View File

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

View File

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

View File

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