0
0
mirror of https://github.com/signalapp/libsignal.git synced 2024-09-20 03:52:17 +02:00

Java: get local tests working on Mac as well

This commit is contained in:
Jordan Rose 2020-12-08 14:40:30 -08:00
parent 64ee8d34ef
commit d05089e6e8
3 changed files with 27 additions and 15 deletions

View File

@ -33,6 +33,20 @@ check_rust() {
fi
}
# usage: copy_built_library target/release signal_node out_dir/libsignal_node.node
# copy_built_library target/release signal_jni out_dir/
copy_built_library() {
for possible_library_name in "lib$2.dylib" "lib$2.so" "$2.dll"; do
possible_library_path="$1/${possible_library_name}"
if [ -e "${possible_library_path}" ]; then
out_dir=$(dirname "$3"x) # trailing x to distinguish directories from files
echo_then_run mkdir -p "${out_dir}"
echo_then_run cp "${possible_library_path}" "$3"
break
fi
done
}
echo_then_run() {
echo "$@"
"$@"

View File

@ -5,6 +5,12 @@
# SPDX-License-Identifier: AGPL-3.0-only
#
set -euo pipefail
SCRIPT_DIR=$(dirname "$0")
cd "${SCRIPT_DIR}"/..
. bin/build_helpers.sh
# These paths are relative to the root directory
ANDROID_LIB_DIR=java/android/src/main/jniLibs
DESKTOP_LIB_DIR=java/java/src/main/resources
@ -12,17 +18,16 @@ DESKTOP_LIB_DIR=java/java/src/main/resources
export RUSTFLAGS="-C link-args=-s"
export CARGO_PROFILE_RELEASE_DEBUG=1 # enable line tables
cd .. || exit
if [ "$1" = 'desktop' ];
then
cargo build -Z unstable-options -p libsignal-jni --release --target x86_64-unknown-linux-gnu --out-dir=$DESKTOP_LIB_DIR
echo_then_run cargo build -p libsignal-jni --release
copy_built_library target/release signal_jni $DESKTOP_LIB_DIR/
elif [ "$1" = 'android' ];
then
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
echo_then_run cargo ndk --target armv7-linux-androideabi --platform 19 -- build -Z unstable-options -p libsignal-jni --release --out-dir=$ANDROID_LIB_DIR/armeabi-v7a
echo_then_run cargo ndk --target aarch64-linux-android --platform 21 -- build -Z unstable-options -p libsignal-jni --release --out-dir=$ANDROID_LIB_DIR/arm64-v8a
echo_then_run cargo ndk --target i686-linux-android --platform 19 -- build -Z unstable-options -p libsignal-jni --release --out-dir=$ANDROID_LIB_DIR/x86
echo_then_run cargo ndk --target x86_64-linux-android --platform 21 -- build -Z unstable-options -p libsignal-jni --release --out-dir=$ANDROID_LIB_DIR/x86_64
else
echo "Unknown target (use 'desktop' or 'android')"
fi

View File

@ -63,11 +63,4 @@ check_rust
echo_then_run cargo build -p libsignal-node ${CARGO_PROFILE_ARG}
for possible_library_name in libsignal_node.dylib libsignal_node.so signal_node.dll; do
possible_library_path="${CARGO_BUILD_TARGET_DIR:-target}/${CARGO_BUILD_TARGET:-}/${CARGO_PROFILE_DIR}/${possible_library_name}"
if [ -e "${possible_library_path}" ]; then
echo_then_run mkdir -p "${OUT_DIR}"
echo_then_run cp "${possible_library_path}" "${OUT_DIR}"/libsignal_client.node
break
fi
done
copy_built_library "${CARGO_BUILD_TARGET_DIR:-target}/${CARGO_BUILD_TARGET:-}/${CARGO_PROFILE_DIR}" signal_node "${OUT_DIR}"/libsignal_client.node