[Windows] Add android NDK r23 (#4100)

This commit is contained in:
Nikita Bykov
2021-09-23 13:33:28 +03:00
committed by GitHub
parent 59f8fd1e62
commit fabf527ea8
6 changed files with 54 additions and 30 deletions

View File

@@ -96,34 +96,27 @@ Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager `
-AndroidPackages $androidToolset.additional_tools
# NDKs
$ndkLTSMajorVersion = $androidToolset.ndk.lts
$ndkLatestMajorVersion = $androidToolset.ndk.latest
$ndkMajorVersions = $androidToolset.ndk.versions
$ndkDefaultMajorVersion = $androidToolset.ndk.default
$ndkLatestMajorVersion = $ndkMajorVersions | Select-Object -Last 1
$ndkLTSPackageName = Get-AndroidPackagesByName -AndroidPackages $androidPackages `
-PrefixPackageName "ndk;$ndkLTSMajorVersion" `
| Sort-Object -Unique `
| Select-Object -Last 1
$ndkLatestPackageName = Get-AndroidPackagesByName -AndroidPackages $androidPackages `
-PrefixPackageName "ndk;$ndkLatestMajorVersion" `
| Sort-Object -Unique `
| Select-Object -Last 1
$androidNDKs = @($ndkLTSPackageName, $ndkLatestPackageName)
$androidNDKs = $ndkMajorVersions | Foreach-Object {
Get-AndroidPackagesByName -AndroidPackages $androidPackages -PrefixPackageName "ndk;$_" | Sort-Object -Unique | Select-Object -Last 1
}
Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager `
-AndroidSDKRootPath $sdkRoot `
-AndroidPackages $androidNDKs
$ndkLTSVersion = $ndkLTSPackageName.Split(';')[1]
$ndkLatestVersion = $ndkLatestPackageName.Split(';')[1]
$ndkDefaultVersion = ($androidNDKs | Where-Object { $_ -match "ndk;$ndkDefaultMajorVersion" }).Split(';')[1]
$ndkLatestVersion = ($androidNDKs | Where-Object { $_ -match "ndk;$ndkLatestMajorVersion" }).Split(';')[1]
# Android NDK root path.
$ndkRoot = "$sdkRoot\ndk-bundle"
# 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
New-Item -Path $ndkRoot -ItemType SymbolicLink -Value "$sdkRoot\ndk\$ndkLTSVersion"
New-Item -Path $ndkRoot -ItemType SymbolicLink -Value "$sdkRoot\ndk\$ndkDefaultVersion"
if (Test-Path $ndkRoot) {
setx ANDROID_HOME $sdkRoot /M
@@ -133,7 +126,7 @@ if (Test-Path $ndkRoot) {
setx ANDROID_NDK_ROOT $ndkRoot /M
(Get-Content -Encoding UTF8 "${ndkRoot}\ndk-build.cmd").replace('%~dp0\build\ndk-build.cmd','"%~dp0\build\ndk-build.cmd"')|Set-Content -Encoding UTF8 "${ndkRoot}\ndk-build.cmd"
} else {
Write-Host "LTS NDK $ndkLTSVersion is not installed at path $ndkRoot"
Write-Host "Default NDK $ndkDefaultVersion is not installed at path $ndkRoot"
exit 1
}