mirror of
https://github.com/zapstore/zapstore.git
synced 2026-10-05 12:38:24 +00:00
104 lines
3.2 KiB
Makefile
104 lines
3.2 KiB
Makefile
GRADLE ?= ./gradlew
|
|
ANDROID_SDK_ROOT ?= $(ANDROID_HOME)
|
|
ADB ?= $(ANDROID_SDK_ROOT)/platform-tools/adb
|
|
PACKAGE ?= dev.zapstore.beta
|
|
ACTIVITY ?= dev.zapstore.app.MainActivity
|
|
KEYSTORE ?= release.keystore
|
|
KEYSTORE_PASSWORD ?=
|
|
KEY_ALIAS ?=
|
|
KEY_PASSWORD ?= $(KEYSTORE_PASSWORD)
|
|
DEBUG_KEYSTORE ?= $(HOME)/.android/debug.keystore
|
|
|
|
ASSETS_CATALOG_BUNDLE := src/main/assets/bundle-0-1.tar.zst
|
|
RELAY_PORT := 3334
|
|
|
|
.PHONY: build release install run run-release deploy refresh vendor unbundle-catalog
|
|
|
|
# Drop leftover seeds so a build without CATALOG_BUNDLE does not package them.
|
|
unbundle-catalog:
|
|
rm -f "$(ASSETS_CATALOG_BUNDLE)" src/main/assets/catalog-delta.tar.zst
|
|
|
|
ifeq ($(CATALOG_BUNDLE),)
|
|
build install release: unbundle-catalog
|
|
else
|
|
.PHONY: $(ASSETS_CATALOG_BUNDLE)
|
|
$(ASSETS_CATALOG_BUNDLE):
|
|
@test -f "$(CATALOG_BUNDLE)" || { echo "CATALOG_BUNDLE not found: $(CATALOG_BUNDLE)" >&2; exit 1; }
|
|
@mkdir -p src/main/assets
|
|
cp "$(CATALOG_BUNDLE)" "$@"
|
|
|
|
build install release: $(ASSETS_CATALOG_BUNDLE)
|
|
endif
|
|
|
|
# Rebuild libarti_android.so into src/main/jniLibs/arm64-v8a.
|
|
# Needs rustup, the cargo-ndk / NDK versions pinned under tools/arti-build/,
|
|
# and a later commit of the produced .so files.
|
|
vendor:
|
|
./tools/arti-build/build-arti.sh
|
|
$(GRADLE) verifyArtiAbis
|
|
|
|
build:
|
|
$(GRADLE) assembleDebug
|
|
|
|
release:
|
|
@if [ -f "$(KEYSTORE)" ]; then \
|
|
store="$(abspath $(KEYSTORE))"; \
|
|
pass="$(KEYSTORE_PASSWORD)"; \
|
|
alias="$(KEY_ALIAS)"; \
|
|
keypass="$(KEY_PASSWORD)"; \
|
|
if [ -z "$$pass" ] || [ -z "$$alias" ]; then \
|
|
echo "Found $$store; set KEYSTORE_PASSWORD and KEY_ALIAS to sign the release build."; \
|
|
exit 1; \
|
|
fi; \
|
|
else \
|
|
echo "No $(KEYSTORE); signing release with the Android debug certificate"; \
|
|
store="$(DEBUG_KEYSTORE)"; \
|
|
if [ ! -f "$$store" ]; then \
|
|
mkdir -p "$$(dirname "$$store")"; \
|
|
keytool -genkeypair -keystore "$$store" \
|
|
-storepass android -keypass android \
|
|
-alias androiddebugkey -keyalg RSA -keysize 2048 -validity 10000 \
|
|
-dname "CN=Android Debug,O=Android,C=US"; \
|
|
fi; \
|
|
pass=android; \
|
|
alias=androiddebugkey; \
|
|
keypass=android; \
|
|
fi; \
|
|
$(GRADLE) assembleRelease \
|
|
-Pandroid.injected.signing.store.file="$$store" \
|
|
-Pandroid.injected.signing.store.password="$$pass" \
|
|
-Pandroid.injected.signing.key.alias="$$alias" \
|
|
-Pandroid.injected.signing.key.password="$$keypass"
|
|
|
|
run-release: release
|
|
@$(ADB) reverse tcp:$(RELAY_PORT) tcp:$(RELAY_PORT) || true
|
|
$(ADB) install -r --no-incremental build/outputs/apk/release/zapstore-release.apk
|
|
$(ADB) shell am force-stop $(PACKAGE)
|
|
$(ADB) shell am start -n $(PACKAGE)/$(ACTIVITY)
|
|
|
|
install:
|
|
$(GRADLE) installDebug
|
|
$(ADB) shell pm clear $(PACKAGE)
|
|
|
|
run: install
|
|
@$(ADB) reverse tcp:$(RELAY_PORT) tcp:$(RELAY_PORT) || true
|
|
@$(ADB) shell am force-stop $(PACKAGE)
|
|
@$(ADB) shell am start -n $(PACKAGE)/$(ACTIVITY)
|
|
@if [ -t 0 ]; then \
|
|
while :; do \
|
|
printf "\nPress r to rebuild and reload, or q to quit: "; \
|
|
IFS= read -r -n 1 key; \
|
|
printf "\n"; \
|
|
case "$$key" in \
|
|
q) break ;; \
|
|
r) $(GRADLE) installDebug && $(ADB) shell am force-stop $(PACKAGE) && $(ADB) shell am start -n $(PACKAGE)/$(ACTIVITY) ;; \
|
|
esac; \
|
|
done; \
|
|
fi
|
|
|
|
deploy: run
|
|
|
|
refresh:
|
|
$(ADB) shell am force-stop $(PACKAGE)
|
|
$(ADB) shell am start -n $(PACKAGE)/$(ACTIVITY)
|