Copied old VCMI sources to another project dir, updated them to use static libvcmi

This commit is contained in:
pelya
2013-01-05 22:43:04 +02:00
parent b23ce53038
commit 810da5591e
16 changed files with 1732 additions and 4 deletions

View File

@@ -17,6 +17,7 @@ CompatibilityHacks=n
CompatibilityHacksStaticInit=n
CompatibilityHacksTextInputEmulatesHwKeyboard=n
CompatibilityHacksPreventAudioChopping=n
CompatibilityHacksAppIgnoresAudioBufferSize=n
AppUsesMouse=y
AppNeedsTwoButtonMouse=y
ShowMouseCursor=n

View File

@@ -0,0 +1,10 @@
libvcmi.so
libvcmi.a
AI
Scripting
debug
out
vcmiserver
vcmiserver.zip
build.log
AndroidData/binaries.zip

View File

@@ -0,0 +1,54 @@
# The application settings for Android libSDL port
AppSettingVersion=17
LibSdlVersion=1.2
AppName="VCMI"
AppFullName=eu.vcmi
ScreenOrientation=h
InhibitSuspend=n
AppDataDownloadUrl="!Data files|data1.zip^!Data files|data2.zip^!Data files|data3.zip^"
VideoDepthBpp=16
NeedDepthBuffer=n
NeedStencilBuffer=n
NeedGles2=n
SwVideoMode=y
SdlVideoResize=y
SdlVideoResizeKeepAspect=n
CompatibilityHacks=y
CompatibilityHacksStaticInit=n
CompatibilityHacksTextInputEmulatesHwKeyboard=n
CompatibilityHacksPreventAudioChopping=n
CompatibilityHacksAppIgnoresAudioBufferSize=n
AppUsesMouse=y
AppNeedsTwoButtonMouse=y
ShowMouseCursor=n
ForceRelativeMouseMode=n
AppNeedsArrowKeys=n
AppNeedsTextInput=y
AppUsesJoystick=n
AppUsesAccelerometer=n
AppUsesMultitouch=n
NonBlockingSwapBuffers=n
RedefinedKeys="LALT RETURN NO_REMAP NO_REMAP E"
AppTouchscreenKeyboardKeysAmount=0
AppTouchscreenKeyboardKeysAmountAutoFire=0
RedefinedKeysScreenKb="LALT RETURN KP_PLUS KP_MINUS SPACE DELETE KP_PLUS KP_MINUS 1 2"
StartupMenuButtonTimeout=3000
HiddenMenuOptions='OptionalDownloadConfig'
FirstStartMenuOptions=''
MultiABI=y
AppMinimumRAM=64
AppVersionCode=08605
AppVersionName="0.86.05"
ResetSdlConfigForThisVersion=y
DeleteFilesOnUpgrade="libsdl-DownloadFinished-0.flag libsdl-DownloadFinished-1.flag libsdl-DownloadFinished-2.flag libsdl-DownloadFinished-3.flag libsdl-DownloadFinished-4.flag libsdl-DownloadFinished-5.flag"
CompiledLibraries="mad sdl_mixer sdl_image sdl_ttf avutil avcore avcodec avformat swscale boost_program_options boost_filesystem boost_iostreams boost_system boost_thread android"
CustomBuildScript=y
AppCflags=''
AppLdflags=''
AppSubdirsBuild=''
AppCmdline=''
ReadmeText='^You may press "Home" now - the data will be downloaded in background'
MinimumScreenSize=s
AdmobPublisherId=n
AdmobTestDeviceId=
AdmobBannerSize=

View File

@@ -0,0 +1,7 @@
#!/bin/sh
# For some reason I'm getting errors with "make -j4"
make -k ARCH=$1 || exit 1
[ -f libapplication-$1.so ] || exit 1
[ -e libapplication.so ] || ln -s libapplication-armeabi.so libapplication.so
exit 0

View File

