Add the ability to override Android package id;

This commit is contained in:
bjorn 2021-02-09 21:19:29 -07:00
parent b343f50f1c
commit 51485f613c
4 changed files with 12 additions and 2 deletions

View File

@ -642,10 +642,14 @@ elseif(ANDROID)
set(ANDROID_MANIFEST "${CMAKE_CURRENT_SOURCE_DIR}/src/resources/AndroidManifest_${MANIFEST}.xml" CACHE STRING "The AndroidManifest.xml file to use")
if (ANDROID_KEYSTORE_PASS) # Trick so that --ks-pass is not passed if no password is given.
if(ANDROID_KEYSTORE_PASS) # Trick so that --ks-pass is not passed if no password is given.
set(ANDROID_APKSIGNER_KEYSTORE_PASS --ks-pass)
endif()
if(ANDROID_PACKAGE)
set(PACKAGE_RENAME "--rename-manifest-package ${ANDROID_PACKAGE}")
endif()
# Make an apk
add_custom_target(
buildAPK ALL
@ -658,6 +662,7 @@ elseif(ANDROID)
COMMAND
${ANDROID_TOOLS}/aapt
package -f
${PACKAGE_RENAME}
-0 so
-M AndroidManifest.xml
-I ${ANDROID_JAR}

View File

@ -85,7 +85,7 @@ ifeq ($(PLATFORM),android)
: $(JAR) $(EXTRA_JARS) |> !dx |> $(DEX)
# aapt
: $(MANIFEST) | $(LIB)/*.so $(DEX) |> ^ AAPT %b^ aapt package -F %o -M %f -0 so -I $(ANDROID_JAR) bin/apk $(ANDROID_ASSETS) |> bin/.lovr.unaligned.apk
: $(MANIFEST) | $(LIB)/*.so $(DEX) |> ^ AAPT %b^ aapt package $(PACKAGE_RENAME) -F %o -M %f -0 so -I $(ANDROID_JAR) bin/apk $(ANDROID_ASSETS) |> bin/.lovr.unaligned.apk
# align n sign
: bin/.lovr.unaligned.apk |> !zipalign |> bin/.lovr.unsigned.apk

View File

@ -100,6 +100,9 @@ ifeq ($(PLATFORM),android)
ifneq (@(ANDROID_MANIFEST),)
ANDROID_MANIFEST_y = @(ANDROID_MANIFEST)
endif
ifneq (@(ANDROID_PACKAGE),)
PACKAGE_RENAME = --rename-manifest-package @(ANDROID_PACKAGE)
endif
ifneq (@(ANDROID_ASSETS),)
ANDROID_ASSETS = -A @(ANDROID_ASSETS)
endif

View File

@ -60,6 +60,7 @@ CONFIG_LUAJIT=y
# ANDROID_KEYSTORE: The path to the keystore (use keytool to generate)
# ANDROID_KEYSTORE_PASS: The keystore password (use either pass:<string>, env:<var>, or file:<path>)
# ANDROID_MANIFEST: Optional path to a custom Android manifest file (xml)
# ANDROID_PACKAGE: Optional package id override (default is org.lovr.app, taken from manifest)
# ANDROID_ASSETS: Optional path to a folder to embed as the assets folder of the apk
CONFIG_ANDROID_SDK=
CONFIG_ANDROID_NDK=
@ -69,4 +70,5 @@ CONFIG_ANDROID_HOST_TAG=
CONFIG_ANDROID_KEYSTORE=
CONFIG_ANDROID_KEYSTORE_PASS=
CONFIG_ANDROID_MANIFEST=
CONFIG_ANDROID_PACKAGE=
CONFIG_ANDROID_ASSETS=