From 0756107d95c1e2a94ba650beec64568e3823b1d8 Mon Sep 17 00:00:00 2001 From: Debanjan Basu Date: Sat, 13 Apr 2024 19:34:47 +1000 Subject: [PATCH 1/4] removed hotfix, as this has been integrated into cargo-ndk already --- veilid-core/build.rs | 27 +-------------------------- 1 file changed, 1 insertion(+), 26 deletions(-) diff --git a/veilid-core/build.rs b/veilid-core/build.rs index 47f006b4..36a0609b 100644 --- a/veilid-core/build.rs +++ b/veilid-core/build.rs @@ -1,10 +1,9 @@ -use glob::glob; use sha2::{Digest, Sha256}; use std::fs::OpenOptions; use std::io::BufRead; use std::io::Write; use std::{ - env, io, + io, path::Path, process::{Command, Stdio}, }; @@ -126,28 +125,6 @@ fn do_capnp_build() { append_hash("proto/veilid.capnp", "proto/veilid_capnp.rs"); } -// Fix for missing __extenddftf2 on Android x86_64 Emulator -fn fix_android_emulator() { - let target_os = env::var("CARGO_CFG_TARGET_OS").unwrap(); - let target_arch = env::var("CARGO_CFG_TARGET_ARCH").unwrap(); - if target_arch == "x86_64" && target_os == "android" { - let missing_library = "clang_rt.builtins-x86_64-android"; - let android_home = env::var("ANDROID_HOME") - .or(env::var("ANDROID_SDK_ROOT")) - .expect("ANDROID_HOME or ANDROID_SDK_ROOT not set"); - let lib_path = glob(&format!( - "{android_home}/ndk/25.1.8937393/**/lib{missing_library}.a" - )) - .expect("failed to glob") - .next() - .expect("Need libclang_rt.builtins-x86_64-android.a") - .unwrap(); - let lib_dir = lib_path.parent().unwrap(); - println!("cargo:rustc-link-search={}", lib_dir.display()); - println!("cargo:rustc-link-lib=static={missing_library}"); - } -} - fn main() { if std::env::var("DOCS_RS").is_ok() || std::env::var("CARGO_CFG_DOC").is_ok() @@ -160,6 +137,4 @@ fn main() { println!("cargo:warning=rebuilding proto/veilid_capnp.rs because it has changed from the last generation of proto/veilid.capnp"); do_capnp_build(); } - - fix_android_emulator(); } From 70bc2235d72c25cedaa1b8b9aad8b848ba273066 Mon Sep 17 00:00:00 2001 From: Debanjan Basu Date: Sun, 14 Apr 2024 15:31:16 +1000 Subject: [PATCH 2/4] upgraded the ndk version --- DEVELOPMENT.md | 42 ++-- Earthfile | 6 +- dev-setup/install_linux_prerequisites.sh | 85 ++++---- dev-setup/setup_linux.sh | 172 ++++++++-------- dev-setup/setup_macos.sh | 192 +++++++++--------- scripts/earthly/cargo-android/config.toml | 8 +- .../app/build.gradle | 11 +- veilid-flutter/android/build.gradle | 4 +- .../example/android/app/build.gradle | 4 +- .../app/build.gradle | 6 +- 10 files changed, 273 insertions(+), 257 deletions(-) diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index 422755aa..964d97b1 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -22,11 +22,11 @@ welcome! Running the setup script requires: -* Rust +- Rust #### 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) 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 [Run Veilid setup script](#Run Veilid setup script). -* build-tools;33.0.1 -* ndk;25.1.8937393 -* cmake;3.22.1 -* platform-tools -* platforms;android-33 +- build-tools;34.0.0 +- ndk;26.3.11579264 +- cmake;3.22.1 +- platform-tools +- platforms;android-34 #### Setup Dependencies using the CLI @@ -56,9 +56,9 @@ the command line to install the requisite package versions: ```shell sdkmanager --install "platform-tools" -sdkmanager --install "platforms;android-33" -sdkmanager --install "build-tools;33.0.1" -sdkmanager --install "ndk;25.1.8937393" +sdkmanager --install "platforms;android-34" +sdkmanager --install "build-tools;34.0.0" +sdkmanager --install "ndk;26.3.11579264" sdkmanager --install "cmake;3.22.1" ``` @@ -66,7 +66,7 @@ Export environment variables and add the Android SDK platform-tools directory to your path. See [instructions here](https://developer.android.com/tools/variables). ```shell -cat << EOF >> ~/.profile +cat << EOF >> ~/.profile export ANDROID_HOME= export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools EOF @@ -97,23 +97,23 @@ Development of Veilid on MacOS is possible on both Intel and ARM hardware. Development requires: -* Xcode, preferably latest version -* Homebrew [here](https://brew.sh) -* Rust +- Xcode, preferably latest version +- Homebrew [here](https://brew.sh) +- Rust #### Optionally, to build for Android: -* Android Studio -* Android SDK and NDK +- Android Studio +- Android SDK and NDK 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): -* Android SDK Build Tools (33.0.1) -* NDK (Side-by-side) (25.1.8937393) -* Cmake (3.22.1) -* Android SDK 33 -* Android SDK Command Line Tools (latest) (7.0/latest) +- Android SDK Build Tools (34.0.0) +- NDK (Side-by-side) (26.3.11579264) +- Cmake (3.22.1) +- Android SDK 34 +- Android SDK Command Line Tools (latest) (7.0/latest) #### Setup command line environment diff --git a/Earthfile b/Earthfile index 14d3506e..5a68825e 100644 --- a/Earthfile +++ b/Earthfile @@ -68,7 +68,7 @@ deps-android: 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 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 apt-get clean @@ -155,7 +155,7 @@ build-linux-arm64: build-android: FROM +code-android 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 armv7-linux-androideabi --release RUN cargo build --target i686-linux-android --release @@ -261,4 +261,4 @@ package-linux-arm64: package-linux: BUILD +package-linux-amd64 - BUILD +package-linux-arm64 + BUILD +package-linux-arm64 \ No newline at end of file diff --git a/dev-setup/install_linux_prerequisites.sh b/dev-setup/install_linux_prerequisites.sh index 6941ddf0..9486747f 100755 --- a/dev-setup/install_linux_prerequisites.sh +++ b/dev-setup/install_linux_prerequisites.sh @@ -1,66 +1,71 @@ #!/bin/bash set -eo pipefail -if [ $(id -u) -eq 0 ]; then - echo "Don't run this as root" - exit +if [ $(id -u) -eq 0 ]; then + echo "Don't run this as root" + exit fi if [ ! -z "$(command -v apt)" ]; then - # Install APT dependencies - sudo apt update -y - sudo apt install -y openjdk-17-jdk-headless iproute2 curl build-essential cmake libssl-dev openssl file git pkg-config libdbus-1-dev libdbus-glib-1-dev libgirepository1.0-dev libcairo2-dev checkinstall unzip llvm wabt python3-pip + # Install APT dependencies + sudo apt update -y + sudo apt install -y openjdk-17-jdk-headless iproute2 curl build-essential cmake libssl-dev openssl file git pkg-config libdbus-1-dev libdbus-glib-1-dev libgirepository1.0-dev libcairo2-dev checkinstall unzip llvm wabt python3-pip elif [ ! -z "$(command -v dnf)" ]; then - # DNF (formerly yum) - sudo dnf update -y - # libgirepository -> gobject-introspection - # iproute2 -> iproute - # openjdk-17-jdk-headless -> java-11-openjdk-headless - # checkinstall does not appear to be a thing in Fedora 38 repos - # - # Seems like iproute and file might come preinstalled but I put - # them in anyway - # - # Also Fedora doesn't come with pip - sudo dnf install -y java-17-openjdk-headless iproute curl cmake openssl-devel openssl git file pkg-config dbus-devel dbus-glib gobject-introspection-devel cairo-devel unzip llvm wabt python3-pip gcc-c++ - # build-essentials - sudo dnf groupinstall -y 'Development Tools' + # DNF (formerly yum) + sudo dnf update -y + # libgirepository -> gobject-introspection + # iproute2 -> iproute + # openjdk-17-jdk-headless -> java-11-openjdk-headless + # checkinstall does not appear to be a thing in Fedora 38 repos + # + # Seems like iproute and file might come preinstalled but I put + # them in anyway + # + # Also Fedora doesn't come with pip + sudo dnf install -y java-17-openjdk-headless iproute curl cmake openssl-devel openssl git file pkg-config dbus-devel dbus-glib gobject-introspection-devel cairo-devel unzip llvm wabt python3-pip gcc-c++ + # build-essentials + sudo dnf groupinstall -y 'Development Tools' fi - # Install Rust curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y -c clippy --profile default source "$HOME/.cargo/env" #ask if they want to install optional android sdk (and install if yes) 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 -[yY] ) echo Installing Android SDK...; -# Install Android SDK -mkdir $HOME/Android; mkdir $HOME/Android/Sdk -curl -o $HOME/Android/cmdline-tools.zip https://dl.google.com/android/repository/commandlinetools-linux-9123335_latest.zip -cd $HOME/Android; unzip $HOME/Android/cmdline-tools.zip -$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 -cd $HOME -rm -rf $HOME/Android/cmdline-tools $HOME/Android/cmdline-tools.zip + case $response in + [yY]) + echo Installing Android SDK... + # Install Android SDK + mkdir $HOME/Android + mkdir $HOME/Android/Sdk + curl -o $HOME/Android/cmdline-tools.zip https://dl.google.com/android/repository/commandlinetools-linux-9123335_latest.zip + cd $HOME/Android + 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 -cat >> $HOME/.profile <>$HOME/.profile <> $HOME/.profile <>$HOME/.profile </dev/null 2>&1 && pwd )" +SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" -if [[ "$(uname)" != "Linux" ]]; then - echo Not running Linux - exit 1 +if [[ "$(uname)" != "Linux" ]]; then + echo Not running Linux + exit 1 fi if ! lsb_release -d | grep -qEi 'debian|buntu|mint|pop\!\_os' && [ -z "$(command -v dnf)" ]; then - echo Not a supported Linux - exit 1 + echo Not a supported Linux + exit 1 fi 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 - [yY] ) echo Checking android setup...; + case $response in + [yY]) + echo Checking android setup... - # ensure ANDROID_HOME is defined and exists - if [ -d "$ANDROID_HOME" ]; then - echo '[X] $ANDROID_HOME is defined and exists' - else - echo '$ANDROID_HOME is not defined or does not exist' - exit 1 - fi + # ensure ANDROID_HOME is defined and exists + if [ -d "$ANDROID_HOME" ]; then + echo '[X] $ANDROID_HOME is defined and exists' + else + echo '$ANDROID_HOME is not defined or does not exist' + exit 1 + fi - # ensure Android Command Line Tools exist - if [ -d "$ANDROID_HOME/cmdline-tools/latest/bin" ]; then - echo '[X] Android command line tools are installed' - else - echo 'Android command line tools are not installed' - exit 1 - fi + # ensure Android Command Line Tools exist + if [ -d "$ANDROID_HOME/cmdline-tools/latest/bin" ]; then + echo '[X] Android command line tools are installed' + else + echo 'Android command line tools are not installed' + exit 1 + fi - # ensure ndk is installed - ANDROID_NDK_HOME="$ANDROID_HOME/ndk/25.1.8937393" - if [ -f "$ANDROID_NDK_HOME/ndk-build" ]; then - echo '[X] Android NDK is installed at the location $ANDROID_NDK_HOME' - else - echo 'Android NDK is not installed at the location $ANDROID_NDK_HOME' - exit 1 - fi + # ensure ndk is installed + ANDROID_NDK_HOME="$ANDROID_HOME/ndk/26.3.11579264" + if [ -f "$ANDROID_NDK_HOME/ndk-build" ]; then + echo '[X] Android NDK is installed at the location $ANDROID_NDK_HOME' + else + echo 'Android NDK is not installed at the location $ANDROID_NDK_HOME' + exit 1 + fi - # ensure cmake is installed - if [ -d "$ANDROID_HOME/cmake" ]; then - echo '[X] Android SDK CMake is installed' - else - echo 'Android SDK CMake is not installed' - exit 1 - fi + # ensure cmake is installed + if [ -d "$ANDROID_HOME/cmake" ]; then + echo '[X] Android SDK CMake is installed' + else + echo 'Android SDK CMake is not installed' + exit 1 + fi - # ensure emulator is installed - if [ -d "$ANDROID_HOME/emulator" ]; then - echo '[X] Android SDK emulator is installed' - else - echo 'Android SDK emulator is not installed' - exit 1 - fi + # ensure emulator is installed + if [ -d "$ANDROID_HOME/emulator" ]; then + echo '[X] Android SDK emulator is installed' + else + echo 'Android SDK emulator is not installed' + exit 1 + fi - # ensure adb is installed - if command -v adb &> /dev/null; then - echo '[X] adb is available in the path' - else - echo 'adb is not available in the path' - exit 1 - fi - break;; - [nN] ) echo Skipping Android SDK config check...; - break;; - * ) echo invalid response;; - esac + # ensure adb is installed + if command -v adb &>/dev/null; then + echo '[X] adb is available in the path' + else + echo 'adb is not available in the path' + exit 1 + fi + break + ;; + [nN]) + echo Skipping Android SDK config check... + break + ;; + *) echo invalid response ;; + esac done # ensure rustup is installed -if command -v rustup &> /dev/null; then - echo '[X] rustup is available in the path' +if command -v rustup &>/dev/null; then + echo '[X] rustup is available in the path' else - echo 'rustup is not available in the path' - exit 1 + echo 'rustup is not available in the path' + exit 1 fi # ensure cargo is installed -if command -v cargo &> /dev/null; then - echo '[X] cargo is available in the path' +if command -v cargo &>/dev/null; then + echo '[X] cargo is available in the path' else - echo 'cargo is not available in the path' - exit 1 + echo 'cargo is not available in the path' + exit 1 fi # ensure pip3 is installed -if command -v pip3 &> /dev/null; then - echo '[X] pip3 is available in the path' +if command -v pip3 &>/dev/null; then + echo '[X] pip3 is available in the path' else - echo 'pip3 is not available in the path' - exit 1 + echo 'pip3 is not available in the path' + exit 1 fi # install targets @@ -114,17 +118,21 @@ pip3 install --upgrade bumpversion # install capnp 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 - [yY] ) echo Installing capnproto...; + case $response in + [yY]) + echo Installing capnproto... - # Install capnproto using the same mechanism as our earthly build - $SCRIPTDIR/../scripts/earthly/install_capnproto.sh + # Install capnproto using the same mechanism as our earthly build + $SCRIPTDIR/../scripts/earthly/install_capnproto.sh - break;; - [nN] ) echo Skipping capnproto installation...; - break;; - * ) echo invalid response;; - esac + break + ;; + [nN]) + echo Skipping capnproto installation... + break + ;; + *) echo invalid response ;; + esac done diff --git a/dev-setup/setup_macos.sh b/dev-setup/setup_macos.sh index 646adb69..3552ae2d 100755 --- a/dev-setup/setup_macos.sh +++ b/dev-setup/setup_macos.sh @@ -1,147 +1,151 @@ #!/bin/bash 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 - echo Not running on MacOS - exit 1 + echo Not running on MacOS + exit 1 fi while true; do - read -p "Did you install Android SDK? Y/N " response - case $response in - [yY] ) echo Checking android setup...; - # ensure ANDROID_HOME is defined and exists - if [ -d "$ANDROID_HOME" ]; then - echo '[X] $ANDROID_HOME is defined and exists' - else - echo '$ANDROID_HOME is not defined or does not exist' - exit 1 - fi + read -p "Did you install Android SDK? Y/N " response + case $response in + [yY]) + echo Checking android setup... + # ensure ANDROID_HOME is defined and exists + if [ -d "$ANDROID_HOME" ]; then + echo '[X] $ANDROID_HOME is defined and exists' + else + echo '$ANDROID_HOME is not defined or does not exist' + exit 1 + fi - # ensure Android Command Line Tools exist - if [ -d "$ANDROID_HOME/cmdline-tools/latest/bin" ]; then - echo '[X] Android command line tools are installed' - else - echo 'Android command line tools are not installed' - exit 1 - fi + # ensure Android Command Line Tools exist + if [ -d "$ANDROID_HOME/cmdline-tools/latest/bin" ]; then + echo '[X] Android command line tools are installed' + else + echo 'Android command line tools are not installed' + exit 1 + fi - # 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 + # ensure Android SDK packages are installed + $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 - ANDROID_NDK_HOME="$ANDROID_HOME/ndk/25.1.8937393" - if [ -d "$ANDROID_NDK_HOME" ]; then - echo '[X] Android NDK is defined and exists' - else - echo 'Android NDK is not defined or does not exist' - exit 1 - fi + # ensure ANDROID_NDK_HOME is defined and exists + ANDROID_NDK_HOME="$ANDROID_HOME/ndk/26.3.11579264" + if [ -d "$ANDROID_NDK_HOME" ]; then + echo '[X] Android NDK is defined and exists' + else + echo 'Android NDK is not defined or does not exist' + exit 1 + fi - # ensure ndk is installed - if [ -f "$ANDROID_NDK_HOME/ndk-build" ]; then - echo '[X] Android NDK is installed at the location $ANDROID_NDK_HOME' - else - echo 'Android NDK is not installed at the location $ANDROID_NDK_HOME' - exit 1 - fi + # ensure ndk is installed + if [ -f "$ANDROID_NDK_HOME/ndk-build" ]; then + echo '[X] Android NDK is installed at the location $ANDROID_NDK_HOME' + else + echo 'Android NDK is not installed at the location $ANDROID_NDK_HOME' + exit 1 + fi - # ensure cmake is installed - if [ -d "$ANDROID_HOME/cmake" ]; then - echo '[X] Android SDK CMake is installed' - else - echo 'Android SDK CMake is not installed' - exit 1 - fi + # ensure cmake is installed + if [ -d "$ANDROID_HOME/cmake" ]; then + echo '[X] Android SDK CMake is installed' + else + echo 'Android SDK CMake is not installed' + exit 1 + fi - # ensure emulator is installed - if [ -d "$ANDROID_HOME/emulator" ]; then - echo '[X] Android SDK emulator is installed' - else - echo 'Android SDK emulator is not installed' - exit 1 - fi + # ensure emulator is installed + if [ -d "$ANDROID_HOME/emulator" ]; then + echo '[X] Android SDK emulator is installed' + else + echo 'Android SDK emulator is not installed' + exit 1 + fi - # ensure adb is installed - if command -v adb &> /dev/null; then - echo '[X] adb is available in the path' - else - echo 'adb is not available in the path' - exit 1 - fi - break;; - [nN] ) echo Skipping Android SDK config check...; - break;; + # ensure adb is installed + if command -v adb &>/dev/null; then + echo '[X] adb is available in the path' + else + echo 'adb is not available in the path' + exit 1 + fi + break + ;; + [nN]) + echo Skipping Android SDK config check... + break + ;; - * ) echo invalid response;; - esac + *) echo invalid response ;; + esac done # ensure brew is installed -if command -v brew &> /dev/null; then - echo '[X] brew is available in the path' +if command -v brew &>/dev/null; then + echo '[X] brew is available in the path' else - echo 'brew is not available in the path' - exit 1 + echo 'brew is not available in the path' + exit 1 fi # ensure xcode is installed -if command -v xcode-select &> /dev/null; then - echo '[X] XCode is available in the path' +if command -v xcode-select &>/dev/null; then + echo '[X] XCode is available in the path' else - echo 'XCode is not available in the path' - exit 1 + echo 'XCode is not available in the path' + exit 1 fi # ensure rustup is installed -if command -v rustup &> /dev/null; then - echo '[X] rustup is available in the path' +if command -v rustup &>/dev/null; then + echo '[X] rustup is available in the path' else - echo 'rustup is not available in the path' - exit 1 + echo 'rustup is not available in the path' + exit 1 fi # ensure cargo is installed -if command -v cargo &> /dev/null; then - echo '[X] cargo is available in the path' +if command -v cargo &>/dev/null; then + echo '[X] cargo is available in the path' else - echo 'cargo is not available in the path' - exit 1 + echo 'cargo is not available in the path' + exit 1 fi # ensure pip3 is installed -if command -v pip3 &> /dev/null; then - echo '[X] pip3 is available in the path' +if command -v pip3 &>/dev/null; then + echo '[X] pip3 is available in the path' else - echo 'pip3 is not available in the path' - exit 1 + echo 'pip3 is not available in the path' + exit 1 fi # ensure Java 17 is the active version JAVA_VERSION=$(java -version 2>&1 | head -n 1 | cut -d\" -f2) if [ "$JAVA_VERSION" == "17" ]; then - echo '[X] Java 17 is available in the path' + echo '[X] Java 17 is available in the path' else - echo 'Java 17 is not available in the path' - exit 1 + echo 'Java 17 is not available in the path' + exit 1 fi # 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 - sleep 5; + sleep 5 done # install packages # if $BREW_USER is set, run brew as that user, otherwise run it regularly # this allows for developers who have brew installed as a different user to run this script if [ -z "$BREW_USER" ]; then - BREW_COMMAND="brew" + BREW_COMMAND="brew" else - BREW_COMMAND="sudo -H -u $BREW_USER brew" + BREW_COMMAND="sudo -H -u $BREW_USER brew" fi $BREW_COMMAND install capnp cmake wabt llvm jq @@ -155,9 +159,9 @@ cargo install wasm-bindgen-cli wasm-pack cargo-edit # install pip packages pip3 install --upgrade bumpversion -if command -v pod &> /dev/null; then - echo '[X] CocoaPods is available in the path' +if command -v pod &>/dev/null; then + echo '[X] CocoaPods is available in the path' else - echo 'CocoaPods is not available in the path, installing it now' - $BREW_COMMAND install cocoapods + echo 'CocoaPods is not available in the path, installing it now' + $BREW_COMMAND install cocoapods fi diff --git a/scripts/earthly/cargo-android/config.toml b/scripts/earthly/cargo-android/config.toml index e2552b9f..f4703f0a 100644 --- a/scripts/earthly/cargo-android/config.toml +++ b/scripts/earthly/cargo-android/config.toml @@ -1,8 +1,8 @@ [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] -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] -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] -linker = "/Android/Sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android33-clang" \ No newline at end of file +linker = "/Android/Sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android34-clang" diff --git a/veilid-core/src/tests/android/veilid_core_android_tests/app/build.gradle b/veilid-core/src/tests/android/veilid_core_android_tests/app/build.gradle index af4abe42..e3e31a9d 100644 --- a/veilid-core/src/tests/android/veilid_core_android_tests/app/build.gradle +++ b/veilid-core/src/tests/android/veilid_core_android_tests/app/build.gradle @@ -3,13 +3,13 @@ plugins { } android { - compileSdkVersion 33 - buildToolsVersion "33.0.1" + compileSdkVersion 34 + buildToolsVersion "34.0.0" defaultConfig { applicationId "com.veilid.veilid_core_android_tests" minSdkVersion 24 - targetSdkVersion 33 + targetSdkVersion 34 versionCode 1 versionName "1.0" @@ -38,7 +38,7 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } - ndkVersion '25.1.8937393' + ndkVersion '26.3.11579264' // Required to copy libc++_shared.so externalNativeBuild { @@ -82,5 +82,4 @@ afterEvaluate { def buildType = "${variant.buildType.name.capitalize()}" tasks["generate${productFlavor}${buildType}Assets"].dependsOn(tasks["cargoBuild"]) } -} - +} \ No newline at end of file diff --git a/veilid-flutter/android/build.gradle b/veilid-flutter/android/build.gradle index 2f67d5a7..a0a5930c 100644 --- a/veilid-flutter/android/build.gradle +++ b/veilid-flutter/android/build.gradle @@ -63,7 +63,7 @@ android { } } - ndkVersion '25.1.8937393' + ndkVersion '26.3.11579264' // Required to copy libc++_shared.so externalNativeBuild { @@ -99,4 +99,4 @@ afterEvaluate { def buildType = "${variant.buildType.name.capitalize()}" tasks["generate${productFlavor}${buildType}Assets"].dependsOn(tasks["cargoBuild"]) } -} +} \ No newline at end of file diff --git a/veilid-flutter/example/android/app/build.gradle b/veilid-flutter/example/android/app/build.gradle index 3b74008a..ea37478f 100644 --- a/veilid-flutter/example/android/app/build.gradle +++ b/veilid-flutter/example/android/app/build.gradle @@ -27,7 +27,7 @@ apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" android { compileSdkVersion flutter.compileSdkVersion - ndkVersion '25.1.8937393' + ndkVersion '26.3.11579264' compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 @@ -71,4 +71,4 @@ flutter { dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" -} +} \ No newline at end of file diff --git a/veilid-tools/src/tests/android/veilid_tools_android_tests/app/build.gradle b/veilid-tools/src/tests/android/veilid_tools_android_tests/app/build.gradle index ebcf32e0..8a2c040c 100644 --- a/veilid-tools/src/tests/android/veilid_tools_android_tests/app/build.gradle +++ b/veilid-tools/src/tests/android/veilid_tools_android_tests/app/build.gradle @@ -4,7 +4,7 @@ plugins { android { compileSdkVersion 33 - buildToolsVersion "33.0.1" + buildToolsVersion "34.0.0" defaultConfig { applicationId "com.veilid.veilid_tools_android_tests" @@ -38,7 +38,7 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } - ndkVersion '25.1.8937393' + ndkVersion '26.3.11579264' // Required to copy libc++_shared.so externalNativeBuild { @@ -82,4 +82,4 @@ afterEvaluate { def buildType = "${variant.buildType.name.capitalize()}" tasks["generate${productFlavor}${buildType}Assets"].dependsOn(tasks["cargoBuild"]) } -} +} \ No newline at end of file From 339f2e83729d32d97f85910eb65b29fa5c5cda76 Mon Sep 17 00:00:00 2001 From: Debanjan Basu Date: Sun, 14 Apr 2024 15:50:23 +1000 Subject: [PATCH 3/4] finxed indentation --- dev-setup/install_linux_prerequisites.sh | 86 +++++------ dev-setup/setup_linux.sh | 168 ++++++++++----------- dev-setup/setup_macos.sh | 180 +++++++++++------------ 3 files changed, 217 insertions(+), 217 deletions(-) diff --git a/dev-setup/install_linux_prerequisites.sh b/dev-setup/install_linux_prerequisites.sh index 9486747f..1d057804 100755 --- a/dev-setup/install_linux_prerequisites.sh +++ b/dev-setup/install_linux_prerequisites.sh @@ -2,29 +2,29 @@ set -eo pipefail if [ $(id -u) -eq 0 ]; then - echo "Don't run this as root" - exit + echo "Don't run this as root" + exit fi if [ ! -z "$(command -v apt)" ]; then - # Install APT dependencies - sudo apt update -y - sudo apt install -y openjdk-17-jdk-headless iproute2 curl build-essential cmake libssl-dev openssl file git pkg-config libdbus-1-dev libdbus-glib-1-dev libgirepository1.0-dev libcairo2-dev checkinstall unzip llvm wabt python3-pip + # Install APT dependencies + sudo apt update -y + sudo apt install -y openjdk-17-jdk-headless iproute2 curl build-essential cmake libssl-dev openssl file git pkg-config libdbus-1-dev libdbus-glib-1-dev libgirepository1.0-dev libcairo2-dev checkinstall unzip llvm wabt python3-pip elif [ ! -z "$(command -v dnf)" ]; then - # DNF (formerly yum) - sudo dnf update -y - # libgirepository -> gobject-introspection - # iproute2 -> iproute - # openjdk-17-jdk-headless -> java-11-openjdk-headless - # checkinstall does not appear to be a thing in Fedora 38 repos - # - # Seems like iproute and file might come preinstalled but I put - # them in anyway - # - # Also Fedora doesn't come with pip - sudo dnf install -y java-17-openjdk-headless iproute curl cmake openssl-devel openssl git file pkg-config dbus-devel dbus-glib gobject-introspection-devel cairo-devel unzip llvm wabt python3-pip gcc-c++ - # build-essentials - sudo dnf groupinstall -y 'Development Tools' + # DNF (formerly yum) + sudo dnf update -y + # libgirepository -> gobject-introspection + # iproute2 -> iproute + # openjdk-17-jdk-headless -> java-11-openjdk-headless + # checkinstall does not appear to be a thing in Fedora 38 repos + # + # Seems like iproute and file might come preinstalled but I put + # them in anyway + # + # Also Fedora doesn't come with pip + sudo dnf install -y java-17-openjdk-headless iproute curl cmake openssl-devel openssl git file pkg-config dbus-devel dbus-glib gobject-introspection-devel cairo-devel unzip llvm wabt python3-pip gcc-c++ + # build-essentials + sudo dnf groupinstall -y 'Development Tools' fi # Install Rust @@ -33,39 +33,39 @@ source "$HOME/.cargo/env" #ask if they want to install optional android sdk (and install if yes) 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 - [yY]) - echo Installing Android SDK... - # Install Android SDK - mkdir $HOME/Android - mkdir $HOME/Android/Sdk - curl -o $HOME/Android/cmdline-tools.zip https://dl.google.com/android/repository/commandlinetools-linux-9123335_latest.zip - cd $HOME/Android - 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 + case $response in + [yY]) + echo Installing Android SDK... + # Install Android SDK + mkdir $HOME/Android + mkdir $HOME/Android/Sdk + curl -o $HOME/Android/cmdline-tools.zip https://dl.google.com/android/repository/commandlinetools-linux-9123335_latest.zip + cd $HOME/Android + 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 - cat >>$HOME/.profile <>$HOME/.profile <>$HOME/.profile <>$HOME/.profile </dev/null 2>&1 && pwd)" if [[ "$(uname)" != "Linux" ]]; then - echo Not running Linux - exit 1 + echo Not running Linux + exit 1 fi if ! lsb_release -d | grep -qEi 'debian|buntu|mint|pop\!\_os' && [ -z "$(command -v dnf)" ]; then - echo Not a supported Linux - exit 1 + echo Not a supported Linux + exit 1 fi 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 - [yY]) - echo Checking android setup... + case $response in + [yY]) + echo Checking android setup... - # ensure ANDROID_HOME is defined and exists - if [ -d "$ANDROID_HOME" ]; then - echo '[X] $ANDROID_HOME is defined and exists' - else - echo '$ANDROID_HOME is not defined or does not exist' - exit 1 - fi + # ensure ANDROID_HOME is defined and exists + if [ -d "$ANDROID_HOME" ]; then + echo '[X] $ANDROID_HOME is defined and exists' + else + echo '$ANDROID_HOME is not defined or does not exist' + exit 1 + fi - # ensure Android Command Line Tools exist - if [ -d "$ANDROID_HOME/cmdline-tools/latest/bin" ]; then - echo '[X] Android command line tools are installed' - else - echo 'Android command line tools are not installed' - exit 1 - fi + # ensure Android Command Line Tools exist + if [ -d "$ANDROID_HOME/cmdline-tools/latest/bin" ]; then + echo '[X] Android command line tools are installed' + else + echo 'Android command line tools are not installed' + exit 1 + fi - # ensure ndk is installed - ANDROID_NDK_HOME="$ANDROID_HOME/ndk/26.3.11579264" - if [ -f "$ANDROID_NDK_HOME/ndk-build" ]; then - echo '[X] Android NDK is installed at the location $ANDROID_NDK_HOME' - else - echo 'Android NDK is not installed at the location $ANDROID_NDK_HOME' - exit 1 - fi + # ensure ndk is installed + ANDROID_NDK_HOME="$ANDROID_HOME/ndk/26.3.11579264" + if [ -f "$ANDROID_NDK_HOME/ndk-build" ]; then + echo '[X] Android NDK is installed at the location $ANDROID_NDK_HOME' + else + echo 'Android NDK is not installed at the location $ANDROID_NDK_HOME' + exit 1 + fi - # ensure cmake is installed - if [ -d "$ANDROID_HOME/cmake" ]; then - echo '[X] Android SDK CMake is installed' - else - echo 'Android SDK CMake is not installed' - exit 1 - fi + # ensure cmake is installed + if [ -d "$ANDROID_HOME/cmake" ]; then + echo '[X] Android SDK CMake is installed' + else + echo 'Android SDK CMake is not installed' + exit 1 + fi - # ensure emulator is installed - if [ -d "$ANDROID_HOME/emulator" ]; then - echo '[X] Android SDK emulator is installed' - else - echo 'Android SDK emulator is not installed' - exit 1 - fi + # ensure emulator is installed + if [ -d "$ANDROID_HOME/emulator" ]; then + echo '[X] Android SDK emulator is installed' + else + echo 'Android SDK emulator is not installed' + exit 1 + fi - # ensure adb is installed - if command -v adb &>/dev/null; then - echo '[X] adb is available in the path' - else - echo 'adb is not available in the path' - exit 1 - fi - break - ;; - [nN]) - echo Skipping Android SDK config check... - break - ;; - *) echo invalid response ;; - esac + # ensure adb is installed + if command -v adb &>/dev/null; then + echo '[X] adb is available in the path' + else + echo 'adb is not available in the path' + exit 1 + fi + break + ;; + [nN]) + echo Skipping Android SDK config check... + break + ;; + *) echo invalid response ;; + esac done # ensure rustup is installed if command -v rustup &>/dev/null; then - echo '[X] rustup is available in the path' + echo '[X] rustup is available in the path' else - echo 'rustup is not available in the path' - exit 1 + echo 'rustup is not available in the path' + exit 1 fi # ensure cargo is installed if command -v cargo &>/dev/null; then - echo '[X] cargo is available in the path' + echo '[X] cargo is available in the path' else - echo 'cargo is not available in the path' - exit 1 + echo 'cargo is not available in the path' + exit 1 fi # ensure pip3 is installed if command -v pip3 &>/dev/null; then - echo '[X] pip3 is available in the path' + echo '[X] pip3 is available in the path' else - echo 'pip3 is not available in the path' - exit 1 + echo 'pip3 is not available in the path' + exit 1 fi # install targets @@ -118,21 +118,21 @@ pip3 install --upgrade bumpversion # install capnp 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 - [yY]) - echo Installing capnproto... + case $response in + [yY]) + echo Installing capnproto... - # Install capnproto using the same mechanism as our earthly build - $SCRIPTDIR/../scripts/earthly/install_capnproto.sh + # Install capnproto using the same mechanism as our earthly build + $SCRIPTDIR/../scripts/earthly/install_capnproto.sh - break - ;; - [nN]) - echo Skipping capnproto installation... - break - ;; - *) echo invalid response ;; - esac + break + ;; + [nN]) + echo Skipping capnproto installation... + break + ;; + *) echo invalid response ;; + esac done diff --git a/dev-setup/setup_macos.sh b/dev-setup/setup_macos.sh index 3552ae2d..c4cfdfdb 100755 --- a/dev-setup/setup_macos.sh +++ b/dev-setup/setup_macos.sh @@ -4,148 +4,148 @@ set -eo pipefail SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" if [ ! "$(uname)" == "Darwin" ]; then - echo Not running on MacOS - exit 1 + echo Not running on MacOS + exit 1 fi while true; do - read -p "Did you install Android SDK? Y/N " response - case $response in - [yY]) - echo Checking android setup... - # ensure ANDROID_HOME is defined and exists - if [ -d "$ANDROID_HOME" ]; then - echo '[X] $ANDROID_HOME is defined and exists' - else - echo '$ANDROID_HOME is not defined or does not exist' - exit 1 - fi + read -p "Did you install Android SDK? Y/N " response + case $response in + [yY]) + echo Checking android setup... + # ensure ANDROID_HOME is defined and exists + if [ -d "$ANDROID_HOME" ]; then + echo '[X] $ANDROID_HOME is defined and exists' + else + echo '$ANDROID_HOME is not defined or does not exist' + exit 1 + fi - # ensure Android Command Line Tools exist - if [ -d "$ANDROID_HOME/cmdline-tools/latest/bin" ]; then - echo '[X] Android command line tools are installed' - else - echo 'Android command line tools are not installed' - exit 1 - fi + # ensure Android Command Line Tools exist + if [ -d "$ANDROID_HOME/cmdline-tools/latest/bin" ]; then + echo '[X] Android command line tools are installed' + else + echo 'Android command line tools are not installed' + exit 1 + fi - # ensure Android SDK packages are installed - $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 SDK packages are installed + $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 - ANDROID_NDK_HOME="$ANDROID_HOME/ndk/26.3.11579264" - if [ -d "$ANDROID_NDK_HOME" ]; then - echo '[X] Android NDK is defined and exists' - else - echo 'Android NDK is not defined or does not exist' - exit 1 - fi + # ensure ANDROID_NDK_HOME is defined and exists + ANDROID_NDK_HOME="$ANDROID_HOME/ndk/26.3.11579264" + if [ -d "$ANDROID_NDK_HOME" ]; then + echo '[X] Android NDK is defined and exists' + else + echo 'Android NDK is not defined or does not exist' + exit 1 + fi - # ensure ndk is installed - if [ -f "$ANDROID_NDK_HOME/ndk-build" ]; then - echo '[X] Android NDK is installed at the location $ANDROID_NDK_HOME' - else - echo 'Android NDK is not installed at the location $ANDROID_NDK_HOME' - exit 1 - fi + # ensure ndk is installed + if [ -f "$ANDROID_NDK_HOME/ndk-build" ]; then + echo '[X] Android NDK is installed at the location $ANDROID_NDK_HOME' + else + echo 'Android NDK is not installed at the location $ANDROID_NDK_HOME' + exit 1 + fi - # ensure cmake is installed - if [ -d "$ANDROID_HOME/cmake" ]; then - echo '[X] Android SDK CMake is installed' - else - echo 'Android SDK CMake is not installed' - exit 1 - fi + # ensure cmake is installed + if [ -d "$ANDROID_HOME/cmake" ]; then + echo '[X] Android SDK CMake is installed' + else + echo 'Android SDK CMake is not installed' + exit 1 + fi - # ensure emulator is installed - if [ -d "$ANDROID_HOME/emulator" ]; then - echo '[X] Android SDK emulator is installed' - else - echo 'Android SDK emulator is not installed' - exit 1 - fi + # ensure emulator is installed + if [ -d "$ANDROID_HOME/emulator" ]; then + echo '[X] Android SDK emulator is installed' + else + echo 'Android SDK emulator is not installed' + exit 1 + fi - # ensure adb is installed - if command -v adb &>/dev/null; then - echo '[X] adb is available in the path' - else - echo 'adb is not available in the path' - exit 1 - fi - break - ;; - [nN]) - echo Skipping Android SDK config check... - break - ;; + # ensure adb is installed + if command -v adb &>/dev/null; then + echo '[X] adb is available in the path' + else + echo 'adb is not available in the path' + exit 1 + fi + break + ;; + [nN]) + echo Skipping Android SDK config check... + break + ;; - *) echo invalid response ;; - esac + *) echo invalid response ;; + esac done # ensure brew is installed if command -v brew &>/dev/null; then - echo '[X] brew is available in the path' + echo '[X] brew is available in the path' else - echo 'brew is not available in the path' - exit 1 + echo 'brew is not available in the path' + exit 1 fi # ensure xcode is installed 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 - echo 'XCode is not available in the path' - exit 1 + echo 'XCode is not available in the path' + exit 1 fi # ensure rustup is installed if command -v rustup &>/dev/null; then - echo '[X] rustup is available in the path' + echo '[X] rustup is available in the path' else - echo 'rustup is not available in the path' - exit 1 + echo 'rustup is not available in the path' + exit 1 fi # ensure cargo is installed if command -v cargo &>/dev/null; then - echo '[X] cargo is available in the path' + echo '[X] cargo is available in the path' else - echo 'cargo is not available in the path' - exit 1 + echo 'cargo is not available in the path' + exit 1 fi # ensure pip3 is installed if command -v pip3 &>/dev/null; then - echo '[X] pip3 is available in the path' + echo '[X] pip3 is available in the path' else - echo 'pip3 is not available in the path' - exit 1 + echo 'pip3 is not available in the path' + exit 1 fi # ensure Java 17 is the active version JAVA_VERSION=$(java -version 2>&1 | head -n 1 | cut -d\" -f2) if [ "$JAVA_VERSION" == "17" ]; then - echo '[X] Java 17 is available in the path' + echo '[X] Java 17 is available in the path' else - echo 'Java 17 is not available in the path' - exit 1 + echo 'Java 17 is not available in the path' + exit 1 fi # ensure we have command line tools xcode-select --install 2>/dev/null || true until [ -d /Library/Developer/CommandLineTools/usr/bin ]; do - sleep 5 + sleep 5 done # install packages # if $BREW_USER is set, run brew as that user, otherwise run it regularly # this allows for developers who have brew installed as a different user to run this script if [ -z "$BREW_USER" ]; then - BREW_COMMAND="brew" + BREW_COMMAND="brew" else - BREW_COMMAND="sudo -H -u $BREW_USER brew" + BREW_COMMAND="sudo -H -u $BREW_USER brew" fi $BREW_COMMAND install capnp cmake wabt llvm jq @@ -160,8 +160,8 @@ cargo install wasm-bindgen-cli wasm-pack cargo-edit pip3 install --upgrade bumpversion if command -v pod &>/dev/null; then - echo '[X] CocoaPods is available in the path' + echo '[X] CocoaPods is available in the path' else - echo 'CocoaPods is not available in the path, installing it now' - $BREW_COMMAND install cocoapods + echo 'CocoaPods is not available in the path, installing it now' + $BREW_COMMAND install cocoapods fi From 54b7be1eea87baeb2755a67ae1762a2ff340ce12 Mon Sep 17 00:00:00 2001 From: Debanjan Basu Date: Sun, 14 Apr 2024 15:52:32 +1000 Subject: [PATCH 4/4] updated indentation hoping to match what was already there --- dev-setup/install_linux_prerequisites.sh | 86 +++++------ dev-setup/setup_linux.sh | 168 ++++++++++----------- dev-setup/setup_macos.sh | 180 +++++++++++------------ 3 files changed, 217 insertions(+), 217 deletions(-) diff --git a/dev-setup/install_linux_prerequisites.sh b/dev-setup/install_linux_prerequisites.sh index 1d057804..a6c6a3d2 100755 --- a/dev-setup/install_linux_prerequisites.sh +++ b/dev-setup/install_linux_prerequisites.sh @@ -2,29 +2,29 @@ set -eo pipefail if [ $(id -u) -eq 0 ]; then - echo "Don't run this as root" - exit + echo "Don't run this as root" + exit fi if [ ! -z "$(command -v apt)" ]; then - # Install APT dependencies - sudo apt update -y - sudo apt install -y openjdk-17-jdk-headless iproute2 curl build-essential cmake libssl-dev openssl file git pkg-config libdbus-1-dev libdbus-glib-1-dev libgirepository1.0-dev libcairo2-dev checkinstall unzip llvm wabt python3-pip + # Install APT dependencies + sudo apt update -y + sudo apt install -y openjdk-17-jdk-headless iproute2 curl build-essential cmake libssl-dev openssl file git pkg-config libdbus-1-dev libdbus-glib-1-dev libgirepository1.0-dev libcairo2-dev checkinstall unzip llvm wabt python3-pip elif [ ! -z "$(command -v dnf)" ]; then - # DNF (formerly yum) - sudo dnf update -y - # libgirepository -> gobject-introspection - # iproute2 -> iproute - # openjdk-17-jdk-headless -> java-11-openjdk-headless - # checkinstall does not appear to be a thing in Fedora 38 repos - # - # Seems like iproute and file might come preinstalled but I put - # them in anyway - # - # Also Fedora doesn't come with pip - sudo dnf install -y java-17-openjdk-headless iproute curl cmake openssl-devel openssl git file pkg-config dbus-devel dbus-glib gobject-introspection-devel cairo-devel unzip llvm wabt python3-pip gcc-c++ - # build-essentials - sudo dnf groupinstall -y 'Development Tools' + # DNF (formerly yum) + sudo dnf update -y + # libgirepository -> gobject-introspection + # iproute2 -> iproute + # openjdk-17-jdk-headless -> java-11-openjdk-headless + # checkinstall does not appear to be a thing in Fedora 38 repos + # + # Seems like iproute and file might come preinstalled but I put + # them in anyway + # + # Also Fedora doesn't come with pip + sudo dnf install -y java-17-openjdk-headless iproute curl cmake openssl-devel openssl git file pkg-config dbus-devel dbus-glib gobject-introspection-devel cairo-devel unzip llvm wabt python3-pip gcc-c++ + # build-essentials + sudo dnf groupinstall -y 'Development Tools' fi # Install Rust @@ -33,39 +33,39 @@ source "$HOME/.cargo/env" #ask if they want to install optional android sdk (and install if yes) 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 - [yY]) - echo Installing Android SDK... - # Install Android SDK - mkdir $HOME/Android - mkdir $HOME/Android/Sdk - curl -o $HOME/Android/cmdline-tools.zip https://dl.google.com/android/repository/commandlinetools-linux-9123335_latest.zip - cd $HOME/Android - 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 + case $response in + [yY]) + echo Installing Android SDK... + # Install Android SDK + mkdir $HOME/Android + mkdir $HOME/Android/Sdk + curl -o $HOME/Android/cmdline-tools.zip https://dl.google.com/android/repository/commandlinetools-linux-9123335_latest.zip + cd $HOME/Android + 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 - cat >>$HOME/.profile <>$HOME/.profile <>$HOME/.profile <>$HOME/.profile </dev/null 2>&1 && pwd)" if [[ "$(uname)" != "Linux" ]]; then - echo Not running Linux - exit 1 + echo Not running Linux + exit 1 fi if ! lsb_release -d | grep -qEi 'debian|buntu|mint|pop\!\_os' && [ -z "$(command -v dnf)" ]; then - echo Not a supported Linux - exit 1 + echo Not a supported Linux + exit 1 fi 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 - [yY]) - echo Checking android setup... + case $response in + [yY]) + echo Checking android setup... - # ensure ANDROID_HOME is defined and exists - if [ -d "$ANDROID_HOME" ]; then - echo '[X] $ANDROID_HOME is defined and exists' - else - echo '$ANDROID_HOME is not defined or does not exist' - exit 1 - fi + # ensure ANDROID_HOME is defined and exists + if [ -d "$ANDROID_HOME" ]; then + echo '[X] $ANDROID_HOME is defined and exists' + else + echo '$ANDROID_HOME is not defined or does not exist' + exit 1 + fi - # ensure Android Command Line Tools exist - if [ -d "$ANDROID_HOME/cmdline-tools/latest/bin" ]; then - echo '[X] Android command line tools are installed' - else - echo 'Android command line tools are not installed' - exit 1 - fi + # ensure Android Command Line Tools exist + if [ -d "$ANDROID_HOME/cmdline-tools/latest/bin" ]; then + echo '[X] Android command line tools are installed' + else + echo 'Android command line tools are not installed' + exit 1 + fi - # ensure ndk is installed - ANDROID_NDK_HOME="$ANDROID_HOME/ndk/26.3.11579264" - if [ -f "$ANDROID_NDK_HOME/ndk-build" ]; then - echo '[X] Android NDK is installed at the location $ANDROID_NDK_HOME' - else - echo 'Android NDK is not installed at the location $ANDROID_NDK_HOME' - exit 1 - fi + # ensure ndk is installed + ANDROID_NDK_HOME="$ANDROID_HOME/ndk/26.3.11579264" + if [ -f "$ANDROID_NDK_HOME/ndk-build" ]; then + echo '[X] Android NDK is installed at the location $ANDROID_NDK_HOME' + else + echo 'Android NDK is not installed at the location $ANDROID_NDK_HOME' + exit 1 + fi - # ensure cmake is installed - if [ -d "$ANDROID_HOME/cmake" ]; then - echo '[X] Android SDK CMake is installed' - else - echo 'Android SDK CMake is not installed' - exit 1 - fi + # ensure cmake is installed + if [ -d "$ANDROID_HOME/cmake" ]; then + echo '[X] Android SDK CMake is installed' + else + echo 'Android SDK CMake is not installed' + exit 1 + fi - # ensure emulator is installed - if [ -d "$ANDROID_HOME/emulator" ]; then - echo '[X] Android SDK emulator is installed' - else - echo 'Android SDK emulator is not installed' - exit 1 - fi + # ensure emulator is installed + if [ -d "$ANDROID_HOME/emulator" ]; then + echo '[X] Android SDK emulator is installed' + else + echo 'Android SDK emulator is not installed' + exit 1 + fi - # ensure adb is installed - if command -v adb &>/dev/null; then - echo '[X] adb is available in the path' - else - echo 'adb is not available in the path' - exit 1 - fi - break - ;; - [nN]) - echo Skipping Android SDK config check... - break - ;; - *) echo invalid response ;; - esac + # ensure adb is installed + if command -v adb &>/dev/null; then + echo '[X] adb is available in the path' + else + echo 'adb is not available in the path' + exit 1 + fi + break + ;; + [nN]) + echo Skipping Android SDK config check... + break + ;; + *) echo invalid response ;; + esac done # ensure rustup is installed if command -v rustup &>/dev/null; then - echo '[X] rustup is available in the path' + echo '[X] rustup is available in the path' else - echo 'rustup is not available in the path' - exit 1 + echo 'rustup is not available in the path' + exit 1 fi # ensure cargo is installed if command -v cargo &>/dev/null; then - echo '[X] cargo is available in the path' + echo '[X] cargo is available in the path' else - echo 'cargo is not available in the path' - exit 1 + echo 'cargo is not available in the path' + exit 1 fi # ensure pip3 is installed if command -v pip3 &>/dev/null; then - echo '[X] pip3 is available in the path' + echo '[X] pip3 is available in the path' else - echo 'pip3 is not available in the path' - exit 1 + echo 'pip3 is not available in the path' + exit 1 fi # install targets @@ -118,21 +118,21 @@ pip3 install --upgrade bumpversion # install capnp 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 - [yY]) - echo Installing capnproto... + case $response in + [yY]) + echo Installing capnproto... - # Install capnproto using the same mechanism as our earthly build - $SCRIPTDIR/../scripts/earthly/install_capnproto.sh + # Install capnproto using the same mechanism as our earthly build + $SCRIPTDIR/../scripts/earthly/install_capnproto.sh - break - ;; - [nN]) - echo Skipping capnproto installation... - break - ;; - *) echo invalid response ;; - esac + break + ;; + [nN]) + echo Skipping capnproto installation... + break + ;; + *) echo invalid response ;; + esac done diff --git a/dev-setup/setup_macos.sh b/dev-setup/setup_macos.sh index c4cfdfdb..6ebb5b99 100755 --- a/dev-setup/setup_macos.sh +++ b/dev-setup/setup_macos.sh @@ -4,148 +4,148 @@ set -eo pipefail SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" if [ ! "$(uname)" == "Darwin" ]; then - echo Not running on MacOS - exit 1 + echo Not running on MacOS + exit 1 fi while true; do - read -p "Did you install Android SDK? Y/N " response - case $response in - [yY]) - echo Checking android setup... - # ensure ANDROID_HOME is defined and exists - if [ -d "$ANDROID_HOME" ]; then - echo '[X] $ANDROID_HOME is defined and exists' - else - echo '$ANDROID_HOME is not defined or does not exist' - exit 1 - fi + read -p "Did you install Android SDK? Y/N " response + case $response in + [yY]) + echo Checking android setup... + # ensure ANDROID_HOME is defined and exists + if [ -d "$ANDROID_HOME" ]; then + echo '[X] $ANDROID_HOME is defined and exists' + else + echo '$ANDROID_HOME is not defined or does not exist' + exit 1 + fi - # ensure Android Command Line Tools exist - if [ -d "$ANDROID_HOME/cmdline-tools/latest/bin" ]; then - echo '[X] Android command line tools are installed' - else - echo 'Android command line tools are not installed' - exit 1 - fi + # ensure Android Command Line Tools exist + if [ -d "$ANDROID_HOME/cmdline-tools/latest/bin" ]; then + echo '[X] Android command line tools are installed' + else + echo 'Android command line tools are not installed' + exit 1 + fi - # ensure Android SDK packages are installed - $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 SDK packages are installed + $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 - ANDROID_NDK_HOME="$ANDROID_HOME/ndk/26.3.11579264" - if [ -d "$ANDROID_NDK_HOME" ]; then - echo '[X] Android NDK is defined and exists' - else - echo 'Android NDK is not defined or does not exist' - exit 1 - fi + # ensure ANDROID_NDK_HOME is defined and exists + ANDROID_NDK_HOME="$ANDROID_HOME/ndk/26.3.11579264" + if [ -d "$ANDROID_NDK_HOME" ]; then + echo '[X] Android NDK is defined and exists' + else + echo 'Android NDK is not defined or does not exist' + exit 1 + fi - # ensure ndk is installed - if [ -f "$ANDROID_NDK_HOME/ndk-build" ]; then - echo '[X] Android NDK is installed at the location $ANDROID_NDK_HOME' - else - echo 'Android NDK is not installed at the location $ANDROID_NDK_HOME' - exit 1 - fi + # ensure ndk is installed + if [ -f "$ANDROID_NDK_HOME/ndk-build" ]; then + echo '[X] Android NDK is installed at the location $ANDROID_NDK_HOME' + else + echo 'Android NDK is not installed at the location $ANDROID_NDK_HOME' + exit 1 + fi - # ensure cmake is installed - if [ -d "$ANDROID_HOME/cmake" ]; then - echo '[X] Android SDK CMake is installed' - else - echo 'Android SDK CMake is not installed' - exit 1 - fi + # ensure cmake is installed + if [ -d "$ANDROID_HOME/cmake" ]; then + echo '[X] Android SDK CMake is installed' + else + echo 'Android SDK CMake is not installed' + exit 1 + fi - # ensure emulator is installed - if [ -d "$ANDROID_HOME/emulator" ]; then - echo '[X] Android SDK emulator is installed' - else - echo 'Android SDK emulator is not installed' - exit 1 - fi + # ensure emulator is installed + if [ -d "$ANDROID_HOME/emulator" ]; then + echo '[X] Android SDK emulator is installed' + else + echo 'Android SDK emulator is not installed' + exit 1 + fi - # ensure adb is installed - if command -v adb &>/dev/null; then - echo '[X] adb is available in the path' - else - echo 'adb is not available in the path' - exit 1 - fi - break - ;; - [nN]) - echo Skipping Android SDK config check... - break - ;; + # ensure adb is installed + if command -v adb &>/dev/null; then + echo '[X] adb is available in the path' + else + echo 'adb is not available in the path' + exit 1 + fi + break + ;; + [nN]) + echo Skipping Android SDK config check... + break + ;; - *) echo invalid response ;; - esac + *) echo invalid response ;; + esac done # ensure brew is installed if command -v brew &>/dev/null; then - echo '[X] brew is available in the path' + echo '[X] brew is available in the path' else - echo 'brew is not available in the path' - exit 1 + echo 'brew is not available in the path' + exit 1 fi # ensure xcode is installed 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 - echo 'XCode is not available in the path' - exit 1 + echo 'XCode is not available in the path' + exit 1 fi # ensure rustup is installed if command -v rustup &>/dev/null; then - echo '[X] rustup is available in the path' + echo '[X] rustup is available in the path' else - echo 'rustup is not available in the path' - exit 1 + echo 'rustup is not available in the path' + exit 1 fi # ensure cargo is installed if command -v cargo &>/dev/null; then - echo '[X] cargo is available in the path' + echo '[X] cargo is available in the path' else - echo 'cargo is not available in the path' - exit 1 + echo 'cargo is not available in the path' + exit 1 fi # ensure pip3 is installed if command -v pip3 &>/dev/null; then - echo '[X] pip3 is available in the path' + echo '[X] pip3 is available in the path' else - echo 'pip3 is not available in the path' - exit 1 + echo 'pip3 is not available in the path' + exit 1 fi # ensure Java 17 is the active version JAVA_VERSION=$(java -version 2>&1 | head -n 1 | cut -d\" -f2) if [ "$JAVA_VERSION" == "17" ]; then - echo '[X] Java 17 is available in the path' + echo '[X] Java 17 is available in the path' else - echo 'Java 17 is not available in the path' - exit 1 + echo 'Java 17 is not available in the path' + exit 1 fi # ensure we have command line tools xcode-select --install 2>/dev/null || true until [ -d /Library/Developer/CommandLineTools/usr/bin ]; do - sleep 5 + sleep 5 done # install packages # if $BREW_USER is set, run brew as that user, otherwise run it regularly # this allows for developers who have brew installed as a different user to run this script if [ -z "$BREW_USER" ]; then - BREW_COMMAND="brew" + BREW_COMMAND="brew" else - BREW_COMMAND="sudo -H -u $BREW_USER brew" + BREW_COMMAND="sudo -H -u $BREW_USER brew" fi $BREW_COMMAND install capnp cmake wabt llvm jq @@ -160,8 +160,8 @@ cargo install wasm-bindgen-cli wasm-pack cargo-edit pip3 install --upgrade bumpversion if command -v pod &>/dev/null; then - echo '[X] CocoaPods is available in the path' + echo '[X] CocoaPods is available in the path' else - echo 'CocoaPods is not available in the path, installing it now' - $BREW_COMMAND install cocoapods + echo 'CocoaPods is not available in the path, installing it now' + $BREW_COMMAND install cocoapods fi