[Ubuntu] Add android NDK r23 (#4073)

This commit is contained in:
Nikita Bykov
2021-09-20 13:35:44 +03:00
committed by GitHub
parent bd5288c7c2
commit ef2db470d9
5 changed files with 40 additions and 23 deletions

View File

@@ -156,7 +156,13 @@ function Get-AndroidGoogleAPIsVersions {
function Get-AndroidNDKVersions { 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
return ($versions -Join "<br>") $ndkDefaultVersion = Get-ToolsetValue "android.ndk.default"
$ndkDefaultFullVersion = Get-ChildItem "$env:ANDROID_HOME/ndk/$ndkDefaultVersion.*" -Name | Select-Object -Last 1
return ($versions | ForEach-Object {
$defaultPostfix = ( $_ -eq $ndkDefaultFullVersion ) ? " (default)" : ""
$_ + $defaultPostfix
} | Join-String -Separator "<br>")
} }
function Build-AndroidEnvironmentTable { function Build-AndroidEnvironmentTable {

View File

@@ -72,22 +72,25 @@ minimumPlatformVersion=$(get_toolset_value '.android.platform_min_version')
extras=$(get_toolset_value '.android.extra_list[]|"extras;" + .') extras=$(get_toolset_value '.android.extra_list[]|"extras;" + .')
addons=$(get_toolset_value '.android.addon_list[]|"add-ons;" + .') addons=$(get_toolset_value '.android.addon_list[]|"add-ons;" + .')
additional=$(get_toolset_value '.android.additional_tools[]') additional=$(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[]'))
ndkLTSFullVersion=$(get_full_ndk_version $ANDROID_NDK_MAJOR_LTS) ANDROID_NDK_MAJOR_DEFAULT=$(get_toolset_value '.android.ndk.default')
ndkDefaultFullVersion=$(get_full_ndk_version $ANDROID_NDK_MAJOR_DEFAULT)
components=("${extras[@]}" "${addons[@]}" "${additional[@]}" "ndk;$ndkLTSFullVersion") components=("${extras[@]}" "${addons[@]}" "${additional[@]}")
if isUbuntu20; then for ndk_version in "${ANDROID_NDK_MAJOR_VERSIONS[@]}"
ANDROID_NDK_MAJOR_LATEST=($(get_toolset_value '.android.ndk.latest')) do
ndkLatestFullVersion=$(get_full_ndk_version $ANDROID_NDK_MAJOR_LATEST) ndk_full_version=$(get_full_ndk_version $ndk_version)
components+=("ndk;$ndkLatestFullVersion") components+=("ndk;$ndk_full_version")
fi 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_SDK_ROOT/ndk/$ndkLTSFullVersion $ANDROID_NDK_ROOT ln -s $ANDROID_SDK_ROOT/ndk/$ndkDefaultFullVersion $ANDROID_NDK_ROOT
if isUbuntu20; then if isUbuntu20; then
ANDROID_NDK_MAJOR_LATEST=(${ANDROID_NDK_MAJOR_VERSIONS[-1]})
ndkLatestFullVersion=$(get_full_ndk_version $ANDROID_NDK_MAJOR_LATEST)
echo "ANDROID_NDK_LATEST_HOME=$ANDROID_SDK_ROOT/ndk/$ndkLatestFullVersion" | tee -a /etc/environment echo "ANDROID_NDK_LATEST_HOME=$ANDROID_SDK_ROOT/ndk/$ndkLatestFullVersion" | tee -a /etc/environment
fi fi

View File

@@ -2,8 +2,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]$ndkLTSVersion = Get-ToolsetValue "android.ndk.lts" [string]$ndkDefaultVersion = Get-ToolsetValue "android.ndk.default"
$ndkLTSFullVersion = (Get-ChildItem "/usr/local/lib/android/sdk/ndk/$ndkLTSVersion.*" | Select-Object -Last 1).Name [array]$ndkVersions = Get-ToolsetValue "android.ndk.versions"
$ndkDefaultFullVersion = Get-ChildItem "$env:ANDROID_HOME/ndk/$ndkDefaultVersion.*" -Name | Select-Object -Last 1
$ndkFullVersions = $ndkVersions | ForEach-Object { (Get-ChildItem "/usr/local/lib/android/sdk/ndk/${_}.*" | Select-Object -Last 1).Name } | ForEach-Object { "ndk/${_}" }
$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
@@ -17,18 +19,12 @@ Describe "Android" {
$androidPackages = @( $androidPackages = @(
$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" | ForEach-Object { "${_}" }), (Get-ToolsetValue "android.additional_tools" | ForEach-Object { "${_}" })
"ndk/$ndkLTSFullVersion"
) )
[string]$ndkLatestVersion = Get-ToolsetValue "android.ndk.latest"
if ($ndkLatestVersion) {
$ndkLatestFullVersion = (Get-ChildItem "/usr/local/lib/android/sdk/ndk/$ndkLatestVersion.*" | Select-Object -Last 1).Name
$androidPackages += @("ndk/$ndkLatestFullVersion")
}
$androidPackages = $androidPackages | ForEach-Object { $_ } $androidPackages = $androidPackages | ForEach-Object { $_ }
BeforeAll { BeforeAll {
@@ -67,10 +63,17 @@ 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
}
} }
} }

View File

@@ -95,7 +95,10 @@
"cmake;3.18.1" "cmake;3.18.1"
], ],
"ndk": { "ndk": {
"lts": "21" "default": "21",
"versions": [
"21", "23"
]
} }
}, },
"powershellModules": [ "powershellModules": [

View File

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