mirror of
https://github.com/signalapp/libsignal.git
synced 2024-09-20 03:52:17 +02:00
Use a script instead of make for building the JNI native libraries
This commit is contained in:
parent
304171fdf3
commit
d5fd5ddf76
@ -1,62 +0,0 @@
|
||||
.PHONY: android_libs desktop_libs
|
||||
|
||||
ANDROID_LIB_DIR=android/src/main/jniLibs
|
||||
DESKTOP_LIB_DIR=java/src/main/resources
|
||||
OUTPUT_DIR=../target
|
||||
|
||||
#RUSTFLAGS="-C link-args-s"
|
||||
RUSTFLAGS=""
|
||||
|
||||
all: android_libs desktop_libs
|
||||
|
||||
android_libs: $(ANDROID_LIB_DIR)/armeabi-v7a/libsignal_jni.so \
|
||||
$(ANDROID_LIB_DIR)/arm64-v8a/libsignal_jni.so \
|
||||
$(ANDROID_LIB_DIR)/x86/libsignal_jni.so \
|
||||
$(ANDROID_LIB_DIR)/x86_64/libsignal_jni.so
|
||||
|
||||
#desktop_libs: $(DESKTOP_LIB_DIR)/libsignal_jni.so $(DESKTOP_LIB_DIR)/libsignal_jni.dylib $(DESKTOP_LIB_DIR)/libsignal_jni.dll
|
||||
desktop_libs: $(DESKTOP_LIB_DIR)/libsignal_jni.so
|
||||
|
||||
$(DESKTOP_LIB_DIR)/libsignal_jni.so:
|
||||
cd ../rust/bridge/jni && RUSTFLAGS=$(RUSTFLAGS) cargo build --target x86_64-unknown-linux-gnu --release
|
||||
mkdir -p $(DESKTOP_LIB_DIR)
|
||||
cp $(OUTPUT_DIR)/x86_64-unknown-linux-gnu/release/libsignal_jni.so $(DESKTOP_LIB_DIR)
|
||||
|
||||
$(DESKTOP_LIB_DIR)/libsignal_jni.dylib:
|
||||
cd ../rust/bridge/jni && RUSTFLAGS=$(RUSTFLAGS) cargo build --target x86_64-apple-darwin --release
|
||||
mkdir -p $(DESKTOP_LIB_DIR)
|
||||
cp target/x86_64-apple-darwin/release/libsignal_jni.dylib $(DESKTOP_LIB_DIR)
|
||||
|
||||
$(DESKTOP_LIB_DIR)/libsignal_jni.dll:
|
||||
cd ../rust/bridge/jni && RUSTFLAGS=$(RUSTFLAGS) cargo build --target x86_64-pc-windows-msvc --release
|
||||
mkdir -p $(DESKTOP_LIB_DIR)
|
||||
cp target/x86_64-apple-darwin/release/libsignal_jni.dll $(DESKTOP_LIB_DIR)
|
||||
|
||||
$(ANDROID_LIB_DIR)/armeabi-v7a/libsignal_jni.so:
|
||||
cd ../rust/bridge/jni && RUSTFLAGS=$(RUSTFLAGS) cargo ndk --target armv7-linux-androideabi --platform 19 -- build --release
|
||||
mkdir -p $(ANDROID_LIB_DIR)/armeabi-v7a/
|
||||
cp $(OUTPUT_DIR)/armv7-linux-androideabi/release/libsignal_jni.so $(ANDROID_LIB_DIR)/armeabi-v7a/
|
||||
|
||||
$(ANDROID_LIB_DIR)/arm64-v8a/libsignal_jni.so:
|
||||
cd ../rust/bridge/jni && RUSTFLAGS=$(RUSTFLAGS) cargo ndk --target aarch64-linux-android --platform 21 -- build --release
|
||||
mkdir -p $(ANDROID_LIB_DIR)/arm64-v8a
|
||||
cp $(OUTPUT_DIR)/aarch64-linux-android/release/libsignal_jni.so $(ANDROID_LIB_DIR)/arm64-v8a
|
||||
|
||||
$(ANDROID_LIB_DIR)/x86/libsignal_jni.so:
|
||||
cd ../rust/bridge/jni && RUSTFLAGS=$(RUSTFLAGS) cargo ndk --target i686-linux-android --platform 19 -- build --release
|
||||
mkdir -p $(ANDROID_LIB_DIR)/x86
|
||||
cp $(OUTPUT_DIR)/i686-linux-android/release/libsignal_jni.so $(ANDROID_LIB_DIR)/x86
|
||||
|
||||
$(ANDROID_LIB_DIR)/x86_64/libsignal_jni.so:
|
||||
cd ../rust/bridge/jni && RUSTFLAGS=$(RUSTFLAGS) cargo ndk --target x86_64-linux-android --platform 21 -- build --release
|
||||
mkdir -p $(ANDROID_LIB_DIR)/x86_64
|
||||
cp $(OUTPUT_DIR)/x86_64-linux-android/release/libsignal_jni.so $(ANDROID_LIB_DIR)/x86_64
|
||||
|
||||
clean:
|
||||
rm -f $(ANDROID_LIB_DIR)/x86_64/libsignal_jni.so
|
||||
rm -f $(ANDROID_LIB_DIR)/x86/libsignal_jni.so
|
||||
rm -f $(ANDROID_LIB_DIR)/arm64-v8a/libsignal_jni.so
|
||||
rm -f $(ANDROID_LIB_DIR)/armeabi-v7a/libsignal_jni.so
|
||||
rm -f $(DESKTOP_LIB_DIR)/libsignal_jni.dll
|
||||
rm -f $(DESKTOP_LIB_DIR)/libsignal_jni.dylib
|
||||
rm -f $(DESKTOP_LIB_DIR)/libsignal_jni.so
|
@ -128,6 +128,3 @@ task installArchives(type: Upload) {
|
||||
}
|
||||
}
|
||||
|
||||
tasks.withType(JavaCompile) {
|
||||
compileTask -> compileTask.dependsOn ':makeAndroid'
|
||||
}
|
||||
|
@ -11,18 +11,11 @@ subprojects {
|
||||
}
|
||||
}
|
||||
|
||||
task makeAndroid(type:Exec) {
|
||||
task makeJniLibraries(type:Exec) {
|
||||
group 'Rust'
|
||||
description 'Build the android libraries'
|
||||
description 'Build the JNI libraries'
|
||||
|
||||
commandLine 'make', 'android_libs'
|
||||
}
|
||||
|
||||
task makeDesktop(type:Exec) {
|
||||
group 'Rust'
|
||||
description 'Build the desktop libraries'
|
||||
|
||||
commandLine 'make', 'desktop_libs'
|
||||
commandLine './build_jni.sh'
|
||||
}
|
||||
|
||||
task makeAll() {
|
||||
|
22
java/build_jni.sh
Executable file
22
java/build_jni.sh
Executable file
@ -0,0 +1,22 @@
|
||||
#!/bin/sh
|
||||
|
||||
#
|
||||
# Copyright (C) 2020 Signal Messenger, LLC.
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
#
|
||||
|
||||
command -v shellcheck > /dev/null && shellcheck "$0" # Run shellcheck on this if available
|
||||
|
||||
# These paths are relative to the root directory
|
||||
ANDROID_LIB_DIR=java/android/src/main/jniLibs
|
||||
DESKTOP_LIB_DIR=java/java/src/main/resources
|
||||
|
||||
export RUSTFLAGS="-C link-args=-s"
|
||||
|
||||
cd ..
|
||||
|
||||
cargo build -Z unstable-options -p libsignal-jni --release --target x86_64-unknown-linux-gnu --out-dir=$DESKTOP_LIB_DIR
|
||||
cargo ndk --target armv7-linux-androideabi --platform 19 -- build -Z unstable-options -p libsignal-jni --release --out-dir=$ANDROID_LIB_DIR/armeabi-v7a
|
||||
cargo ndk --target aarch64-linux-android --platform 21 -- build -Z unstable-options -p libsignal-jni --release --out-dir=$ANDROID_LIB_DIR/arm64-v8a
|
||||
cargo ndk --target i686-linux-android --platform 19 -- build -Z unstable-options -p libsignal-jni --release --out-dir=$ANDROID_LIB_DIR/x86
|
||||
cargo ndk --target x86_64-linux-android --platform 21 -- build -Z unstable-options -p libsignal-jni --release --out-dir=$ANDROID_LIB_DIR/x86_64
|
@ -156,5 +156,5 @@ artifacts {
|
||||
}
|
||||
|
||||
tasks.withType(JavaCompile) {
|
||||
compileTask -> compileTask.dependsOn ':makeDesktop'
|
||||
compileTask -> compileTask.dependsOn ':makeJniLibraries'
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user