upgraded the ndk version

This commit is contained in:
Debanjan Basu 2024-04-14 15:31:16 +10:00
parent 0756107d95
commit 70bc2235d7
10 changed files with 273 additions and 257 deletions

View File

@ -22,11 +22,11 @@ welcome!
Running the setup script requires: Running the setup script requires:
* Rust - Rust
#### Optionally, to build for Android: #### Optionally, to build for Android:
* Android SDK and NDK - Android SDK and NDK
You may decide to use Android Studio [here](https://developer.android.com/studio) You may decide to use Android Studio [here](https://developer.android.com/studio)
to maintain your Android dependencies. If so, use the dependency manager to maintain your Android dependencies. If so, use the dependency manager
@ -35,11 +35,11 @@ method is highly recommended as you may run into path problems with the 'flutter
command line without it. If you do so, you may skip to command line without it. If you do so, you may skip to
[Run Veilid setup script](#Run Veilid setup script). [Run Veilid setup script](#Run Veilid setup script).
* build-tools;33.0.1 - build-tools;34.0.0
* ndk;25.1.8937393 - ndk;26.3.11579264
* cmake;3.22.1 - cmake;3.22.1
* platform-tools - platform-tools
* platforms;android-33 - platforms;android-34
#### Setup Dependencies using the CLI #### Setup Dependencies using the CLI
@ -56,9 +56,9 @@ the command line to install the requisite package versions:
```shell ```shell
sdkmanager --install "platform-tools" sdkmanager --install "platform-tools"
sdkmanager --install "platforms;android-33" sdkmanager --install "platforms;android-34"
sdkmanager --install "build-tools;33.0.1" sdkmanager --install "build-tools;34.0.0"
sdkmanager --install "ndk;25.1.8937393" sdkmanager --install "ndk;26.3.11579264"
sdkmanager --install "cmake;3.22.1" sdkmanager --install "cmake;3.22.1"
``` ```
@ -97,23 +97,23 @@ Development of Veilid on MacOS is possible on both Intel and ARM hardware.
Development requires: Development requires:
* Xcode, preferably latest version - Xcode, preferably latest version
* Homebrew [here](https://brew.sh) - Homebrew [here](https://brew.sh)
* Rust - Rust
#### Optionally, to build for Android: #### Optionally, to build for Android:
* Android Studio - Android Studio
* Android SDK and NDK - Android SDK and NDK
You will need to use Android Studio [here](https://developer.android.com/studio) You will need to use Android Studio [here](https://developer.android.com/studio)
to maintain your Android dependencies. Use the SDK Manager in the IDE to install the following packages (use package details view to select version): to maintain your Android dependencies. Use the SDK Manager in the IDE to install the following packages (use package details view to select version):
* Android SDK Build Tools (33.0.1) - Android SDK Build Tools (34.0.0)
* NDK (Side-by-side) (25.1.8937393) - NDK (Side-by-side) (26.3.11579264)
* Cmake (3.22.1) - Cmake (3.22.1)
* Android SDK 33 - Android SDK 34
* Android SDK Command Line Tools (latest) (7.0/latest) - Android SDK Command Line Tools (latest) (7.0/latest)
#### Setup command line environment #### Setup command line environment

View File

@ -68,7 +68,7 @@ deps-android:
RUN mkdir /Android; mkdir /Android/Sdk RUN mkdir /Android; mkdir /Android/Sdk
RUN curl -o /Android/cmdline-tools.zip https://dl.google.com/android/repository/commandlinetools-linux-9123335_latest.zip RUN curl -o /Android/cmdline-tools.zip https://dl.google.com/android/repository/commandlinetools-linux-9123335_latest.zip
RUN cd /Android; unzip /Android/cmdline-tools.zip RUN cd /Android; unzip /Android/cmdline-tools.zip
RUN yes | /Android/cmdline-tools/bin/sdkmanager --sdk_root=/Android/Sdk build-tools\;33.0.1 ndk\;25.1.8937393 cmake\;3.22.1 platform-tools platforms\;android-33 cmdline-tools\;latest RUN yes | /Android/cmdline-tools/bin/sdkmanager --sdk_root=/Android/Sdk build-tools\;34.0.0 ndk\;26.3.11579264 cmake\;3.22.1 platform-tools platforms\;android-34 cmdline-tools\;latest
RUN rm -rf /Android/cmdline-tools RUN rm -rf /Android/cmdline-tools
RUN apt-get clean RUN apt-get clean
@ -155,7 +155,7 @@ build-linux-arm64:
build-android: build-android:
FROM +code-android FROM +code-android
WORKDIR /veilid/veilid-core WORKDIR /veilid/veilid-core
ENV PATH=$PATH:/Android/Sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/ ENV PATH=$PATH:/Android/Sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/linux-x86_64/bin/
RUN cargo build --target aarch64-linux-android --release RUN cargo build --target aarch64-linux-android --release
RUN cargo build --target armv7-linux-androideabi --release RUN cargo build --target armv7-linux-androideabi --release
RUN cargo build --target i686-linux-android --release RUN cargo build --target i686-linux-android --release

View File

@ -27,40 +27,45 @@ elif [ ! -z "$(command -v dnf)" ]; then
sudo dnf groupinstall -y 'Development Tools' sudo dnf groupinstall -y 'Development Tools'
fi fi
# Install Rust # Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y -c clippy --profile default curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y -c clippy --profile default
source "$HOME/.cargo/env" source "$HOME/.cargo/env"
#ask if they want to install optional android sdk (and install if yes) #ask if they want to install optional android sdk (and install if yes)
while true; do while true; do
read -p "Do you want to install Android SDK (optional) Y/N) " response read -p "Do you want to install Android SDK (optional) Y/N) " response
case $response in case $response in
[yY] ) echo Installing Android SDK...; [yY])
# Install Android SDK echo Installing Android SDK...
mkdir $HOME/Android; mkdir $HOME/Android/Sdk # Install Android SDK
curl -o $HOME/Android/cmdline-tools.zip https://dl.google.com/android/repository/commandlinetools-linux-9123335_latest.zip mkdir $HOME/Android
cd $HOME/Android; unzip $HOME/Android/cmdline-tools.zip mkdir $HOME/Android/Sdk
$HOME/Android/cmdline-tools/bin/sdkmanager --sdk_root=$HOME/Android/Sdk build-tools\;33.0.1 ndk\;25.1.8937393 cmake\;3.22.1 platform-tools platforms\;android-33 cmdline-tools\;latest emulator curl -o $HOME/Android/cmdline-tools.zip https://dl.google.com/android/repository/commandlinetools-linux-9123335_latest.zip
cd $HOME cd $HOME/Android
rm -rf $HOME/Android/cmdline-tools $HOME/Android/cmdline-tools.zip unzip $HOME/Android/cmdline-tools.zip
$HOME/Android/cmdline-tools/bin/sdkmanager --sdk_root=$HOME/Android/Sdk build-tools\;34.0.0 ndk\;26.3.11579264 cmake\;3.22.1 platform-tools platforms\;android-34 cmdline-tools\;latest emulator
cd $HOME
rm -rf $HOME/Android/cmdline-tools $HOME/Android/cmdline-tools.zip
# Add environment variables # Add environment variables
cat >> $HOME/.profile <<END cat >>$HOME/.profile <<END
source "\$HOME/.cargo/env" source "\$HOME/.cargo/env"
export PATH=\$PATH:\$HOME/Android/Sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin:\$HOME/Android/Sdk/platform-tools:\$HOME/Android/Sdk/cmdline-tools/latest/bin export PATH=\$PATH:\$HOME/Android/Sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/linux-x86_64/bin:\$HOME/Android/Sdk/platform-tools:\$HOME/Android/Sdk/cmdline-tools/latest/bin
export ANDROID_HOME=\$HOME/Android/Sdk export ANDROID_HOME=\$HOME/Android/Sdk
END END
break ;; break
[nN] ) echo Skipping Android SDK; ;;
cat >> $HOME/.profile <<END [nN])
echo Skipping Android SDK
cat >>$HOME/.profile <<END
source "\$HOME/.cargo/env" source "\$HOME/.cargo/env"
END END
break;; break
;;
* ) echo invalid response;; *) echo invalid response ;;
esac esac
done done
echo Complete! Exit and reopen the shell and continue with ./setup_linux.sh echo Complete! Exit and reopen the shell and continue with ./setup_linux.sh

