From f2074457a427cfd452c68f19da2f19f7d220e675 Mon Sep 17 00:00:00 2001 From: Sergii Pylypenko Date: Tue, 3 Sep 2019 21:20:27 +0300 Subject: [PATCH] OpenTTD JGR: updated build files --- .../openttd-jgrpp/AndroidAppSettings.cfg | 17 ++++---- .../application/openttd-jgrpp/AndroidBuild.sh | 25 ++++++++--- .../AndroidData/openttd-1.4.0.30.cfg | 9 ---- .../jni/application/openttd-jgrpp/build-pc.sh | 12 ++++-- .../jni/application/openttd-jgrpp/java.patch | 41 +++++++++++-------- .../application/openttd-jgrpp/pack-data.sh | 2 +- .../jni/application/openttd-jgrpp/readme.txt | 4 +- project/jni/application/openttd-jgrpp/src | 2 +- 8 files changed, 65 insertions(+), 47 deletions(-) diff --git a/project/jni/application/openttd-jgrpp/AndroidAppSettings.cfg b/project/jni/application/openttd-jgrpp/AndroidAppSettings.cfg index 95321a7e2..47d66bcfd 100644 --- a/project/jni/application/openttd-jgrpp/AndroidAppSettings.cfg +++ b/project/jni/application/openttd-jgrpp/AndroidAppSettings.cfg @@ -7,10 +7,10 @@ AppName="OpenTTD JGR" AppFullName=org.openttd.jgrpp # Application version code (integer) -AppVersionCode=025281 +AppVersionCode=031500 # Application user-visible version name (string) -AppVersionName="0.25.2.81" +AppVersionName="0.31.5" # 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 @@ -20,7 +20,7 @@ AppVersionName="0.25.2.81" # You can specify Google Play expansion files in the form 'obb:main.12345' or 'obb:patch.12345' where 12345 is the app version for obb file # 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 - 20 Mb|openttd-data-0.25.2-0.zip.xz^!!Config file|:.openttd/openttd.cfg:openttd-1.4.0.30.cfg^!!MIDI music support (18 Mb)|timidity.zip.xz|http://sourceforge.net/projects/libsdl-android/files/timidity.zip.xz^!!Internationalization files|icudt59l.zip.xz|http://sourceforge.net/projects/libsdl-android/files/icudt59l.zip.xz" +AppDataDownloadUrl="!!Data files|openttd-data-0.31.5-0.zip.xz^!!MIDI music support|GeneralUser-GS-v1.471.sf2.zip.xz^!!Internationalization files|icudt62l.zip.xz" # Reset SDL config when updating application to the new version (y) / (n) ResetSdlConfigForThisVersion=y @@ -40,7 +40,7 @@ ScreenOrientation=h # Video color depth - 16 BPP is the fastest and supported for all modes, 24 bpp is supported only # with SwVideoMode=y, SDL_OPENGL mode supports everything. (16)/(24)/(32) -VideoDepthBpp=16 +VideoDepthBpp=24 # Enable OpenGL depth buffer (needed only for 3-d applications, small speed decrease) (y) or (n) NeedDepthBuffer=n @@ -269,12 +269,13 @@ APP_PLATFORM= # Specify architectures to compile, 'all' or 'y' to compile for all architectures. # Available architectures: armeabi-v7a arm64-v8a x86 x86_64 -MultiABI='arm64-v8a armeabi-v7a x86 x86_64' +MultiABI='arm64-v8a' +#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 -CompiledLibraries="c++_shared jpeg png freetype timidity expat fontconfig lzma lzo2 icui18n iculx icu-le-hb harfbuzz icudata icuuc" +CompiledLibraries="c++_shared jpeg png freetype fluidsynth expat fontconfig lzma lzo2 icui18n iculx icu-le-hb harfbuzz icudata icuuc" # Application uses custom build script AndroidBuild.sh instead of Android.mk (y) or (n) CustomBuildScript=y @@ -298,7 +299,7 @@ AppSubdirsBuild='' AppBuildExclude='' # Application command line parameters, including app name as 0-th param -AppCmdline='openttd -d 0 -b 16bpp-simple' +AppCmdline='openttd -d 1' # Screen size is used by Google Play to prevent an app to be installed on devices with smaller screens # Minimum screen size that application supports: (s)mall / (m)edium / (l)arge @@ -314,7 +315,7 @@ AdmobTestDeviceId= AdmobBannerSize= # Google Play Game Services application ID, required for cloud saves to work -GooglePlayGameServicesId=942284197278 +GooglePlayGameServicesId= # The app will open files with following extension, file path will be added to commandline params AppOpenFileExtension='' diff --git a/project/jni/application/openttd-jgrpp/AndroidBuild.sh b/project/jni/application/openttd-jgrpp/AndroidBuild.sh index 46708442c..57f40afe5 100755 --- a/project/jni/application/openttd-jgrpp/AndroidBuild.sh +++ b/project/jni/application/openttd-jgrpp/AndroidBuild.sh @@ -12,19 +12,34 @@ CPU_TYPE=32 [ "$ARCH" = "arm64-v8a" ] && CPU_TYPE=64 [ "$ARCH" = "x86_64" ] && CPU_TYPE=64 -[ -e openttd-$VER-$1/objs/lang/english.lng ] || { - sh -c "cd openttd-$VER-$1 && ../src/configure --without-freetype --without-png --without-zlib --without-lzo2 --without-lzma --cpu-type=$CPU_TYPE && make lang && make -C objs/release endian_target.h depend && make -C objs/setting" || exit 1 - rm -f openttd-$VER-$1/Makefile +[ -e openttd-$VER-$1/bin/baseset/orig_extra.grf ] || { + mkdir -p openttd-$VER-$1/bin + cp -a src/bin/baseset openttd-$VER-$1/bin/ } || exit 1 +#[ -e openttd-$VER-$1/objs/lang/english.lng ] || { +# sh -c "cd openttd-$VER-$1 && ../src/configure --without-freetype --without-png --without-zlib \ +# --without-lzo2 --without-lzma --cpu-type=$CPU_TYPE && \ +# make lang && make -C objs/release endian_target.h depend && make -C objs/setting" || exit 1 +# rm -f openttd-$VER-$1/Makefile +#} || exit 1 + [ -e openttd-$VER-$1/Makefile ] || { rm -f src/src/rev.cpp env PATH=$LOCAL_PATH/..:$PATH \ - env CLANG=1 ../setEnvironment-$1.sh sh -c "cd openttd-$VER-$1 && env ../src/configure --with-sdl --with-freetype --with-png --with-zlib --with-icu --with-libtimidity='pkg-config libtimidity' --with-lzo2=$LOCAL_PATH/../../../obj/local/$ARCH/liblzo2.so --prefix-dir='.' --data-dir='' --without-allegro --with-fontconfig --with-lzma --cpu-type=$CPU_TYPE" + env LDFLAGS=-L$LOCAL_PATH/../../../obj/local/$ARCH \ + env CFLAGS_BUILD="-I." \ + env CXXFLAGS_BUILD="-I." \ + env LDFLAGS_BUILD="-L." \ + env ANDROID=1 \ + env CLANG=1 ../setEnvironment-$1.sh sh -c "cd openttd-$VER-$1 && env ../src/configure \ + --with-sdl --with-freetype --with-png --with-zlib --with-icu --with-fluidsynth \ + --with-lzo2=$LOCAL_PATH/../../../obj/local/$ARCH/liblzo2.so --prefix-dir='.' --data-dir='' \ + --without-allegro --with-fontconfig --with-lzma --cpu-type=$CPU_TYPE --os=unix --cc-build=gcc --cxx-build=g++ --without-sse" } || exit 1 NCPU=4 uname -s | grep -i "linux" > /dev/null && NCPU=`cat /proc/cpuinfo | grep -c -i processor` -env CLANG=1 ../setEnvironment-$1.sh sh -c "cd openttd-$VER-$1 && make -j$NCPU VERBOSE=1 STRIP='' "' LIBS="-lsdl-1.2 -llzo2 -lpng -ltimidity -lfontconfig -lfreetype -lexpat-sdl -licui18n -liculx -licu-le-hb -lharfbuzz -licuuc -licudata $LDFLAGS"' && cp -f openttd-$VER-$1/objs/release/openttd libapplication-$1.so || exit 1 +env CLANG=1 ../setEnvironment-$1.sh sh -c "cd openttd-$VER-$1 && make -j$NCPU VERBOSE=1 STRIP='' " && cp -f openttd-$VER-$1/objs/release/openttd libapplication-$1.so || exit 1 diff --git a/project/jni/application/openttd-jgrpp/AndroidData/openttd-1.4.0.30.cfg b/project/jni/application/openttd-jgrpp/AndroidData/openttd-1.4.0.30.cfg index 17b4a40e3..cfc1cf831 100644 --- a/project/jni/application/openttd-jgrpp/AndroidData/openttd-1.4.0.30.cfg +++ b/project/jni/application/openttd-jgrpp/AndroidData/openttd-1.4.0.30.cfg @@ -1,5 +1,4 @@ [misc] -resolution = 854,480 small_font = fonts/Roboto-Bold.ttf medium_font = fonts/Roboto-Bold.ttf large_font = fonts/DroidSerif-Bold.ttf @@ -12,14 +11,6 @@ small_aa = true medium_aa = true large_aa = true mono_aa = true -min_button_size = 48 -min_step_size = 48 [gui] -left_mouse_btn_scrolling = true osk_activation = disabled -auto_scrolling = 0 -reverse_scroll = true -windows_titlebars = false -windows_decorations = true -compact_vertical_toolbar = true diff --git a/project/jni/application/openttd-jgrpp/build-pc.sh b/project/jni/application/openttd-jgrpp/build-pc.sh index 3eeb0d9bd..2bf100df6 100755 --- a/project/jni/application/openttd-jgrpp/build-pc.sh +++ b/project/jni/application/openttd-jgrpp/build-pc.sh @@ -5,23 +5,27 @@ LOCAL_PATH=`cd $LOCAL_PATH && pwd` mkdir -p openttd-pc openttd-pc/baseset cd openttd-pc -ln -s ../src/src . [ -e bin/baseset ] || cp -a ../src/bin ./ [ -e bin/fonts ] || cp -a ../data/fonts bin/ +mkdir -p src +ln -sf ../../src/src/stdafx.h src/ export CFLAGS=-O0 export CXXFLAGS=-O0 -[ -e Makefile ] || ../src/configure --enable-debug || exit 1 +[ -e Makefile ] || ../src/configure --enable-debug --with-fluidsynth || exit 1 make -j8 VERBOSE=1 || exit 1 cd bin export LD_LIBRARY_PATH=/usr/local/lib if [ -z "$1" ]; then - ./openttd -d 2 -r 854x480 -g opntitle.sav + ./openttd -d 0 -m null -g opntitle.sav +elif [ -n "$2" ]; then + valgrind --track-fds=yes --log-file=../../valgrind.log --leak-check=full \ + ./openttd -d 0 -m null # -g opntitle.sav else #valgrind --track-fds=yes --log-file=valgrind.log --leak-check=full \ gdb -ex run --args \ - ./openttd -d 2 -r 854x480 -g opntitle.sav + ./openttd -d 0 -m null -g opntitle.sav fi diff --git a/project/jni/application/openttd-jgrpp/java.patch b/project/jni/application/openttd-jgrpp/java.patch index 36461031f..bd97d87db 100644 --- a/project/jni/application/openttd-jgrpp/java.patch +++ b/project/jni/application/openttd-jgrpp/java.patch @@ -1,20 +1,27 @@ diff --git a/project/java/Settings.java b/project/java/Settings.java -index 9e6150a41..77e84dce4 100644 +index 4467879a0..1de0689c2 100644 --- a/project/java/Settings.java +++ b/project/java/Settings.java -@@ -521,6 +521,15 @@ public class Settings - for( String sdpath: SdcardAppPath.get().allPaths(p) ) - deleteRecursivelyAndLog(new File(sdpath + "/" + path )); - } -+ // Hack to save old config file, which is gettign corrupted on app update -+ try { -+ String cmd = "cp " + Globals.DataDir + "/.openttd/openttd.cfg " + Globals.DataDir + "/.openttd/openttd-backup.cfg"; -+ Log.i("SDL", "==============="); -+ Log.i("SDL", cmd); -+ int ret = Runtime.getRuntime().exec(cmd).waitFor(); -+ Log.i("SDL", "Status: " + String.valueOf(ret)); -+ Log.i("SDL", "==============="); -+ } catch (Exception e) { } - } - public static void DeleteSdlConfigOnUpgradeAndRestart(final MainActivity p) - { +@@ -532,6 +532,9 @@ public class Settings + } catch ( IOException e ) { } + new File( p.getFilesDir() + "/" + SettingsFileName ).delete(); + ++ // Kill it with vengeance and unload all shared libraries ++ android.os.Process.killProcess(android.os.Process.myPid()); ++ + Intent intent = new Intent(p, RestartMainActivity.class); + p.startActivity(intent); + System.exit(0); +diff --git a/project/java/Globals.java b/project/java/Globals.java +index 8c7017d8a..9ba3a16f7 100644 +--- a/project/java/Globals.java ++++ b/project/java/Globals.java +@@ -119,7 +119,7 @@ class Globals + public static int MoveMouseWithGyroscopeSpeed = 2; + public static boolean ClickMouseWithDpad = false; + public static boolean RelativeMouseMovement = ForceRelativeMouseMode; // Laptop touchpad mode +- public static boolean ForceHardwareMouse = false; ++ public static boolean ForceHardwareMouse = true; + public static int RelativeMouseMovementSpeed = 2; + public static int RelativeMouseMovementAccel = 0; + public static int ShowScreenUnderFinger = Mouse.ZOOM_NONE; diff --git a/project/jni/application/openttd-jgrpp/pack-data.sh b/project/jni/application/openttd-jgrpp/pack-data.sh index a23ab79e5..dbdfda8cf 100755 --- a/project/jni/application/openttd-jgrpp/pack-data.sh +++ b/project/jni/application/openttd-jgrpp/pack-data.sh @@ -1,6 +1,6 @@ #!/bin/sh -VER=0.25.2-0 +VER=0.31.5-0 cd data rm -f ../AndroidData/openttd-data-*.zip.xz ../AndroidData/openttd-data-*.zip diff --git a/project/jni/application/openttd-jgrpp/readme.txt b/project/jni/application/openttd-jgrpp/readme.txt index 9b011ea13..64ea2fbf4 100644 --- a/project/jni/application/openttd-jgrpp/readme.txt +++ b/project/jni/application/openttd-jgrpp/readme.txt @@ -1,6 +1,6 @@ Quick compilation guide: -Install liblzma-dev, it's needed for configure script -sudo apt-get install liblzma-dev +Install liblzma-dev and libfluidsynth-dev, it's needed for broken configure script +sudo apt-get install liblzma-dev libfluidsynth-dev Download my Git repo from https://github.com/pelya/commandergenius, then install Android SDK, Android NDK, then launch commands git submodule update --init --recursive diff --git a/project/jni/application/openttd-jgrpp/src b/project/jni/application/openttd-jgrpp/src index 93b57bda7..e9d456f03 160000 --- a/project/jni/application/openttd-jgrpp/src +++ b/project/jni/application/openttd-jgrpp/src @@ -1 +1 @@ -Subproject commit 93b57bda7dd43aa04b5954c7c59a6cad51c2a801 +Subproject commit e9d456f0330ba6b8e9dd11c6bd8027568333a88a