Fixed legacy VCMI, it crashes when loading a map

This commit is contained in:
pelya
2013-01-06 01:47:04 +02:00
parent 591746e2ea
commit a38aa86208
5 changed files with 890 additions and 841 deletions

View File

@@ -662,6 +662,7 @@ echo CompatibilityHacksStaticInit=$CompatibilityHacksStaticInit >> AndroidAppSet
echo CompatibilityHacksTextInputEmulatesHwKeyboard=$CompatibilityHacksTextInputEmulatesHwKeyboard >> AndroidAppSettings.cfg echo CompatibilityHacksTextInputEmulatesHwKeyboard=$CompatibilityHacksTextInputEmulatesHwKeyboard >> AndroidAppSettings.cfg
echo CompatibilityHacksPreventAudioChopping=$CompatibilityHacksPreventAudioChopping >> AndroidAppSettings.cfg echo CompatibilityHacksPreventAudioChopping=$CompatibilityHacksPreventAudioChopping >> AndroidAppSettings.cfg
echo CompatibilityHacksAppIgnoresAudioBufferSize=$CompatibilityHacksAppIgnoresAudioBufferSize >> AndroidAppSettings.cfg echo CompatibilityHacksAppIgnoresAudioBufferSize=$CompatibilityHacksAppIgnoresAudioBufferSize >> AndroidAppSettings.cfg
echo CompatibilityHacksAdditionalPreloadedSharedLibraries=\"$CompatibilityHacksAdditionalPreloadedSharedLibraries\" >> AndroidAppSettings.cfg
echo AppUsesMouse=$AppUsesMouse >> AndroidAppSettings.cfg echo AppUsesMouse=$AppUsesMouse >> AndroidAppSettings.cfg
echo AppNeedsTwoButtonMouse=$AppNeedsTwoButtonMouse >> AndroidAppSettings.cfg echo AppNeedsTwoButtonMouse=$AppNeedsTwoButtonMouse >> AndroidAppSettings.cfg
echo ShowMouseCursor=$ShowMouseCursor >> AndroidAppSettings.cfg echo ShowMouseCursor=$ShowMouseCursor >> AndroidAppSettings.cfg
@@ -879,7 +880,7 @@ fi
LibrariesToLoad="\\\"sdl-$LibSdlVersion\\\"" LibrariesToLoad="\\\"sdl-$LibSdlVersion\\\""
StaticLibraries=`grep 'APP_AVAILABLE_STATIC_LIBS' project/jni/SettingsTemplate.mk | sed 's/.*=\(.*\)/\1/'` StaticLibraries=`grep 'APP_AVAILABLE_STATIC_LIBS' project/jni/SettingsTemplate.mk | sed 's/.*=\(.*\)/\1/'`
for lib in $CompiledLibraries; do for lib in $CompiledLibraries $CompatibilityHacksAdditionalPreloadedSharedLibraries; do
process=true process=true
for lib1 in $StaticLibraries; do for lib1 in $StaticLibraries; do
if [ "$lib" = "$lib1" ]; then process=false; fi if [ "$lib" = "$lib1" ]; then process=false; fi

View File

@@ -35,7 +35,7 @@ RedefinedKeysScreenKb="0 1 2 3 4 5 6 7 8 9"
StartupMenuButtonTimeout=3000 StartupMenuButtonTimeout=3000
HiddenMenuOptions='OptionalDownloadConfig' HiddenMenuOptions='OptionalDownloadConfig'
FirstStartMenuOptions='' FirstStartMenuOptions=''
MultiABI=n MultiABI=y
AppMinimumRAM=0 AppMinimumRAM=0
AppVersionCode=101 AppVersionCode=101
AppVersionName="1.01" AppVersionName="1.01"

View File

@@ -18,6 +18,7 @@ CompatibilityHacksStaticInit=n
CompatibilityHacksTextInputEmulatesHwKeyboard=n CompatibilityHacksTextInputEmulatesHwKeyboard=n
CompatibilityHacksPreventAudioChopping=n CompatibilityHacksPreventAudioChopping=n
CompatibilityHacksAppIgnoresAudioBufferSize=n CompatibilityHacksAppIgnoresAudioBufferSize=n
CompatibilityHacksAdditionalPreloadedSharedLibraries="vcmi"
AppUsesMouse=y AppUsesMouse=y
AppNeedsTwoButtonMouse=y AppNeedsTwoButtonMouse=y
ShowMouseCursor=n ShowMouseCursor=n

View File

