Files
scummvm/backends/platform/android/android.mk
T
Le Philousophe 7ad5218e5a ANDROID: Add ability to build a fat bundle
This bundle contains all architectures.
To build it, a base architecture must be configured and the build
process will invoke the make process for all other architectures in
different subfolders.
Then, the bundle will be made with all libraries merged in the base
build directory.
2024-11-12 22:43:57 +01:00

125 lines
5.1 KiB
Makefile

# Android specific build targets
PATH_DIST = $(srcdir)/dists/android
GRADLE_FILES = $(shell find $(PATH_DIST)/gradle -type f)
PATH_BUILD = ./android_project
PATH_BUILD_GRADLE = $(PATH_BUILD)/gradle/.timestamp $(PATH_BUILD)/gradlew $(PATH_BUILD)/build.gradle $(PATH_BUILD)/settings.gradle $(PATH_BUILD)/mainAssets/build.gradle $(PATH_BUILD)/gradle.properties $(PATH_BUILD)/local.properties $(PATH_BUILD)/src.properties
PATH_BUILD_ASSETS = $(PATH_BUILD)/mainAssets/src/main/assets
PATH_BUILD_LIB = $(PATH_BUILD)/lib/$(ABI)
PATH_BUILD_LIBSCUMMVM = $(PATH_BUILD)/lib/$(ABI)/libscummvm.so
APK_MAIN = ScummVM-debug.apk
APK_MAIN_RELEASE = ScummVM-release-unsigned.apk
AAB_MAIN_RELEASE = ScummVM-release.aab
DIST_FILES_PLATFORM = $(PATH_DIST)/android-help.zip $(PATH_DIST)/gamepad.svg
$(PATH_BUILD):
$(MKDIR) $(PATH_BUILD)
$(PATH_BUILD)/gradle/.timestamp: $(GRADLE_FILES) | $(PATH_BUILD)
$(MKDIR) $(PATH_BUILD)/gradle
$(CP) -r $(PATH_DIST)/gradle/. $(PATH_BUILD)/gradle/
touch "$@"
$(PATH_BUILD)/gradlew: $(PATH_DIST)/gradlew | $(PATH_BUILD)
$(INSTALL) -c -m 755 $< $@
$(PATH_BUILD)/build.gradle: $(PATH_DIST)/build.gradle | $(PATH_BUILD)
$(INSTALL) -c -m 644 $< $@
$(PATH_BUILD)/settings.gradle: $(PATH_DIST)/settings.gradle | $(PATH_BUILD)
$(INSTALL) -c -m 644 $< $@
$(PATH_BUILD)/gradle.properties: $(PATH_DIST)/gradle.properties | $(PATH_BUILD)
$(INSTALL) -c -m 644 $< $@
$(PATH_BUILD)/local.properties: configure.stamp | $(PATH_BUILD)
$(ECHO) "sdk.dir=$(realpath $(ANDROID_SDK_ROOT))\n" > $(PATH_BUILD)/local.properties
$(PATH_BUILD)/src.properties: configure.stamp | $(PATH_BUILD)
$(ECHO) "srcdir=$(realpath $(srcdir))\n" > $(PATH_BUILD)/src.properties
$(PATH_BUILD)/mainAssets/build.gradle: $(PATH_DIST)/mainAssets.gradle | $(PATH_BUILD_ASSETS)
$(INSTALL) -c -m 644 $< $@
$(PATH_BUILD_ASSETS): $(DIST_FILES_THEMES) $(DIST_FILES_ENGINEDATA) $(DIST_FILES_ENGINEDATA_BIG) $(DIST_FILES_SOUNDFONTS) $(DIST_FILES_NETWORKING) $(DIST_FILES_VKEYBD) $(DIST_FILES_DOCS) $(DIST_FILES_PLATFORM) $(DIST_FILES_SHADERS) | $(PATH_BUILD)
$(INSTALL) -d $(PATH_BUILD_ASSETS)
$(INSTALL) -c -m 644 $(DIST_FILES_THEMES) $(DIST_FILES_ENGINEDATA) $(DIST_FILES_ENGINEDATA_BIG) $(DIST_FILES_SOUNDFONTS) $(DIST_FILES_NETWORKING) $(DIST_FILES_VKEYBD) $(DIST_FILES_DOCS) $(DIST_FILES_PLATFORM) $(PATH_BUILD_ASSETS)/
ifneq ($(DIST_FILES_SHADERS),)
$(INSTALL) -d $(PATH_BUILD_ASSETS)/shaders
$(INSTALL) -c -m 644 $(DIST_FILES_SHADERS) $(PATH_BUILD_ASSETS)/shaders
endif
ifdef DIST_ANDROID_CACERT_PEM
$(PATH_BUILD_ASSETS)/cacert.pem: $(DIST_ANDROID_CACERT_PEM) | $(PATH_BUILD_ASSETS)
$(INSTALL) -c -m 644 $(DIST_ANDROID_CACERT_PEM) $(PATH_BUILD_ASSETS)/cacert.pem
else
ifdef USE_CURL
$(PATH_BUILD_ASSETS)/cacert.pem: | $(PATH_BUILD_ASSETS)
$(QUIET_CURL)$(CURL) -s https://curl.se/ca/cacert.pem --time-cond $(PATH_BUILD_ASSETS)/cacert.pem --output $(PATH_BUILD_ASSETS)/cacert.pem
androidcacert: | $(PATH_BUILD_ASSETS)
$(QUIET_CURL)$(CURL) -s https://curl.se/ca/cacert.pem --time-cond $(PATH_BUILD_ASSETS)/cacert.pem --output $(PATH_BUILD_ASSETS)/cacert.pem
.PHONY: androidcacert
endif
endif
$(PATH_BUILD_LIBSCUMMVM): libscummvm.so | $(PATH_BUILD)
$(INSTALL) -d $(PATH_BUILD_LIB)
$(INSTALL) -c -m 644 libscummvm.so $(PATH_BUILD_LIBSCUMMVM)
$(APK_MAIN): $(PATH_BUILD_GRADLE) $(PATH_BUILD_ASSETS) $(PATH_BUILD_ASSETS)/cacert.pem $(PATH_BUILD_LIBSCUMMVM) | $(PATH_BUILD)
(cd $(PATH_BUILD); ./gradlew assembleDebug)
$(CP) $(PATH_BUILD)/build/outputs/apk/debug/$(APK_MAIN) $@
$(APK_MAIN_RELEASE): $(PATH_BUILD_GRADLE) $(PATH_BUILD_ASSETS) $(PATH_BUILD_ASSETS)/cacert.pem $(PATH_BUILD_LIBSCUMMVM) | $(PATH_BUILD)
(cd $(PATH_BUILD); ./gradlew assembleRelease)
$(CP) $(PATH_BUILD)/build/outputs/apk/release/$(APK_MAIN_RELEASE) $@
$(AAB_MAIN_RELEASE): $(PATH_BUILD_GRADLE) $(PATH_BUILD_ASSETS) $(PATH_BUILD_ASSETS)/cacert.pem $(PATH_BUILD_LIBSCUMMVM) | $(PATH_BUILD)
(cd $(PATH_BUILD); ./gradlew bundleRelease -PsplitAssets)
$(CP) $(PATH_BUILD)/build/outputs/bundle/release/$(AAB_MAIN_RELEASE) $@
all: $(APK_MAIN)
clean: androidclean
# SUBPATH_BUILDS is set in fatbundle.mk
androidclean:
@$(RM) -rf $(PATH_BUILD) $(SUBPATH_BUILDS) *.apk
androidrelease: $(APK_MAIN_RELEASE)
androidbundlerelease: $(AAB_MAIN_RELEASE)
androidtestmain: $(APK_MAIN)
(cd $(PATH_BUILD); ./gradlew installDebug)
# $(ADB) install -g -r $(APK_MAIN)
# $(ADB) shell am start -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -n org.scummvm.scummvm/.ScummVMActivity
androidtest: $(APK_MAIN)
# @set -e; for apk in $^; do \
# $(ADB) install -g -r $$apk; \
# done
# $(ADB) shell am start -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -n org.scummvm.scummvm/.ScummVMActivity
(cd $(PATH_BUILD); ./gradlew installDebug)
# used by buildbot!
androiddistdebug: all
$(MKDIR) debug
$(CP) $(APK_MAIN) debug/
for i in $(DIST_FILES_DOCS); do \
sed 's/$$/\r/' < $$i > debug/`basename $$i`.txt; \
done
androiddistrelease: androidrelease
$(MKDIR) release
$(CP) $(APK_MAIN_RELEASE) release/
for i in $(DIST_FILES_DOCS); do \
sed 's/$$/\r/' < $$i > release/`basename $$i`.txt; \
done
.PHONY: androidrelease androidbundlerelease androidtest $(PATH_BUILD_SRC)
include $(srcdir)/backends/platform/android/fatbundle.mk