# # Copyright (C) 2020 Signal Messenger, LLC. # SPDX-License-Identifier: AGPL-3.0-only # DOCKER ?= docker .PHONY: docker java_build publish_java default: java_build DOCKER_IMAGE := libsignal-builder DOCKER_TTY_FLAG := $$(test -t 0 && echo -it) GRADLE_OPTIONS ?= --dependency-verification strict CROSS_COMPILE_SERVER ?= -PcrossCompileServer 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 $(DOCKER_TTY_FLAG) --init --rm --user $$(id -u):$$(id -g) \ --env LIBSIGNAL_TESTING_RUN_NONHERMETIC_TESTS \ --env LIBSIGNAL_TESTING_IGNORE_KT_TESTS \ --env LIBSIGNAL_TESTING_PROXY_SERVER \ -v `cd .. && pwd`/:/home/libsignal/src $(DOCKER_EXTRA) $(DOCKER_IMAGE) \ sh -c "cd src/java; ./gradlew $(GRADLE_OPTIONS) build $(CROSS_COMPILE_SERVER)" publish_java: DOCKER_EXTRA = $(shell [ -L build ] && P=$$(readlink build) && echo -v $$P/:$$P ) publish_java: docker_image $(DOCKER) run --rm --user $$(id -u):$$(id -g) \ -v `cd .. && pwd`/:/home/libsignal/src $(DOCKER_EXTRA) \ -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 \ $(DOCKER_IMAGE) \ sh -c "cd src/java; ./gradlew $(GRADLE_OPTIONS) publish closeAndReleaseStagingRepositories $(CROSS_COMPILE_SERVER)" # We could run these through Docker, but they would have the same result anyway. clean: ./gradlew clean format_java: ./gradlew spotlessApply