[Ubuntu] Add Android NDK 22 (#2556)

* add android ndk 22
This commit is contained in:
Dibir Magomedsaygitov
2021-02-04 13:34:30 +03:00
committed by GitHub
parent aa0de6b9cc
commit 705a38a481
5 changed files with 53 additions and 17 deletions

View File

@@ -24,10 +24,19 @@ function filter_components_by_version {
done done
} }
function get_full_ndk_version {
majorVersion=$1
ndkFullVersion=$($SDKMANAGER --list | grep "ndk;${majorVersion}.*" | awk '{gsub("ndk;", ""); print $1}' | sort -V | tail -n1)
echo "$ndkFullVersion"
}
# Set env variable for SDK Root (https://developer.android.com/studio/command-line/variables) # Set env variable for SDK Root (https://developer.android.com/studio/command-line/variables)
ANDROID_ROOT=/usr/local/lib/android ANDROID_ROOT=/usr/local/lib/android
ANDROID_SDK_ROOT=${ANDROID_ROOT}/sdk ANDROID_SDK_ROOT=${ANDROID_ROOT}/sdk
ANDROID_NDK_ROOT=${ANDROID_SDK_ROOT}/ndk-bundle ANDROID_NDK_ROOT=${ANDROID_SDK_ROOT}/ndk-bundle
SDKMANAGER=${ANDROID_SDK_ROOT}/tools/bin/sdkmanager
echo "ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT}" | tee -a /etc/environment echo "ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT}" | tee -a /etc/environment
# ANDROID_HOME is deprecated, but older versions of Gradle rely on it # ANDROID_HOME is deprecated, but older versions of Gradle rely on it
@@ -48,11 +57,11 @@ rm -f android-sdk.zip
if isUbuntu20 ; then if isUbuntu20 ; then
# Sdk manager doesn't work with Java > 8, set version 8 explicitly # Sdk manager doesn't work with Java > 8, set version 8 explicitly
sed -i "2i export JAVA_HOME=${JAVA_HOME_8_X64}" /usr/local/lib/android/sdk/tools/bin/sdkmanager sed -i "2i export JAVA_HOME=${JAVA_HOME_8_X64}" "$SDKMANAGER"
fi fi
# Check sdk manager installation # Check sdk manager installation
/usr/local/lib/android/sdk/tools/bin/sdkmanager --list 1>/dev/null ${SDKMANAGER} --list 1>/dev/null
if [ $? -eq 0 ] if [ $? -eq 0 ]
then then
echo "Android SDK manager was installed" echo "Android SDK manager was installed"
@@ -66,23 +75,33 @@ 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'))
ndkLTSFullVersion=$(get_full_ndk_version $ANDROID_NDK_MAJOR_LTS)
# Install the following SDKs and build tools, passing in "y" to accept licenses. components=("${extras[@]}" "${addons[@]}" "${additional[@]}" "ndk;$ndkLTSFullVersion")
components=( "${extras[@]}" "${addons[@]}" "${additional[@]}" ) if isUbuntu20 ; then
ANDROID_NDK_MAJOR_LATEST=($(get_toolset_value '.android.ndk.latest'))
ndkLatestFullVersion=$(get_full_ndk_version $ANDROID_NDK_MAJOR_LATEST)
components+=("ndk;$ndkLatestFullVersion")
fi
# 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/21.3.6528147 $ANDROID_NDK_ROOT ln -s $ANDROID_SDK_ROOT/ndk/$ndkLTSFullVersion $ANDROID_NDK_ROOT
availablePlatforms=($(${ANDROID_SDK_ROOT}/tools/bin/sdkmanager --list | sed -n '/Available Packages:/,/^$/p' | grep "platforms;android-" | cut -d"|" -f 1)) if isUbuntu20; then
allBuildTools=($(${ANDROID_SDK_ROOT}/tools/bin/sdkmanager --list | grep "build-tools;" | cut -d"|" -f 1 | sort -u)) echo "ANDROID_NDK_LATEST_HOME=$ANDROID_SDK_ROOT/ndk/$ndkLatestFullVersion" | tee -a /etc/environment
fi
availablePlatforms=($($SDKMANAGER --list | sed -n '/Available Packages:/,/^$/p' | grep "platforms;android-" | cut -d"|" -f 1))
allBuildTools=($($SDKMANAGER --list | grep "build-tools;" | cut -d"|" -f 1 | sort -u))
availableBuildTools=$(echo ${allBuildTools[@]//*rc[0-9]/}) availableBuildTools=$(echo ${allBuildTools[@]//*rc[0-9]/})
filter_components_by_version $minimumPlatformVersion "${availablePlatforms[@]}" filter_components_by_version $minimumPlatformVersion "${availablePlatforms[@]}"
filter_components_by_version $minimumBuildToolVersion "${availableBuildTools[@]}" filter_components_by_version $minimumBuildToolVersion "${availableBuildTools[@]}"
echo "y" | ${ANDROID_SDK_ROOT}/tools/bin/sdkmanager ${components[@]} echo "y" | $SDKMANAGER ${components[@]}
# Add required permissions # Add required permissions
chmod -R a+rwx ${ANDROID_SDK_ROOT} chmod -R a+rwx ${ANDROID_SDK_ROOT}

View File

@@ -2,6 +2,8 @@ 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"
$ndkLTSFullVersion = (Get-ChildItem "/usr/local/lib/android/sdk/ndk/$ndkLTSVersion.*" | Select-Object -Last 1).Name
$platforms = (($androidSdkManagerPackages | Where-Object { "$_".StartsWith("platforms;") }) -replace 'platforms;', '' | $platforms = (($androidSdkManagerPackages | Where-Object { "$_".StartsWith("platforms;") }) -replace 'platforms;', '' |
Where-Object { [int]$_.Split("-")[1] -ge $platformMinVersion } | Sort-Object { [int]$_.Split("-")[1] } -Unique | Where-Object { [int]$_.Split("-")[1] -ge $platformMinVersion } | Sort-Object { [int]$_.Split("-")[1] } -Unique |
@@ -16,8 +18,17 @@ Describe "Android" {
$buildTools, $buildTools,
(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 { "${_}" }),
) | 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 { $_ }
BeforeAll { BeforeAll {
$ANDROID_SDK_DIR = "/usr/local/lib/android/sdk" $ANDROID_SDK_DIR = "/usr/local/lib/android/sdk"
@@ -38,7 +49,6 @@ Describe "Android" {
} }
} }
Context "Packages" { Context "Packages" {
$testCases = $androidPackages | ForEach-Object { @{ PackageName = $_ } } $testCases = $androidPackages | ForEach-Object { @{ PackageName = $_ } }

View File

@@ -106,10 +106,12 @@
"cmake;3.6.4111459", "cmake;3.6.4111459",
"cmake;3.10.2.4988404", "cmake;3.10.2.4988404",
"patcher;v4", "patcher;v4",
"ndk;21.3.6528147",
"platform-tools", "platform-tools",
"cmdline-tools;latest" "cmdline-tools;latest"
] ],
"ndk": {
"lts": "21"
}
}, },
"powershellModules": [ "powershellModules": [
{"name": "MarkdownPS"}, {"name": "MarkdownPS"},

View File

@@ -102,10 +102,12 @@
"cmake;3.6.4111459", "cmake;3.6.4111459",
"cmake;3.10.2.4988404", "cmake;3.10.2.4988404",
"patcher;v4", "patcher;v4",
"ndk;21.3.6528147",
"platform-tools", "platform-tools",
"cmdline-tools;latest" "cmdline-tools;latest"
] ],
"ndk": {
"lts": "21"
}
}, },
"powershellModules": [ "powershellModules": [
{"name": "MarkdownPS"}, {"name": "MarkdownPS"},

View File

@@ -85,10 +85,13 @@
"additional_tools": [ "additional_tools": [
"cmake;3.10.2.4988404", "cmake;3.10.2.4988404",
"patcher;v4", "patcher;v4",
"ndk;21.3.6528147",
"platform-tools", "platform-tools",
"cmdline-tools;latest" "cmdline-tools;latest"
] ],
"ndk": {
"lts": "21",
"latest": "22"
}
}, },
"powershellModules": [ "powershellModules": [
{"name": "MarkdownPS"}, {"name": "MarkdownPS"},