From a19d07b3771af78bc0ef9233a89fc8821ea3e655 Mon Sep 17 00:00:00 2001 From: Aurelien Gateau Date: Mon, 28 Oct 2024 07:58:06 +0100 Subject: [PATCH 1/4] Improve Makefile - Nicer build targets - New targets: android-run and android-build - Systematic .PHONY declarations --- Makefile | 77 ++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 67 insertions(+), 10 deletions(-) diff --git a/Makefile b/Makefile index f399c5223..90415f914 100644 --- a/Makefile +++ b/Makefile @@ -38,6 +38,8 @@ ARCHIVE_DIR=$(CURDIR)/archives ANDROID_PACKAGE_NAME=com.agateau.tinywheels.android +ANDROID_FLAVOR=itchio + CONF_BACKUP_DIR=$(CURDIR)/.conf-backup # Install variables @@ -64,28 +66,51 @@ ifdef SNAPSHOT VERSION:=$(VERSION)+$(BRANCH)-$(shell git show --no-patch --format="%cd-%h" --date=format:%Y%m%dT%H%M%S) endif -all: build +all: desktop-build +# Clean +.PHONY: clean clean: clean-assets clean-desktop clean-tools +.PHONY: clean-desktop clean-desktop: rm -f $(DESKTOP_JAR) +.PHONY: clean-tools clean-tools: rm -f $(TOOLS_JAR) +# Build $(TOOLS_JAR): ${GRADLEW} tools:dist -build: +.PHONY: tools +tools: $(TOOLS_JAR) + +.PHONY: desktop-build +desktop-build: ${GRADLEW} desktop:dist -tools: $(TOOLS_JAR) +.PHONY: android-build +android-build: + $(GRADLEW) android:build + +# Run +.PHONY: run +run: desktop-run -run: build +.PHONY: desktop-run +desktop-run: desktop-build cd android/assets && java -jar $(DESKTOP_JAR) +.PHONY: android-run +android-run: android-build + adb uninstall $(ANDROID_PACKAGE_NAME) || true + adb install -f android/build/outputs/apk/$(ANDROID_FLAVOR)/debug/android-$(ANDROID_FLAVOR)-debug.apk + adb shell am start -n $(ANDROID_PACKAGE_NAME)/com.agateau.pixelwheels.android.AndroidLauncher + # Classic Unix `make install` target +.PHONY: install install: mkdir -p $(INSTALL_JAR_DIR) mkdir -p $(INSTALL_BIN_DIR) @@ -100,27 +125,34 @@ install: cp -a tools/packaging/linux/share/* $(INSTALL_SHARE_DIR) # Assets +.PHONY: packer packer: tools assets java -cp $(TOOLS_JAR) $(GAME_CP).tools.Packer +.PHONY: mapscreenshotgenerator mapscreenshotgenerator: tools java -cp $(TOOLS_JAR) $(GAME_CP).tools.MapScreenshotGenerator +.PHONY: vehiclethumbnailgenerator vehiclethumbnailgenerator: tools java -cp $(TOOLS_JAR) $(GAME_CP).tools.VehicleThumbnailGenerator tmp +.PHONY: assets assets: $(MAKE) -C core/assets-src +.PHONY: clean-assets clean-assets: $(MAKE) -C core/assets-src clean # Automatically regenerates assets when ase files are modified (requires the # `entr` command) +.PHONY: auto-assets auto-assets: find core/assets-src -name '*.ase' | entr $(MAKE) assets packer # Dist +.PHONY: desktop-archives desktop-archives: @rm -rf $(DIST_OUT_BASE_DIR) @mkdir -p $(DIST_OUT_BASE_DIR) @@ -132,6 +164,7 @@ desktop-archives: @mkdir -p $(ARCHIVE_DIR) mv -v $(DIST_OUT_BASE_DIR)/*.zip $(ARCHIVE_DIR) +.PHONY: apk-archives apk-archives: @echo Creating apk files @$(GRADLEW) android:assembleRelease @@ -141,21 +174,26 @@ apk-archives: mv android/build/outputs/apk/$$store/release/android-$$store-release.apk $(ARCHIVE_DIR)/$(EXECUTABLE)-$$store-$(VERSION).apk ; \ done +.PHONY: aab-archives aab-archives: @echo Creating aab @$(GRADLEW) bundleGPlayRelease @echo Moving aab file mv android/build/outputs/bundle/gplayRelease/android-gplay-release.aab $(ARCHIVE_DIR)/$(ANDROID_GPLAY_RUN_DIST_NAME).aab +.PHONY: desktop-dist +desktop-dist: assets packer check desktop-build desktop-archives -dist: assets packer check build desktop-archives apk-archives aab-archives - -desktop-dist: assets packer check build desktop-archives - +.PHONY: clean-desktop-dist clean-desktop-dist: clean desktop-dist +.PHONY: dist +dist: desktop-dist apk-archives aab-archives + +.PHONY: clean-dist clean-dist: clean dist +.PHONY: desktop-run-from-dist desktop-run-from-dist: @echo "This target only works on Linux right now" rm -rf tmp @@ -163,6 +201,7 @@ desktop-run-from-dist: unzip $(ARCHIVE_DIR)/$(DESKTOP_RUN_DIST_NAME).zip -d tmp tmp/$(DESKTOP_RUN_DIST_NAME)/pixelwheels +.PHONY: android-run-from-dist android-run-from-dist: # uninstall any existing version in case we have an unsigned version installed adb uninstall $(ANDROID_PACKAGE_NAME) || true @@ -170,36 +209,44 @@ android-run-from-dist: adb shell am start -n $(ANDROID_PACKAGE_NAME)/com.agateau.pixelwheels.android.AndroidLauncher # coding style +.PHONY: codingstyle-check codingstyle-check: tools/apply-codingstyle --check +.PHONY: codingstyle-apply codingstyle-apply: tools/apply-codingstyle # Tag +.PHONY: tag tag: git tag -f -m "Pixel Wheels $(VERSION)" $(VERSION) +.PHONY: tagpush tagpush: tag git push git push --tags # Uploading +.PHONY: fastlane-beta fastlane-beta: fastlane supply --track beta --aab $(ARCHIVE_DIR)/$(ANDROID_GPLAY_RUN_DIST_NAME).aab +.PHONY: upload upload: ci/upload-build pixelwheels \ $(ARCHIVE_DIR)/$(DIST_NAME)-*.zip \ $(ARCHIVE_DIR)/$(ANDROID_GPLAY_RUN_DIST_NAME).apk \ $(ARCHIVE_DIR)/$(ANDROID_ITCHIO_RUN_DIST_NAME).apk \ +.PHONY: butler-upload butler-upload: butler push --userversion $(VERSION) $(ARCHIVE_DIR)/$(DIST_NAME)-linux* agateau/pixelwheels:linux-stable butler push --userversion $(VERSION) $(ARCHIVE_DIR)/$(DIST_NAME)-mac* agateau/pixelwheels:macos-stable butler push --userversion $(VERSION) $(ARCHIVE_DIR)/$(DIST_NAME)-windows* agateau/pixelwheels:windows-stable butler push --userversion $(VERSION) $(ARCHIVE_DIR)/$(ANDROID_ITCHIO_RUN_DIST_NAME).apk agateau/pixelwheels:android-stable +.PHONY: gh-upload gh-upload: gh release create ${VERSION} \ -F .changes/${VERSION}.md \ @@ -209,11 +256,13 @@ gh-upload: ${ARCHIVE_DIR}/${ANDROID_ITCHIO_RUN_DIST_NAME}.apk # Cleaning conf +.PHONY: backup-desktop-conf backup-desktop-conf: mkdir -p $(CONF_BACKUP_DIR) cp ~/.config/agateau.com/pixelwheels.conf $(CONF_BACKUP_DIR) || true cp -R ~/.local/share/pixelwheels $(CONF_BACKUP_DIR) +.PHONY: restore-desktop-conf restore-desktop-conf: @if ! [ -d "$(CONF_BACKUP_DIR)" ] ; then echo "$(CONF_BACKUP_DIR) does not exist. No backup to restore."; exit 1; fi rm ~/.config/agateau.com/pixelwheels.conf @@ -221,26 +270,32 @@ restore-desktop-conf: cp $(CONF_BACKUP_DIR)/pixelwheels.conf ~/.config/agateau.com || true cp -R $(CONF_BACKUP_DIR)/pixelwheels ~/.local/share +.PHONY: clean-desktop-conf clean-desktop-conf: rm -f ~/.config/agateau.com/pixelwheels.conf rm -rf ~/.local/share/pixelwheels +.PHONY: clean-android-conf clean-android-conf: adb shell "pm clear $(ANDROID_PACKAGE_NAME)" # tests +.PHONY: check check: codingstyle-check po-check font-check @$(GRADLEW) check @$(GRADLEW) test +.PHONY: smoke-tests smoke-tests: smoke-tests-from-dist smoke-tests-from-install +.PHONY: smoke-tests-from-dist smoke-tests-from-dist: rm -rf tmp mkdir -p tmp unzip $(ARCHIVE_DIR)/$(DESKTOP_RUN_DIST_NAME).zip -d tmp tools/smoke-test tmp/$(DESKTOP_RUN_DIST_NAME)/pixelwheels +.PHONY: smoke-tests-from-install smoke-tests-from-install: rm -rf tmp mkdir -p tmp @@ -248,16 +303,18 @@ smoke-tests-from-install: tools/smoke-test tmp/usr/local/bin/pixelwheels # Translations +.PHONY: po-update po-update: tools/po-update +.PHONY: po-check po-check: tools/po-update --check +.PHONY: font-update font-update: tools/fonts/font-update +.PHONY: font-check font-check: tools/fonts/font-update --check - -.PHONY: desktop-dist apk-dist dist clean-dist tag tagpush fastlane-beta check tools build release-archives From ce1f454764049d4658e54c83524540c4b2d614c6 Mon Sep 17 00:00:00 2001 From: Aurelien Gateau Date: Wed, 11 Dec 2024 08:50:18 +0100 Subject: [PATCH 2/4] Fix deprecated warning when building Docker image --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index ac6e59092..3d43bb31c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -27,7 +27,7 @@ COPY ci/install-android-sdk /src RUN /src/install-android-sdk # Must match the value in ci/install-android-sdk -ENV ANDROID_SDK_ROOT /opt/android-sdk +ENV ANDROID_SDK_ROOT=/opt/android-sdk RUN git config --global --add safe.directory /src/pixelwheels From a981460f14414de25bcab018d9d152767180e7df Mon Sep 17 00:00:00 2001 From: Aurelien Gateau Date: Wed, 11 Dec 2024 08:50:58 +0100 Subject: [PATCH 3/4] Docker image: sync platform and build-tools with android/build.gradle --- ci/install-android-sdk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/install-android-sdk b/ci/install-android-sdk index f48b7e393..2feaeb64a 100755 --- a/ci/install-android-sdk +++ b/ci/install-android-sdk @@ -5,8 +5,8 @@ TOOLS_URL=https://dl.google.com/android/repository/commandlinetools-linux-685806 # Must match android/build.gradle PACKAGES=" -build-tools;31.0.0 -platforms;android-31 +build-tools;34.0.0 +platforms;android-34 " ANDROID_SDK=/opt/android-sdk From daccd104a96d8702985584f805af92080c2edf84 Mon Sep 17 00:00:00 2001 From: Aurelien Gateau Date: Wed, 11 Dec 2024 08:54:10 +0100 Subject: [PATCH 4/4] Docker image: fix java warning --- Dockerfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Dockerfile b/Dockerfile index 3d43bb31c..0d3fae301 100644 --- a/Dockerfile +++ b/Dockerfile @@ -29,6 +29,9 @@ RUN /src/install-android-sdk # Must match the value in ci/install-android-sdk ENV ANDROID_SDK_ROOT=/opt/android-sdk +# Define LANG to avoid javac warnings about UTF-8 characters in the source code +ENV LANG=C.UTF-8 + RUN git config --global --add safe.directory /src/pixelwheels WORKDIR /root