From 7eb3f62e2ea97fab63080e92ebf95a65c95714a1 Mon Sep 17 00:00:00 2001 Message-Id: <7eb3f62e2ea97fab63080e92ebf95a65c95714a1.1714191535.git.mdw@distorted.org.uk> From: Mark Wooding Date: Tue, 26 Jun 2018 11:09:00 +0100 Subject: [PATCH] Mostly autogenerating string resources. Organization: Straylight/Edgeware From: Mark Wooding --- AndroidManifest.xml | 4 ++-- Makefile | 48 ++++++++++++++++++++++++++++++++++++------ admin.scala | 2 +- res/values/strings.xml | 1 - 4 files changed, 45 insertions(+), 10 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 85cac4b..aaa3fc5 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -10,9 +10,9 @@ + android:label="@string/auto_package"> diff --git a/Makefile b/Makefile index c6a85ba..7982820 100644 --- a/Makefile +++ b/Makefile @@ -279,6 +279,9 @@ ext-stamp-builddir = \ ext-stamp-absprefix = $(call ext-absprefix,$(call stamp-type,$1)) ext-stamp-tool = $(call tool,$(call stamp-type,$1),$2) +$(foreach e,$(EXTERNALS),\ + $(eval $e_VERSION := $$(shell cd $$(call ext-srcdir,$e) && $$(abs_srcdir)/auto-version))) + EXTSTAMPS = $(call ext-stamps,$(EXTERNALS),$(FLAVOURS)) $(EXTSTAMPS): \ @@ -403,6 +406,35 @@ $(foreach a,$(APKLIBS), \ CLEANFILES += $(OUTDIR)/pkg/lib/*/lib*.so $(OUTDIR)/lib*.so +###-------------------------------------------------------------------------- +### Android string resource generation. + +GENSTRINGS += package=PACKAGE +GENSTRINGS += version=VERSION +GENSTRINGS += vsn=VSN + +$(foreach e,$(EXTERNALS),\ + $(eval GENSTRINGS += $e_version=$e_VERSION)) + +BUILD := $(shell uuid -v4) +GENSTRINGS += build_uuid=BUILD + +genstring-name = $(firstword $(subst =, ,$1)) +genstring-value = $($(word 2,$(subst =, ,$1))) + +define gen-strings + $(V_AT)mkdir -p $(dir $1) + $(call v_tag,GEN)set -e; rm -f $1.new; exec >$1.new; \ + echo ""; \ + echo ""; \ + $(foreach g,$(GENSTRINGS), \ + echo " $(call genstring-value,$g)";) \ + echo "" + $(V_AT)mv $1.new $1 +endef +$(OUTDIR)/res.dummy/values/auto.xml: Makefile + $(call gen-strings,$@) + ###-------------------------------------------------------------------------- ### Java and Scala building. @@ -483,12 +515,13 @@ CLEANFILES += $(OUTDIR)/*.apk AAPTFLAGS = \ --min-sdk-version $(MINAPI) --target-sdk-version $(TARGETAPI) \ - --version-name "$(VERSION)" --version-code $(VSN) + --version-name "$(VERSION)" --version-code $(VSN) --auto-add-overlay -$(OUTDIR)/src/R.java: AndroidManifest.xml +$(OUTDIR)/src/R.java: AndroidManifest.xml $(OUTDIR)/res.dummy/values/auto.xml $(V_AT)mkdir -p $(dir $@) $(call v_tag,AAPT)aapt package $(AAPTFLAGS) \ - -M AndroidManifest.xml -S res/ -I $(ANDROID_JAR) \ + -M AndroidManifest.xml -S res/ -S $(OUTDIR)/res.dummy/ \ + -I $(ANDROID_JAR) \ -J $(dir $@) --generate-dependencies CLEANFILES += $(OUTDIR)/src/R.java $(OUTDIR)/src/R.java.d -include $(OUTDIR)/src/R.java.d @@ -518,11 +551,14 @@ $(OUTDIR)/pkg/classes.dex: $(CLASSSTAMPS) $(DEXJARS) $(V_AT)mkdir -p $(dir $@) $(call v_tag,DX)dx --dex --output=$@ $(CLASSDIR) $(JARDIR) +$(OUTDIR)/res.volatile/values/auto.xml: $(INSTFILES) + $(call gen-strings,$@) + $(foreach v,$(VARIANTS),$(OUTDIR)/tripe-$v.unsigned.apk): \ -$(OUTDIR)/tripe-%.unsigned.apk: $(INSTFILES) +$(OUTDIR)/tripe-%.unsigned.apk: $(INSTFILES) $(OUTDIR)/res.volatile/values/auto.xml $(call v_tag,AAPT)aapt package -f $(AAPTFLAGS) $(AAPTFLAGS.$*) \ - -M AndroidManifest.xml -S res/ -I $(ANDROID_JAR) \ - -F $@ $(OUTDIR)/pkg/ + -M AndroidManifest.xml -S res/ -S $(OUTDIR)/res.volatile/ \ + -I $(ANDROID_JAR) -F $@ $(OUTDIR)/pkg/ $(foreach v,$(VARIANTS),$(OUTDIR)/tripe-$v.signed.apk): \ $(OUTDIR)/tripe-%.signed.apk: $(OUTDIR)/tripe-%.unsigned.apk $$(KEYSTORE.$$*) diff --git a/admin.scala b/admin.scala index 321fb56..9796cd9 100644 --- a/admin.scala +++ b/admin.scala @@ -113,7 +113,7 @@ object Connection extends Hook[AsyncMessage] override def next(): Seq[String] = { fetchNext(); nextmsg match { - case None => ??? + case None => unreachable; case Some(JobOK) => throw new NoSuchElementException; case Some(JobFail(msg)) => throw new CommandFailed(msg); case Some(JobLostConnection) => throw new ConnectionLostException; diff --git a/res/values/strings.xml b/res/values/strings.xml index ea80ce2..b2df1e1 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -1,7 +1,6 @@ - TrIPE Hello, world! OK -- [mdw]