View File

@ -6,7 +6,7 @@ if [ $(id -u) -eq 0 ]; then
exit exit
fi fi
SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
if [[ "$(uname)" != "Linux" ]]; then if [[ "$(uname)" != "Linux" ]]; then
echo Not running Linux echo Not running Linux
@ -22,7 +22,8 @@ while true; do
read -p "Did you install Android SDK? Y/N " response read -p "Did you install Android SDK? Y/N " response
case $response in case $response in
[yY] ) echo Checking android setup...; [yY])
echo Checking android setup...
# ensure ANDROID_HOME is defined and exists # ensure ANDROID_HOME is defined and exists
if [ -d "$ANDROID_HOME" ]; then if [ -d "$ANDROID_HOME" ]; then
@ -41,7 +42,7 @@ while true; do
fi fi
# ensure ndk is installed # ensure ndk is installed
ANDROID_NDK_HOME="$ANDROID_HOME/ndk/25.1.8937393" ANDROID_NDK_HOME="$ANDROID_HOME/ndk/26.3.11579264"
if [ -f "$ANDROID_NDK_HOME/ndk-build" ]; then if [ -f "$ANDROID_NDK_HOME/ndk-build" ]; then
echo '[X] Android NDK is installed at the location $ANDROID_NDK_HOME' echo '[X] Android NDK is installed at the location $ANDROID_NDK_HOME'
else else
@ -66,21 +67,24 @@ while true; do
fi fi
# ensure adb is installed # ensure adb is installed
if command -v adb &> /dev/null; then if command -v adb &>/dev/null; then
echo '[X] adb is available in the path' echo '[X] adb is available in the path'
else else
echo 'adb is not available in the path' echo 'adb is not available in the path'
exit 1 exit 1
fi fi
break;; break
[nN] ) echo Skipping Android SDK config check...; ;;
break;; [nN])
* ) echo invalid response;; echo Skipping Android SDK config check...
break
;;
*) echo invalid response ;;
esac esac
done done
# ensure rustup is installed # ensure rustup is installed
if command -v rustup &> /dev/null; then if command -v rustup &>/dev/null; then
echo '[X] rustup is available in the path' echo '[X] rustup is available in the path'
else else
echo 'rustup is not available in the path' echo 'rustup is not available in the path'
@ -88,7 +92,7 @@ else
fi fi
# ensure cargo is installed # ensure cargo is installed
if command -v cargo &> /dev/null; then if command -v cargo &>/dev/null; then
echo '[X] cargo is available in the path' echo '[X] cargo is available in the path'
else else
echo 'cargo is not available in the path' echo 'cargo is not available in the path'
@ -96,7 +100,7 @@ else
fi fi
# ensure pip3 is installed # ensure pip3 is installed
if command -v pip3 &> /dev/null; then if command -v pip3 &>/dev/null; then
echo '[X] pip3 is available in the path' echo '[X] pip3 is available in the path'
else else
echo 'pip3 is not available in the path' echo 'pip3 is not available in the path'
@ -117,14 +121,18 @@ while true; do
read -p "Will you be modifying the capnproto schema? Y/N (say N if unsure)" response read -p "Will you be modifying the capnproto schema? Y/N (say N if unsure)" response
case $response in case $response in
[yY] ) echo Installing capnproto...; [yY])
echo Installing capnproto...
# Install capnproto using the same mechanism as our earthly build # Install capnproto using the same mechanism as our earthly build
$SCRIPTDIR/../scripts/earthly/install_capnproto.sh $SCRIPTDIR/../scripts/earthly/install_capnproto.sh
break;; break
[nN] ) echo Skipping capnproto installation...; ;;
break;; [nN])
* ) echo invalid response;; echo Skipping capnproto installation...
break
;;
*) echo invalid response ;;
esac esac
done done

