Move makefile and docker file into java subdir

This commit is contained in:
Jack Lloyd
2020-11-06 15:54:59 -05:00
parent 3c8d85211b
commit dd57254f8f
7 changed files with 36 additions and 13 deletions

5
.dockerignore Normal file
View File

@@ -0,0 +1,5 @@
/target
/java/build
/java/android/build
/java/java/build
/java/tests/build

View File

@@ -69,7 +69,7 @@ RUN rustup target add armv7-linux-androideabi aarch64-linux-android i686-linu
# Pre-download Gradle.
COPY java/gradle gradle
COPY java/gradlew .
COPY java/gradlew gradlew
RUN ./gradlew --version
RUN echo "${RUST_TOOLCHAIN}" > rust-toolchain

View File

@@ -12,17 +12,17 @@ default: java_build
DOCKER_IMAGE := libsignal-builder
docker_image:
$(DOCKER) build --build-arg UID=$$(id -u) --build-arg GID=$$(id -g) -t $(DOCKER_IMAGE) .
cd .. && $(DOCKER) build --build-arg UID=$$(id -u) --build-arg GID=$$(id -g) -t $(DOCKER_IMAGE) -f java/Dockerfile .
java_build: DOCKER_EXTRA=$(shell [ -L build ] && P=$$(readlink build) && echo -v $$P/:$$P )
java_build: docker_image
$(DOCKER) run --rm --user $$(id -u):$$(id -g) \
-v `pwd`/:/home/libsignal/src $(DOCKER_EXTRA) $(DOCKER_IMAGE) \
-v `cd .. && pwd`/:/home/libsignal/src $(DOCKER_EXTRA) $(DOCKER_IMAGE) \
sh -c "cp rust-toolchain src/; cd src/java; ./gradlew build"
java_test: java_build
$(DOCKER) run --rm --user $$(id -u):$$(id -g) \
-v `pwd`/:/home/libsignal/src $(DOCKER_EXTRA) $(DOCKER_IMAGE) \
-v `cd .. && pwd`/:/home/libsignal/src $(DOCKER_EXTRA) $(DOCKER_IMAGE) \
sh -c "cp rust-toolchain src/; cd src/java; ./gradlew test"
SONATYPE_USERNAME ?=
@@ -41,7 +41,7 @@ publish_java: docker_image
@[ -n "$(SIGNING_KEY)" ] || ( echo "SIGNING_KEY is not set" && false )
@[ -n "$(SIGNING_KEY_PASSWORD)" ] || ( echo "SIGNING_KEY_PASSWORD is not set" && false )
$(DOCKER) run --rm --user $$(id -u):$$(id -g) \
-v `pwd`/:/home/libsignal/src $(DOCKER_EXTRA) \
-v `cd .. && pwd`/:/home/libsignal/src $(DOCKER_EXTRA) \
-v $(KEYRING_VOLUME):/home/libsignal/keyring \
$(DOCKER_IMAGE) \
sh -c "cp rust-toolchain src; cd src/java; ./gradlew uploadArchives \

View File

@@ -128,3 +128,6 @@ task installArchives(type: Upload) {
}
}
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn ':makeJniLibrariesAndroid'
}

View File

@@ -11,11 +11,18 @@ subprojects {
}
}
task makeJniLibraries(type:Exec) {
task makeJniLibrariesAndroid(type:Exec) {
group 'Rust'
description 'Build the JNI libraries'
commandLine './build_jni.sh'
commandLine './build_jni.sh', 'android'
}
task makeJniLibrariesDesktop(type:Exec) {
group 'Rust'
description 'Build the JNI libraries'
commandLine './build_jni.sh', 'desktop'
}
task makeAll() {

View File

@@ -13,8 +13,16 @@ export RUSTFLAGS="-C link-args=-s"
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
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
else
echo "Unknown target (use 'desktop' or 'android')"
fi

View File

@@ -156,5 +156,5 @@ artifacts {
}
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn ':makeJniLibraries'
compileTask -> compileTask.dependsOn ':makeJniLibrariesDesktop'
}