@@ -0,0 +1,89 @@
ifeq ($(ARCH),)
ARCH:=armeabi
endif
$(shell mkdir -p $(ARCH)/AI debug/$(ARCH)/AI $(ARCH)/Scripting debug/$(ARCH)/Scripting \
$(ARCH)/out/vcmi/lib $(ARCH)/out/vcmi/server $(ARCH)/out/vcmi/AI/StupidAI \
$(ARCH)/out/vcmi/AI/GeniusAI $(ARCH)/out/vcmi/client $(ARCH)/out/vcmi/Scripting/ERM)
LOCAL_PATH:=$(shell dirname $0)
LOCAL_PATH:=`cd $LOCAL_PATH && pwd`
SOURCES_LIB:=$(wildcard vcmi/lib/*.cpp vcmi/CConsoleHandler.cpp vcmi/CThreadHelper.cpp)
OBJS_LIB:=$(patsubst %.cpp, $(ARCH)/out/%.o, $(SOURCES_LIB))
SOURCES_SERVER:=$(wildcard vcmi/server/*.cpp)
OBJS_SERVER:=$(patsubst %.cpp, $(ARCH)/out/%.o, $(SOURCES_SERVER))
SOURCES_STUPIDAI:=$(wildcard vcmi/AI/StupidAI/*.cpp)
OBJS_STUPIDAI:=$(patsubst %.cpp, $(ARCH)/out/%.o, $(SOURCES_STUPIDAI))
SOURCES_GENIUSAI:=$(filter-out %/ExpertSystem.cpp, $(wildcard vcmi/AI/GeniusAI/*.cpp))
OBJS_GENIUSAI:=$(patsubst %.cpp, $(ARCH)/out/%.o, $(SOURCES_GENIUSAI))
SOURCES_ERM:=$(wildcard vcmi/Scripting/ERM/*.cpp)
OBJS_ERM:=$(patsubst %.cpp, $(ARCH)/out/%.o, $(SOURCES_ERM))
SOURCES_CLIENT:=$(wildcard vcmi/client/*.cpp vcmi/CCallback.cpp)
OBJS_CLIENT:=$(patsubst %.cpp, $(ARCH)/out/%.o, $(SOURCES_CLIENT))
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
rm -f $@
cd $(ARCH) && zip -r ../$@ $(foreach F, $^, $(patsubst $(ARCH)/%,%,$(F)))
$(OBJS_SERVER) $(OBJS_LIB) $(OBJS_GENIUSAI) $(OBJS_STUPIDAI) $(OBJS_CLIENT) $(OBJS_ERM): $(ARCH)/out/%.o: %.cpp
../setEnvironment-$(ARCH).sh sh -c \
"\$$CXX \
-c \$$CXXFLAGS -Ivcmi -Ivcmi/lib \
-DDATA_DIR=\\\"/sdcard/Android/data/eu.vcmi/files\\\" \
-DBIN_DIR=\\\"/data/data/eu.vcmi/files\\\" \
-DLIB_DIR=\\\"/data/data/eu.vcmi/files\\\" \
-DWITH_AVCODEC_DECODE_VIDEO2=1 \
-Wstrict-aliasing -Wcast-align -Wpointer-arith -Waddress \
$< -o $@"
# -Werror=strict-aliasing -Werror=cast-align -Werror=pointer-arith -Werror=address
$(ARCH)/libvcmi.a: $(OBJS_LIB)
ar rcs $@ $^
LINK_LIB= \
env NO_SHARED_LIBS=1 ../setEnvironment-$(ARCH).sh sh -c \
"\$$CXX \
-Wl,--whole-archive $^ -Wl,--no-whole-archive -o $@ \
-shared \$$LDFLAGS \
-lboost_filesystem-1.45 -lboost_iostreams-1.45 -lboost_system-1.45 -lboost_thread-1.45 && \
cp $@ debug/$@ && \
\$$STRIP --strip-unneeded $@"
$(ARCH)/AI/libGeniusAI.so: $(ARCH)/libvcmi.a $(OBJS_GENIUSAI)
$(LINK_LIB)
$(ARCH)/AI/libStupidAI.so: $(ARCH)/libvcmi.a $(OBJS_STUPIDAI)
$(LINK_LIB)
$(ARCH)/Scripting/libvcmiERM.so: $(ARCH)/libvcmi.a $(OBJS_ERM)
$(LINK_LIB)
$(ARCH)/vcmiserver: $(ARCH)/libvcmi.a $(OBJS_SERVER)
env BUILD_EXECUTABLE=1 NO_SHARED_LIBS=1 ../setEnvironment-$(ARCH).sh sh -c \
"\$$CXX \
-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 && \
cp $@ debug/$@ && \
\$$STRIP --strip-unneeded $@"
libapplication-$(ARCH).so: $(ARCH)/libvcmi.a $(OBJS_CLIENT)
env ../setEnvironment-$(ARCH).sh sh -c \
"\$$CXX \
-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 && \
cp $@ debug/$@"
# No need to strip, it's done inside build.sh script
clean:
rm -rf armeabi* debug AndroidData/binaries-*.zip libapplication*.so
.PHONY: clean

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

@@ -0,0 +1,14 @@
Quick compilation guide:
Download my GIT repo from https://github.com/pelya/commandergenius,
then install Android SDK from http://developer.android.com,
NDK r8d from http://crystax.net/ and "ant" tool, then launch commands
android update project -p project
rm project/jni/application/src
ln -s vcmi project/jni/application/src
echo > project/jni/application/vcmi/libvcmi.so
then download VCMI revision 2387 into the dir project/jni/application/vcmi/vcmi
(or create a symlink to it if you already have downloaded it), then apply patch vcmi-android.diff,
then launch build.sh.
To run it you should have complete installation of Heroes 3: Wake of Gods on your SD card on your device,
in the directory Android/data/eu.vcmi/files

View File

@@ -0,0 +1 @@
../../../../../vcmi

File diff suppressed because it is too large Load Diff

View File

@@ -1 +0,0 @@
application/vcmi