2020-11-04 23:37:41 +01:00
|
|
|
#
|
|
|
|
# Copyright (C) 2020 Signal Messenger, LLC.
|
|
|
|
# SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
#
|
|
|
|
|
|
|
|
DOCKER ?= docker
|
|
|
|
|
2024-05-31 20:36:18 +02:00
|
|
|
.PHONY: docker java_build publish_java
|
2020-11-04 23:37:41 +01:00
|
|
|
|
|
|
|
default: java_build
|
|
|
|
|
|
|
|
DOCKER_IMAGE := libsignal-builder
|
2022-08-23 21:42:03 +02:00
|
|
|
DOCKER_TTY_FLAG := $$(test -t 0 && echo -it)
|
2024-07-31 19:07:54 +02:00
|
|
|
CROSS_COMPILE_SERVER ?= -PcrossCompileServer
|
2020-11-04 23:37:41 +01:00
|
|
|
|
|
|
|
docker_image:
|
2020-11-06 21:54:59 +01:00
|
|
|
cd .. && $(DOCKER) build --build-arg UID=$$(id -u) --build-arg GID=$$(id -g) -t $(DOCKER_IMAGE) -f java/Dockerfile .
|
2020-11-04 23:37:41 +01:00
|
|
|
|
|
|
|
java_build: DOCKER_EXTRA=$(shell [ -L build ] && P=$$(readlink build) && echo -v $$P/:$$P )
|
|
|
|
java_build: docker_image
|
2022-08-23 21:42:03 +02:00
|
|
|
$(DOCKER) run $(DOCKER_TTY_FLAG) --init --rm --user $$(id -u):$$(id -g) \
|
2024-04-16 23:34:34 +02:00
|
|
|
--env LIBSIGNAL_TESTING_ENCLAVE_SECRET \
|
2024-03-01 02:26:35 +01:00
|
|
|
-v `cd .. && pwd`/:/home/libsignal/src $(DOCKER_EXTRA) $(DOCKER_IMAGE) \
|
2024-07-31 19:07:54 +02:00
|
|
|
sh -c "cd src/java; ./gradlew build $(CROSS_COMPILE_SERVER)"
|
2020-11-04 23:37:41 +01:00
|
|
|
|
|
|
|
publish_java: DOCKER_EXTRA = $(shell [ -L build ] && P=$$(readlink build) && echo -v $$P/:$$P )
|
2020-11-05 18:05:47 +01:00
|
|
|
publish_java: docker_image
|
2020-11-04 23:37:41 +01:00
|
|
|
$(DOCKER) run --rm --user $$(id -u):$$(id -g) \
|
2020-11-06 21:54:59 +01:00
|
|
|
-v `cd .. && pwd`/:/home/libsignal/src $(DOCKER_EXTRA) \
|
2023-08-24 02:10:47 +02:00
|
|
|
-e ORG_GRADLE_PROJECT_sonatypeUsername \
|
|
|
|
-e ORG_GRADLE_PROJECT_sonatypePassword \
|
|
|
|
-e ORG_GRADLE_PROJECT_signingKeyId \
|
|
|
|
-e ORG_GRADLE_PROJECT_signingPassword \
|
|
|
|
-e ORG_GRADLE_PROJECT_signingKey \
|
2020-11-04 23:37:41 +01:00
|
|
|
$(DOCKER_IMAGE) \
|
2024-07-31 19:07:54 +02:00
|
|
|
sh -c "cd src/java; ./gradlew publish closeAndReleaseSonatypeStagingRepository $(CROSS_COMPILE_SERVER)"
|
2023-08-24 02:10:47 +02:00
|
|
|
|
|
|
|
# We could run these through Docker, but they would have the same result anyway.
|
|
|
|
|
|
|
|
clean:
|
|
|
|
./gradlew clean
|
2023-08-22 18:15:23 +02:00
|
|
|
|
|
|
|
format_java:
|
|
|
|
./gradlew spotlessApply
|