View File

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
set -eo pipefail set -eo pipefail
SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
if [ ! "$(uname)" == "Darwin" ]; then if [ ! "$(uname)" == "Darwin" ]; then
echo Not running on MacOS echo Not running on MacOS
@ -12,7 +12,8 @@ while true; do
read -p "Did you install Android SDK? Y/N " response read -p "Did you install Android SDK? Y/N " response
case $response in case $response in
[yY] ) echo Checking android setup...; [yY])
echo Checking android setup...
# ensure ANDROID_HOME is defined and exists # ensure ANDROID_HOME is defined and exists
if [ -d "$ANDROID_HOME" ]; then if [ -d "$ANDROID_HOME" ]; then
echo '[X] $ANDROID_HOME is defined and exists' echo '[X] $ANDROID_HOME is defined and exists'
@ -30,10 +31,10 @@ while true; do
fi fi
# ensure Android SDK packages are installed # ensure Android SDK packages are installed
$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager build-tools\;33.0.1 ndk\;25.1.8937393 cmake\;3.22.1 platform-tools platforms\;android-33 $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager build-tools\;34.0.0 ndk\;26.3.11579264 cmake\;3.22.1 platform-tools platforms\;android-34
# ensure ANDROID_NDK_HOME is defined and exists # ensure ANDROID_NDK_HOME is defined and exists
ANDROID_NDK_HOME="$ANDROID_HOME/ndk/25.1.8937393" ANDROID_NDK_HOME="$ANDROID_HOME/ndk/26.3.11579264"
if [ -d "$ANDROID_NDK_HOME" ]; then if [ -d "$ANDROID_NDK_HOME" ]; then
echo '[X] Android NDK is defined and exists' echo '[X] Android NDK is defined and exists'
else else
@ -66,22 +67,25 @@ while true; do
fi fi
# ensure adb is installed # ensure adb is installed
if command -v adb &> /dev/null; then if command -v adb &>/dev/null; then
echo '[X] adb is available in the path' echo '[X] adb is available in the path'
else else
echo 'adb is not available in the path' echo 'adb is not available in the path'
exit 1 exit 1
fi fi
break;; break
[nN] ) echo Skipping Android SDK config check...; ;;
break;; [nN])
echo Skipping Android SDK config check...
break
;;
* ) echo invalid response;; *) echo invalid response ;;
esac esac
done done
# ensure brew is installed # ensure brew is installed
if command -v brew &> /dev/null; then if command -v brew &>/dev/null; then
echo '[X] brew is available in the path' echo '[X] brew is available in the path'
else else
echo 'brew is not available in the path' echo 'brew is not available in the path'
@ -89,7 +93,7 @@ else
fi fi
# ensure xcode is installed # ensure xcode is installed
if command -v xcode-select &> /dev/null; then if command -v xcode-select &>/dev/null; then
echo '[X] XCode is available in the path' echo '[X] XCode is available in the path'
else else
echo 'XCode is not available in the path' echo 'XCode is not available in the path'
@ -97,7 +101,7 @@ else
fi fi
# ensure rustup is installed # ensure rustup is installed
if command -v rustup &> /dev/null; then if command -v rustup &>/dev/null; then
echo '[X] rustup is available in the path' echo '[X] rustup is available in the path'
else else
echo 'rustup is not available in the path' echo 'rustup is not available in the path'
@ -105,7 +109,7 @@ else
fi fi
# ensure cargo is installed # ensure cargo is installed
if command -v cargo &> /dev/null; then if command -v cargo &>/dev/null; then
echo '[X] cargo is available in the path' echo '[X] cargo is available in the path'
else else
echo 'cargo is not available in the path' echo 'cargo is not available in the path'
@ -113,7 +117,7 @@ else
fi fi
# ensure pip3 is installed # ensure pip3 is installed
if command -v pip3 &> /dev/null; then if command -v pip3 &>/dev/null; then
echo '[X] pip3 is available in the path' echo '[X] pip3 is available in the path'
else else
echo 'pip3 is not available in the path' echo 'pip3 is not available in the path'
@ -130,9 +134,9 @@ else
fi fi
# ensure we have command line tools # ensure we have command line tools
xcode-select --install 2> /dev/null || true xcode-select --install 2>/dev/null || true
until [ -d /Library/Developer/CommandLineTools/usr/bin ]; do until [ -d /Library/Developer/CommandLineTools/usr/bin ]; do
sleep 5; sleep 5
done done
# install packages # install packages
@ -155,7 +159,7 @@ cargo install wasm-bindgen-cli wasm-pack cargo-edit
# install pip packages # install pip packages
pip3 install --upgrade bumpversion pip3 install --upgrade bumpversion
if command -v pod &> /dev/null; then if command -v pod &>/dev/null; then
echo '[X] CocoaPods is available in the path' echo '[X] CocoaPods is available in the path'
else else
echo 'CocoaPods is not available in the path, installing it now' echo 'CocoaPods is not available in the path, installing it now'

