mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-03-19 05:40:38 +01:00
[ion/sdl] Clean the Android build system
This commit is contained in:
@@ -6,10 +6,59 @@ $(call object_for,ion/src/sdl/shared/main.cpp) : SFLAGS += -DEPSILON_SDL_FULLSCR
|
||||
|
||||
LDFLAGS += -ljnigraphics -llog
|
||||
|
||||
ANDROID_LIB_PATH = ion/src/sdl/android/libs
|
||||
# If NDK_ABI is not defined, we will re-trigger a build for each avaialble ABI.
|
||||
# This is used to build APKs, which needs to embbed a binary for each ABI.
|
||||
|
||||
$(ANDROID_LIB_PATH)/%/libepsilon.so:
|
||||
ion/src/sdl/android/libs/%/libepsilon.so:
|
||||
$(Q) $(MAKE) MODEL=android NDK_ABI=$* clean
|
||||
$(Q) $(MAKE) MODEL=android NDK_ABI=$* epsilon.so
|
||||
$(Q) mv epsilon.so $@
|
||||
ifdef NDK_ABI
|
||||
|
||||
.PHONY: epsilon.apk
|
||||
epsilon.apk:
|
||||
echo "To make epsilon.apk, to not define NDK_ABI"
|
||||
|
||||
else
|
||||
|
||||
# Cross-ABI libepsilon.so
|
||||
# This file is loaded is loaded only once, which prevents us from tracking
|
||||
# dependencies across ABIs. As a shortcut, we simply force a re-make of
|
||||
# libepsilon.so for each ABI.
|
||||
|
||||
.PHONY: force_remake
|
||||
|
||||
$(BUILD_DIR)/app/libs/%/libepsilon.so: force_remake $$(@D)/.
|
||||
$(Q) echo "MAKE NDK_ABI=$*"
|
||||
$(Q) $(MAKE) NDK_ABI=$* epsilon.so
|
||||
$(Q) cp $(BUILD_DIR)/$*/epsilon.so $@
|
||||
|
||||
# Android resources
|
||||
# Some android resources needs to be filtered through ImageMagick. Others are
|
||||
# simply copied over.
|
||||
|
||||
$(BUILD_DIR)/app/res/mipmap/ic_launcher.png: ion/src/sdl/assets/logo.svg | $$(@D)/.
|
||||
@echo "CONVERT $@"
|
||||
$(Q) convert -background "#FFB734" $< $@
|
||||
|
||||
$(BUILD_DIR)/app/res/mipmap-v26/ic_launcher_foreground.png: ion/src/sdl/assets/logo.svg | $$(@D)/.
|
||||
@echo "CONVERT $@"
|
||||
$(Q) convert -background none $< -resize 512x512 -gravity center -background none -extent 1024x1024 $@
|
||||
|
||||
$(BUILD_DIR)/app/res/%: ion/src/sdl/android/src/res/% $$(@D)/.
|
||||
@echo "COPY $@"
|
||||
$(Q) cp $< $@
|
||||
|
||||
NDK_ABIS = arm64-v8a x86_64
|
||||
|
||||
epsilon_apk_deps = $(patsubst %,$(BUILD_DIR)/app/libs/%/libepsilon.so,$(NDK_ABIS))
|
||||
epsilon_apk_deps += $(subst ion/src/sdl/android/src/res,$(BUILD_DIR)/app/res,$(wildcard ion/src/sdl/android/src/res/*/*))
|
||||
epsilon_apk_deps += $(addprefix $(BUILD_DIR)/app/res/,mipmap/ic_launcher.png mipmap-v26/ic_launcher_foreground.png)
|
||||
|
||||
.PHONY: epsilon.apk
|
||||
epsilon.apk: $(epsilon_apk_deps)
|
||||
@echo "GRADLE ion/src/sdl/android/build.gradle"
|
||||
$(Q) ANDROID_HOME=/usr/local/android gradle -b ion/src/sdl/android/build.gradle assembleRelease
|
||||
|
||||
.PHONY: epsilon_run
|
||||
epsilon_run: $(epsilon_apk_deps)
|
||||
@echo "GRADLE ion/src/sdl/android/build.gradle"
|
||||
$(Q) ANDROID_HOME=/usr/local/android gradle -b ion/src/sdl/android/build.gradle installDebug
|
||||
|
||||
endif
|
||||
|
||||
@@ -34,13 +34,13 @@ android {
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
||||
proguardFiles getDefaultProguardFile('proguard-android.txt')
|
||||
}
|
||||
}
|
||||
sourceSets{
|
||||
main {
|
||||
manifest.srcFile 'src/AndroidManifest.xml'
|
||||
res.srcDir 'src/res'
|
||||
res.srcDir BUILD_DIR + '/res'
|
||||
java.srcDir 'src'
|
||||
jniLibs.srcDir BUILD_DIR + '/libs'
|
||||
assets.srcDir '../assets'
|
||||
|
||||
5
ion/src/sdl/android/src/res/mipmap-v26/ic_launcher.xml
Normal file
5
ion/src/sdl/android/src/res/mipmap-v26/ic_launcher.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/yellow" />
|
||||
<foreground android:drawable="@mipmap/ic_launcher_foreground" />
|
||||
</adaptive-icon>
|
||||
5
ion/src/sdl/android/src/res/values/colors.xml
Normal file
5
ion/src/sdl/android/src/res/values/colors.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="yellow">#FFB734</color>
|
||||
<color name="lightGray">#F7F7F7</color>
|
||||
</resources>
|
||||
3
ion/src/sdl/android/src/res/values/strings.xml
Normal file
3
ion/src/sdl/android/src/res/values/strings.xml
Normal file
@@ -0,0 +1,3 @@
|
||||
<resources>
|
||||
<string name="app_name">NumWorks</string>
|
||||
</resources>
|
||||
3
ion/src/sdl/assets/logo.svg
Normal file
3
ion/src/sdl/assets/logo.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024">
|
||||
<path d="M744.7 189c-27.1 0-49.2 20.1-49.2 44.8v431.8l-369.8-457c-9.9-12.2-25.9-19.6-42.7-19.6-29.2 0-53 21.5-53 47.9v553.3c0 24.7 22.1 44.8 49.3 44.8 27.1 0 49.2-20.1 49.2-44.8V358.6l369.9 458.2c9.2 11.4 24 18.2 39.7 18.2h6.7c27.1 0 49.2-20.1 49.2-44.8V233.8c0-24.7-22.1-44.8-49.3-44.8z" fill="#fff" stroke="none" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 392 B |
@@ -1,22 +0,0 @@
|
||||
# Makefile is loaded for a single architecture at once. If NDK_ABI is not
|
||||
# defined, we assume we want to build all of them. But in that case, we cannot
|
||||
# track per-ABI dependencies. So as a shortcut, we force a re-make of each ABI.
|
||||
|
||||
.PHONY: force_rebuild_libepsilon
|
||||
|
||||
$(BUILD_DIR)/app/libs/%/libepsilon.so: force_rebuild_libepsilon $$(@D)/.
|
||||
$(Q) echo "MAKE NDK_ABI=$*"
|
||||
$(Q) $(MAKE) NDK_ABI=$* epsilon.so
|
||||
$(Q) cp $(BUILD_DIR)/$*/epsilon.so $@
|
||||
|
||||
NDK_ABIS = arm64-v8a x86_64
|
||||
|
||||
.PHONY: epsilon.apk
|
||||
epsilon.apk: $(patsubst %,$(BUILD_DIR)/app/libs/%/libepsilon.so,$(NDK_ABIS))
|
||||
@echo "GRADLE ion/src/sdl/android/build.gradle"
|
||||
$(Q) ANDROID_HOME=/usr/local/android gradle -b ion/src/sdl/android/build.gradle assembleRelease
|
||||
|
||||
.PHONY: epsilon_run
|
||||
epsilon_run: $(patsubst %,$(BUILD_DIR)/app/libs/%/libepsilon.so,$(NDK_ABIS))
|
||||
@echo "GRADLE ion/src/sdl/android/build.gradle"
|
||||
$(Q) ANDROID_HOME=/usr/local/android gradle -b ion/src/sdl/android/build.gradle installDebug
|
||||
Reference in New Issue
Block a user