Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ steps.versions.outputs.rust }}
targets: aarch64-linux-android, x86_64-linux-android
targets: aarch64-linux-android, x86_64-linux-android, armv7-linux-androideabi

- uses: Swatinem/rust-cache@v2
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/debug.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ jobs:
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ steps.versions.outputs.rust }}
targets: aarch64-linux-android, x86_64-linux-android
targets: aarch64-linux-android, x86_64-linux-android, armv7-linux-androideabi

- uses: Swatinem/rust-cache@v2
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ jobs:
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ steps.versions.outputs.rust }}
targets: aarch64-linux-android, x86_64-linux-android
targets: aarch64-linux-android, x86_64-linux-android, armv7-linux-androideabi

- uses: Swatinem/rust-cache@v2
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ jobs:
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ steps.versions.outputs.rust }}
targets: aarch64-linux-android, x86_64-linux-android
targets: aarch64-linux-android, x86_64-linux-android, armv7-linux-androideabi

- uses: Swatinem/rust-cache@v2
with:
Expand Down
2 changes: 1 addition & 1 deletion BUILD.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
It simpler to build on Linux. You will need need to install

- [Rust](https://www.rust-lang.org/tools/install)
- install the necessary targets: `rustup target add x86_64-linux-android aarch64-linux-android`
- install the necessary targets: `rustup target add x86_64-linux-android aarch64-linux-android armv7-linux-androideabi`
- perl
- make

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ Because all apps which integrate git on Android either separate the note title f

_Supported Android versions: 11 to 16_

_Supported Architecture: `arm64-v8a`, `x86_64`_
_Supported Architecture: `arm64-v8a`, `x86_64`, `armeabi-v7a`_

# Build

Expand Down
2 changes: 1 addition & 1 deletion app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ android {
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"

ndk {
abiFilters += listOf("arm64-v8a", "x86_64")
abiFilters += listOf("arm64-v8a", "x86_64", "armeabi-v7a")
}

}
Expand Down
3 changes: 2 additions & 1 deletion app/src/main/rust/.gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
target/
/openssl-prebuild/*/install
/openssl-prebuild/*
!/openssl-prebuild/*.zip
/vendor
/repo_test
/test_clone
43 changes: 26 additions & 17 deletions app/src/main/rust/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -18,19 +18,21 @@ MIN_SDK := 21


ifeq ($(OS),Windows_NT)
NDK_PATH ?= ${HOME}/AppData/Local/Android/Sdk/ndk/30.0.16248370/toolchains/llvm/prebuilt/windows-x86_64/bin
NDK_PATH ?= $(HOME)/AppData/Local/Android/Sdk/ndk/30.0.16248370/toolchains/llvm/prebuilt/windows-x86_64/bin
export OPENSSL_NO_VENDOR_PRIV ?= 1
export CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER := x86_64-linux-android${MIN_SDK}-clang.cmd
export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER := aarch64-linux-android${MIN_SDK}-clang.cmd
export CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER := x86_64-linux-android$(MIN_SDK)-clang.cmd
export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER := aarch64-linux-android$(MIN_SDK)-clang.cmd
export CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER := armv7a-linux-androideabi$(MIN_SDK)-clang.cmd
else
NDK_PATH ?= ${HOME}/Android/Sdk/ndk/30.0.16248370/toolchains/llvm/prebuilt/linux-x86_64/bin
NDK_PATH ?= $(HOME)/Android/Sdk/ndk/30.0.16248370/toolchains/llvm/prebuilt/linux-x86_64/bin
export OPENSSL_NO_VENDOR_PRIV ?= 0
export CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER := x86_64-linux-android${MIN_SDK}-clang
export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER := aarch64-linux-android${MIN_SDK}-clang
export CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER := x86_64-linux-android$(MIN_SDK)-clang
export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER := aarch64-linux-android$(MIN_SDK)-clang
export CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER := armv7a-linux-androideabi$(MIN_SDK)-clang
endif


export PATH := ${NDK_PATH}:$(PATH)
export PATH := $(NDK_PATH):$(PATH)


MAKEFILE_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
Expand All @@ -46,27 +48,34 @@ build_install: build cp_to_jni
build_zip: build zip_openssl_build_all

unzip_openssl_prebuild:
unzip openssl-prebuild/x86_64/install.zip
unzip openssl-prebuild/aarch64/install.zip
unzip -o openssl-prebuild/x86_64-linux-android.zip
unzip -o openssl-prebuild/aarch64-linux-android.zip
unzip -o openssl-prebuild/armv7-linux-androideabi.zip

# https://github.com/rust-lang/cc-rs/issues/1440
build:
ifeq ($(OPENSSL_NO_VENDOR_PRIV),1)
OPENSSL_DIR=$(abspath $(MAKEFILE_DIR)/openssl-prebuild/x86_64/install) cargo build ${ARGS} --target=x86_64-linux-android
OPENSSL_DIR=$(abspath $(MAKEFILE_DIR)/openssl-prebuild/aarch64/install) cargo build ${ARGS} --target=aarch64-linux-android
OPENSSL_DIR=$(abspath $(MAKEFILE_DIR)/openssl-prebuild/x86_64-linux-android) CC=$(CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER) cargo build $(ARGS) --target=x86_64-linux-android
OPENSSL_DIR=$(abspath $(MAKEFILE_DIR)/openssl-prebuild/aarch64-linux-android) CC=$(CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER) cargo build $(ARGS) --target=aarch64-linux-android
OPENSSL_DIR=$(abspath $(MAKEFILE_DIR)/openssl-prebuild/armv7-linux-androideabi) CC=$(CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER) cargo build $(ARGS) --target=armv7-linux-androideabi
else
cargo build ${ARGS} --target=x86_64-linux-android
cargo build ${ARGS} --target=aarch64-linux-android
CC=$(CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER) cargo build $(ARGS) --target=x86_64-linux-android
CC=$(CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER) cargo build $(ARGS) --target=aarch64-linux-android
CC=$(CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER) cargo build $(ARGS) --target=armv7-linux-androideabi
endif

cp_to_jni:
mkdir -p ../jniLibs/x86_64
cp target/x86_64-linux-android/${TARGET_PREFIX}/libgit_wrapper.so ../jniLibs/x86_64/
cp target/x86_64-linux-android/$(TARGET_PREFIX)/libgit_wrapper.so ../jniLibs/x86_64/
mkdir -p ../jniLibs/arm64-v8a
cp target/aarch64-linux-android/${TARGET_PREFIX}/libgit_wrapper.so ../jniLibs/arm64-v8a/
cp target/aarch64-linux-android/$(TARGET_PREFIX)/libgit_wrapper.so ../jniLibs/arm64-v8a/
mkdir -p ../jniLibs/armeabi-v7a
cp target/armv7-linux-androideabi/$(TARGET_PREFIX)/libgit_wrapper.so ../jniLibs/armeabi-v7a/

zip_openssl_build_all:
just zip_openssl_build x86_64
just zip_openssl_build aarch64
just zip_openssl_build x86_64-linux-android
just zip_openssl_build aarch64-linux-android
just zip_openssl_build armv7-linux-androideabi


fix:
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/rust/RUST_VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.98.1
1.99.1
6 changes: 3 additions & 3 deletions app/src/main/rust/justfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ set windows-shell := ["powershell.exe", "-NoLogo", "-Command"]

zip_openssl_build arch:
rm -rf openssl-prebuild/{{ arch }}/*
cp -r target/{{ arch }}-linux-android/release/build/openssl-sys-*/out/openssl-build/install openssl-prebuild/{{ arch }}
zip -r install.zip openssl-prebuild/{{ arch }}/install
mv install.zip openssl-prebuild/{{ arch }}
cp -r target/{{ arch }}/release/build/openssl-sys-*/out/openssl-build/install openssl-prebuild/{{ arch }}
zip -r openssl-prebuild/{{ arch }}.zip openssl-prebuild/{{ arch }}

pull: prettier fix

fix: fmt fmt-just
Expand Down
3 changes: 3 additions & 0 deletions app/src/main/rust/openssl-prebuild/aarch64-linux-android.zip
Git LFS file not shown
3 changes: 0 additions & 3 deletions app/src/main/rust/openssl-prebuild/aarch64/install.zip

This file was deleted.

Git LFS file not shown
3 changes: 3 additions & 0 deletions app/src/main/rust/openssl-prebuild/x86_64-linux-android.zip
Git LFS file not shown
3 changes: 0 additions & 3 deletions app/src/main/rust/openssl-prebuild/x86_64/install.zip

This file was deleted.

13 changes: 7 additions & 6 deletions app/src/main/rust/src/libgit2/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -410,14 +410,15 @@ pub fn get_timestamps(
.extension()
.and_then(|e| e.to_str())
.unwrap_or(""),
) {
match path.as_os_str().to_str() {
Some(path) => insert(path, commit.time().seconds() * 1000)?,
None => {
warn!("path can't be converted to str");
}
)
{
match path.as_os_str().to_str() {
Some(path) => insert(path, commit.time().seconds() * 1000)?,
None => {
warn!("path can't be converted to str");
}
}
}
}
}

Expand Down
1 change: 1 addition & 0 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
targets = [
"aarch64-linux-android"
"x86_64-linux-android"
"armv7-linux-androideabi"
];
extensions = [
"rust-src"
Expand Down
Loading