mirror of
https://github.com/zapstore/zapstore.git
synced 2026-10-05 20:48:24 +00:00
101 lines
3.2 KiB
Makefile
101 lines
3.2 KiB
Makefile
GRADLE ?= ./gradlew
|
|
ANDROID_SDK_ROOT ?= $(ANDROID_HOME)
|
|
ADB ?= $(ANDROID_SDK_ROOT)/platform-tools/adb
|
|
AVDMANAGER ?= $(ANDROID_SDK_ROOT)/cmdline-tools/latest/bin/avdmanager
|
|
EMULATOR ?= $(ANDROID_SDK_ROOT)/emulator/emulator
|
|
AVD_NAME ?= Pixel_9
|
|
SYSTEM_IMAGE ?= system-images;android-35;google_apis;arm64-v8a
|
|
AVD_HOME ?= $(HOME)/.android/avd
|
|
AVD_CONFIG ?= $(AVD_HOME)/$(AVD_NAME).avd/config.ini
|
|
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
|
|
|
|
ZSP_CATALOG_DB ?= ../zsp/testdata/catalog/catalog.db
|
|
ASSETS_CATALOG_DB := src/main/assets/catalog.db
|
|
|
|
.PHONY: build release install run deploy refresh emulator bundle-catalog
|
|
|
|
bundle-catalog: $(ASSETS_CATALOG_DB)
|
|
|
|
$(ASSETS_CATALOG_DB): $(ZSP_CATALOG_DB)
|
|
@mkdir -p src/main/assets
|
|
cp "$(ZSP_CATALOG_DB)" "$@"
|
|
|
|
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"
|
|
|
|
install:
|
|
$(GRADLE) installDebug
|
|
|
|
run: install
|
|
@$(ADB) reverse tcp:3334 tcp:3334 || true
|
|
@$(ADB) reverse tcp:3336 tcp:3336 || 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)
|
|
|
|
emulator:
|
|
@if ! $(AVDMANAGER) list avd -c | tr -d '\r' | awk '$$0 == "$(AVD_NAME)" { found=1 } END { exit !found }'; then \
|
|
echo "Creating Android Virtual Device $(AVD_NAME)..."; \
|
|
echo no | $(AVDMANAGER) create avd -n "$(AVD_NAME)" -k "$(SYSTEM_IMAGE)" -d pixel_9 --force; \
|
|
fi
|
|
@if [ -f "$(AVD_CONFIG)" ]; then \
|
|
if grep -qE '^hw\.keyboard[[:space:]]*=[[:space:]]*no' "$(AVD_CONFIG)"; then \
|
|
sed -i '' 's/^hw\.keyboard[[:space:]]*=[[:space:]]*no/hw.keyboard = yes/' "$(AVD_CONFIG)"; \
|
|
elif ! grep -qE '^hw\.keyboard' "$(AVD_CONFIG)"; then \
|
|
echo 'hw.keyboard = yes' >> "$(AVD_CONFIG)"; \
|
|
fi; \
|
|
fi
|
|
$(EMULATOR) -avd "$(AVD_NAME)"
|