View File

@ -1,8 +1,8 @@
[target.aarch64-linux-android] [target.aarch64-linux-android]
linker = "/Android/Sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android33-clang" linker = "/Android/Sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android34-clang"
[target.armv7-linux-androideabi] [target.armv7-linux-androideabi]
linker = "/Android/Sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi33-clang" linker = "/Android/Sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi33-clang"
[target.x86_64-linux-android] [target.x86_64-linux-android]
linker = "/Android/Sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linux-android33-clang" linker = "/Android/Sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linux-android34-clang"
[target.i686-linux-android] [target.i686-linux-android]
linker = "/Android/Sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android33-clang" linker = "/Android/Sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android34-clang"

View File

@ -3,13 +3,13 @@ plugins {
} }
android { android {
compileSdkVersion 33 compileSdkVersion 34
buildToolsVersion "33.0.1" buildToolsVersion "34.0.0"
defaultConfig { defaultConfig {
applicationId "com.veilid.veilid_core_android_tests" applicationId "com.veilid.veilid_core_android_tests"
minSdkVersion 24 minSdkVersion 24
targetSdkVersion 33 targetSdkVersion 34
versionCode 1 versionCode 1
versionName "1.0" versionName "1.0"
@ -38,7 +38,7 @@ android {
sourceCompatibility JavaVersion.VERSION_1_8 sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8
} }
ndkVersion '25.1.8937393' ndkVersion '26.3.11579264'
// Required to copy libc++_shared.so // Required to copy libc++_shared.so
externalNativeBuild { externalNativeBuild {
@ -83,4 +83,3 @@ afterEvaluate {
tasks["generate${productFlavor}${buildType}Assets"].dependsOn(tasks["cargoBuild"]) tasks["generate${productFlavor}${buildType}Assets"].dependsOn(tasks["cargoBuild"])
} }
} }

View File

@ -63,7 +63,7 @@ android {
} }
} }
ndkVersion '25.1.8937393' ndkVersion '26.3.11579264'
// Required to copy libc++_shared.so // Required to copy libc++_shared.so
externalNativeBuild { externalNativeBuild {

View File

@ -27,7 +27,7 @@ apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android { android {
compileSdkVersion flutter.compileSdkVersion compileSdkVersion flutter.compileSdkVersion
ndkVersion '25.1.8937393' ndkVersion '26.3.11579264'
compileOptions { compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8 sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8

View File

@ -4,7 +4,7 @@ plugins {
android { android {
compileSdkVersion 33 compileSdkVersion 33
buildToolsVersion "33.0.1" buildToolsVersion "34.0.0"
defaultConfig { defaultConfig {
applicationId "com.veilid.veilid_tools_android_tests" applicationId "com.veilid.veilid_tools_android_tests"
@ -38,7 +38,7 @@ android {
sourceCompatibility JavaVersion.VERSION_1_8 sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8
} }
ndkVersion '25.1.8937393' ndkVersion '26.3.11579264'
// Required to copy libc++_shared.so // Required to copy libc++_shared.so
externalNativeBuild { externalNativeBuild {