From 86aa68b95a173b108a0b62026b1def2d6307f7c9 Mon Sep 17 00:00:00 2001 From: Miguel Horta Date: Sat, 6 Apr 2024 01:30:11 +0100 Subject: [PATCH] WIP prepare for v14.0 --- .gitmodules | 2 +- build.sh | 3 ++- changeAppSettings.sh | 3 ++- .../jni/application/openttd/AndroidAppSettings.cfg | 13 +++++++------ project/jni/application/openttd/AndroidBuild.sh | 7 +++++++ project/jni/application/openttd/pack-data.sh | 2 +- project/jni/application/openttd/src | 2 +- project/jni/curl/Android.mk | 4 +++- project/jni/jpeg/include | 1 + 9 files changed, 25 insertions(+), 12 deletions(-) create mode 120000 project/jni/jpeg/include diff --git a/.gitmodules b/.gitmodules index d12399641..ab49220b6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -6,7 +6,7 @@ [submodule "project/jni/application/openttd/src"] path = project/jni/application/openttd/src url = https://github.com/n-ice-community/openttd-android.git - branch = 13 + branch = 14 [submodule "project/jni/sdl2"] path = project/jni/sdl2 url = https://github.com/libsdl-org/SDL.git diff --git a/build.sh b/build.sh index 8c90e596d..ad2a8fc00 100755 --- a/build.sh +++ b/build.sh @@ -2,6 +2,7 @@ # Handle any error or die set -e +set -x THIS_BUILD_DIR=$(dirname "$0") install_apk=false @@ -133,7 +134,7 @@ if [ -x project/jni/application/src/AndroidPreBuild.sh ]; then fi if grep -q 'CustomBuildScript=y' ./AndroidAppSettings.cfg; then - ${ANDROID_NDK_HOME}/ndk-build -C project -j$NCPU V=1 CUSTOM_BUILD_SCRIPT_FIRST_PASS=1 NDK_APP_STRIP_MODE=none + NDK_LOG=1 ${ANDROID_NDK_HOME}/ndk-build -C project -j$NCPU V=1 CUSTOM_BUILD_SCRIPT_FIRST_PASS=1 NDK_APP_STRIP_MODE=none make -C project/jni/application -f CustomBuildScript.mk fi diff --git a/changeAppSettings.sh b/changeAppSettings.sh index 898569eec..632e0fe60 100755 --- a/changeAppSettings.sh +++ b/changeAppSettings.sh @@ -1,6 +1,7 @@ #!/usr/bin/env bash set -e +set -x AUTO=a CHANGED= JAVA_SRC_PATH=project/java @@ -904,7 +905,7 @@ if [ -z "$ANDROID_NDK_HOME" ]; then echo "Set ANDROID_NDK_HOME env variable, or put ndk-build into your PATH" exit 1 fi -NDK_VER=$(echo ${ANDROID_NDK_HOME} | grep -Eo '[^/]+$') +NDK_VER=$(grep -Po "(?<=Pkg.Revision = )[0-9.]+" ${ANDROID_NDK_HOME}/source.properties) cat project/app/build-template.gradle | \ sed 's/applicationId .*/applicationId "'"${AppFullName}"'"/' | \ diff --git a/project/jni/application/openttd/AndroidAppSettings.cfg b/project/jni/application/openttd/AndroidAppSettings.cfg index 28ec6e9b7..a96c583d3 100644 --- a/project/jni/application/openttd/AndroidAppSettings.cfg +++ b/project/jni/application/openttd/AndroidAppSettings.cfg @@ -4,13 +4,13 @@ AppName="OpenTTD" # Specify reversed site name of application (e.x. com.mysite.myapp) -AppFullName=org.openttd.sdl +AppFullName=org.openttd.fdroid # Application version code (integer) -AppVersionCode=1340120 +AppVersionCode=1400125 # Application user-visible version name (string) -AppVersionName="13.4.rev120" +AppVersionName="14.0.rev125" # Specify path to download application data in zip archive in the form "Description|URL|MirrorURL^Description2|URL2|MirrorURL2^...' # If you'll start Description with '!' symbol it will be enabled by default, '!!' will also hide the entry from the menu, so it cannot be disabled @@ -22,7 +22,7 @@ AppVersionName="13.4.rev120" # The mount directory will be returned by calling getenv("ANDROID_OBB_MOUNT_DIR") # You can use .zip.xz archives for better compression, but you need to add 'lzma' to CompiledLibraries # Generate .zip.xz files like this: zip -0 -r data.zip your-data/* ; xz -8 data.zip -AppDataDownloadUrl="!!Data files|openttd-data-13.4-0.zip.xz^!!Config file|:.openttd/openttd.cfg:openttd-1.4.0.30.cfg^!!!!MIDI music support|timidity.zip.xz^!!Internationalization files|icudt62l.zip.xz^!!Fonts|openttd-fonts.zip.xz" +AppDataDownloadUrl="!!Data files|openttd-data-14.0-0.zip.xz^!!Config file|:.openttd/openttd.cfg:openttd-1.4.0.30.cfg^!!!!MIDI music support|timidity.zip.xz^!!Internationalization files|icudt62l.zip.xz^!!Fonts|openttd-fonts.zip.xz" # Reset SDL config when updating application to the new version (y) / (n) ResetSdlConfigForThisVersion=y @@ -255,6 +255,7 @@ StartupMenuButtonTimeout=1500 # Menu items to hide from startup menu, available menu items (SDL 1.2 only): # SettingsMenu.OkButton SettingsMenu.DummyMenu SettingsMenu.MainMenu SettingsMenuMisc.DownloadConfig SettingsMenuMisc.OptionalDownloadConfig SettingsMenuMisc.AudioConfig SettingsMenuMisc.VideoSettingsConfig SettingsMenuMisc.ShowReadme SettingsMenuMisc.GyroscopeCalibration SettingsMenuMisc.StorageAccessConfig SettingsMenuMisc.CommandlineConfig SettingsMenuMisc.ResetToDefaultsConfig SettingsMenuMouse.MouseConfigMainMenu SettingsMenuMouse.DisplaySizeConfig SettingsMenuMouse.LeftClickConfig SettingsMenuMouse.RightClickConfig SettingsMenuMouse.AdditionalMouseConfig SettingsMenuMouse.JoystickMouseConfig SettingsMenuMouse.TouchPressureMeasurementTool SettingsMenuMouse.CalibrateTouchscreenMenu SettingsMenuKeyboard.KeyboardConfigMainMenu SettingsMenuKeyboard.ScreenKeyboardSizeConfig SettingsMenuKeyboard.ScreenKeyboardDrawSizeConfig SettingsMenuKeyboard.ScreenKeyboardThemeConfig SettingsMenuKeyboard.ScreenKeyboardTransparencyConfig SettingsMenuKeyboard.RemapHwKeysConfig SettingsMenuKeyboard.RemapScreenKbConfig SettingsMenuKeyboard.ScreenGesturesConfig SettingsMenuKeyboard.CustomizeScreenKbLayout SettingsMenuKeyboard.ScreenKeyboardAdvanced + HiddenMenuOptions='SettingsMenuMouse.DisplaySizeConfig' # Menu items to show at startup - this is Java code snippet, leave empty for default @@ -277,13 +278,13 @@ APP_PLATFORM=19 # Specify architectures to compile, 'all' or 'y' to compile for all architectures. # Available architectures: armeabi-v7a arm64-v8a x86 x86_64 -MultiABI='armeabi-v7a arm64-v8a x86 x86_64' +MultiABI='arm64-v8a armeabi-v7a x86 x86_64' # Optional shared libraries to compile - removing some of them will save space # MP3 patents are expired, but libmad license is GPL, not LGPL # Available libraries: mad (GPL-ed!) sdl_mixer sdl_image sdl_ttf sdl_net sdl_blitpool sdl_gfx sdl_sound intl xml2 lua jpeg png ogg flac tremor vorbis freetype xerces curl theora fluidsynth lzma lzo2 mikmod openal timidity zzip bzip2 yaml-cpp python boost_date_time boost_filesystem boost_iostreams boost_program_options boost_regex boost_signals boost_system boost_thread glu avcodec avdevice avfilter avformat avresample avutil swscale swresample bzip2 # rep 'Available' project/jni/SettingsTemplate.mk -CompiledLibraries="c++_shared timidity expat fontconfig lzma lzo2 icui18n iculx icu-le-hb harfbuzz icudata icuuc" +CompiledLibraries="c++_shared timidity expat fontconfig lzma lzo2 icui18n iculx icu-le-hb harfbuzz icudata icuuc crypto ssl curl" # Application uses custom build script AndroidBuild.sh instead of Android.mk (y) or (n) CustomBuildScript=y diff --git a/project/jni/application/openttd/AndroidBuild.sh b/project/jni/application/openttd/AndroidBuild.sh index ab22c85ec..05f00ae18 100755 --- a/project/jni/application/openttd/AndroidBuild.sh +++ b/project/jni/application/openttd/AndroidBuild.sh @@ -56,6 +56,13 @@ export ARCH=$1 fontconfig) TARGET=Fontconfig ;; + harfbuzz) + TARGET=Harfbuzz + ;; + curl) + # Different .so file name to avoid linking to system libexpat.so + LIB_FILE=curl-sdl + ;; icui18n|iculx|icuuc|icudata|icule|icuio) TARGET="ICU_`echo $LIB | sed 's/icu//'`" echo "set(PC_${TARGET}_INCLUDE_DIRS $LOCAL_PATH/../../$LIB/include)" >> $CMAKE_SDL diff --git a/project/jni/application/openttd/pack-data.sh b/project/jni/application/openttd/pack-data.sh index 176942d69..d47223c3a 100755 --- a/project/jni/application/openttd/pack-data.sh +++ b/project/jni/application/openttd/pack-data.sh @@ -2,7 +2,7 @@ set -e -VER=13.4-0 +VER=14.0-0 ARCH=$1 ANDROID_DATA_FULLPATH=$(realpath ./AndroidData/) diff --git a/project/jni/application/openttd/src b/project/jni/application/openttd/src index 78ead2fe8..f312cf0f9 160000 --- a/project/jni/application/openttd/src +++ b/project/jni/application/openttd/src @@ -1 +1 @@ -Subproject commit 78ead2fe8d8fe22286f3b67cee0f5cabbc6ac482 +Subproject commit f312cf0f91e9aa878e5511ee5b0aa91aab7fc408 diff --git a/project/jni/curl/Android.mk b/project/jni/curl/Android.mk index 7446b81ce..17765923a 100644 --- a/project/jni/curl/Android.mk +++ b/project/jni/curl/Android.mk @@ -69,7 +69,9 @@ CURL_HEADERS := \ typecheck-gcc.h # Hide libcurl from the project if openssl is not compiled -ifneq ($(filter ssl, $(APP_MODULES)),) +ifeq ($(filter ssl, $(APP_MODULES)),) +$(info Curl requires a SSL library, but none included.) +else LOCAL_SRC_FILES := $(addprefix lib/,$(CSOURCES)) LOCAL_C_INCLUDES := $(LOCAL_PATH)/include/ $(LOCAL_PATH)/lib $(LOCAL_PATH)/../openssl/include diff --git a/project/jni/jpeg/include b/project/jni/jpeg/include new file mode 120000 index 000000000..e4cd2fd6a --- /dev/null +++ b/project/jni/jpeg/include @@ -0,0 +1 @@ +../sdl2_image/external/jpeg \ No newline at end of file