@@ -29,7 +29,7 @@ OBJS_CLIENT:=$(patsubst %.cpp, $(ARCH)/out/%.o, $(SOURCES_CLIENT))
all: AndroidData/binaries-$(ARCH).zip libapplication-$(ARCH).so all: AndroidData/binaries-$(ARCH).zip libapplication-$(ARCH).so
AndroidData/binaries-$(ARCH).zip: $(ARCH)/vcmiserver $(ARCH)/AI/libGeniusAI.so $(ARCH)/AI/libStupidAI.so $(ARCH)/Scripting/libvcmiERM.so AndroidData/binaries-$(ARCH).zip: $(ARCH)/vcmiserver $(ARCH)/AI/libGeniusAI.so $(ARCH)/AI/libStupidAI.so $(ARCH)/Scripting/libvcmiERM.so # $(ARCH)/libvcmi.so
rm -f $@ rm -f $@
cd $(ARCH) && zip -r ../$@ $(foreach F, $^, $(patsubst $(ARCH)/%,%,$(F))) cd $(ARCH) && zip -r ../$@ $(foreach F, $^, $(patsubst $(ARCH)/%,%,$(F)))
@@ -45,41 +45,51 @@ $(OBJS_SERVER) $(OBJS_LIB) $(OBJS_GENIUSAI) $(OBJS_STUPIDAI) $(OBJS_CLIENT) $(OB
$< -o $@" $< -o $@"
# -Werror=strict-aliasing -Werror=cast-align -Werror=pointer-arith -Werror=address # -Werror=strict-aliasing -Werror=cast-align -Werror=pointer-arith -Werror=address
$(ARCH)/libvcmi.a: $(OBJS_LIB) #ALLOW_UNRESOLVED_SYMBOLS=1
ar rcs $@ $^
LINK_LIB= \ LINK_LIB= \
env NO_SHARED_LIBS=1 ../setEnvironment-$(ARCH).sh sh -c \ env NO_SHARED_LIBS=1 SHARED_LIBRARY_NAME=`basename $@` ../setEnvironment-$(ARCH).sh sh -c \
"\$$CXX \ "echo SHARED_LIBRARY_NAME \$$SHARED_LIBRARY_NAME && \$$CXX \
-Wl,--whole-archive $^ -Wl,--no-whole-archive -o $@ \ -Wl,--whole-archive $^ -Wl,--no-whole-archive -o $@ \
-shared \$$LDFLAGS \ \$$LDFLAGS -L$(ARCH) \
-lboost_filesystem-1.45 -lboost_iostreams-1.45 -lboost_system-1.45 -lboost_thread-1.45 && \ -lboost_filesystem -lboost_iostreams -lboost_system -lboost_thread && \
cp $@ debug/$@ && \ cp $@ debug/$@ && \
\$$STRIP --strip-unneeded $@" \$$STRIP --strip-unneeded $@"
$(ARCH)/AI/libGeniusAI.so: $(ARCH)/libvcmi.a $(OBJS_GENIUSAI) #$(ARCH)/libvcmi.a: $(OBJS_LIB)
# ar rcs $@ $^
$(ARCH)/libvcmi.so: $(OBJS_LIB)
$(LINK_LIB) $(LINK_LIB)
$(ARCH)/AI/libStupidAI.so: $(ARCH)/libvcmi.a $(OBJS_STUPIDAI) -lvcmi: $(ARCH)/libvcmi.so
cp -f $^ ../../../libs/$^
.PHONY: -lvcmi
$(ARCH)/AI/libGeniusAI.so: $(OBJS_GENIUSAI) -lvcmi
$(LINK_LIB) $(LINK_LIB)
$(ARCH)/Scripting/libvcmiERM.so: $(ARCH)/libvcmi.a $(OBJS_ERM) $(ARCH)/AI/libStupidAI.so: $(OBJS_STUPIDAI) -lvcmi
$(LINK_LIB) $(LINK_LIB)
$(ARCH)/vcmiserver: $(ARCH)/libvcmi.a $(OBJS_SERVER) $(ARCH)/Scripting/libvcmiERM.so: $(OBJS_ERM) -lvcmi
$(LINK_LIB)
$(ARCH)/vcmiserver: $(OBJS_SERVER) -lvcmi
env BUILD_EXECUTABLE=1 NO_SHARED_LIBS=1 ../setEnvironment-$(ARCH).sh sh -c \ env BUILD_EXECUTABLE=1 NO_SHARED_LIBS=1 ../setEnvironment-$(ARCH).sh sh -c \
"\$$CXX \ "\$$CXX \
-Wl,--whole-archive $^ -Wl,--no-whole-archive -o $@ \ -Wl,--whole-archive $^ -Wl,--no-whole-archive -o $@ \
\$$LDFLAGS \ \$$LDFLAGS -L$(ARCH) -Wl,-rpath,/data/data/eu.vcmi/lib \
-lboost_filesystem-1.45 -lboost_iostreams-1.45 -lboost_system-1.45 -lboost_thread-1.45 && \ -lboost_filesystem -lboost_iostreams -lboost_system -lboost_thread && \
cp $@ debug/$@ && \ cp $@ debug/$@ && \
\$$STRIP --strip-unneeded $@" \$$STRIP --strip-unneeded $@"
libapplication-$(ARCH).so: $(ARCH)/libvcmi.a $(OBJS_CLIENT) libapplication-$(ARCH).so: $(OBJS_CLIENT) -lvcmi
env ../setEnvironment-$(ARCH).sh sh -c \ env ../setEnvironment-$(ARCH).sh sh -c \
"\$$CXX \ "\$$CXX \
-Wl,--whole-archive $^ -Wl,--no-whole-archive -o $@ \ -Wl,--whole-archive $^ -Wl,--no-whole-archive -o $@ \
\$$LDFLAGS -lboost_filesystem-1.45 -lboost_iostreams-1.45 -lboost_system-1.45 -lboost_thread-1.45 -lboost_program_options-1.45 && \ \$$LDFLAGS -L$(ARCH) \
-lboost_filesystem -lboost_iostreams -lboost_system -lboost_thread -lboost_program_options && \
cp $@ debug/$@" cp $@ debug/$@"
# No need to strip, it's done inside build.sh script # No need to strip, it's done inside build.sh script

File diff suppressed because it is too large Load Diff