Updated VCMI, added readme
This commit is contained in:
@@ -533,6 +533,7 @@ public class MainActivity extends Activity {
|
||||
}
|
||||
}
|
||||
|
||||
// ----- VCMI hack -----
|
||||
try {
|
||||
System.out.println("libSDL: Extracting VCMI server");
|
||||
|
||||
@@ -603,6 +604,7 @@ public class MainActivity extends Activity {
|
||||
{
|
||||
System.out.println("libSDL: Error: " + eee.toString());
|
||||
}
|
||||
// ----- VCMI hack -----
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -265,6 +265,18 @@ class DemoRenderer extends GLSurfaceView_SDL.Renderer
|
||||
|
||||
mGlContextLost = false;
|
||||
|
||||
// ----- VCMI hack -----
|
||||
try
|
||||
{
|
||||
File libpath = new File(context.getFilesDir(), "libvcmi.so");
|
||||
System.load(libpath.getPath());
|
||||
}
|
||||
catch ( UnsatisfiedLinkError eee )
|
||||
{
|
||||
System.out.println("libSDL: error loading lib: " + eee.toString());
|
||||
}
|
||||
// ----- VCMI hack -----
|
||||
|
||||
String libs[] = { "application", "sdl_main" };
|
||||
try
|
||||
{
|
||||
@@ -275,13 +287,21 @@ class DemoRenderer extends GLSurfaceView_SDL.Renderer
|
||||
}
|
||||
catch ( UnsatisfiedLinkError e )
|
||||
{
|
||||
for(String l : libs)
|
||||
System.out.println("libSDL: error loading lib: " + e.toString());
|
||||
try
|
||||
{
|
||||
String libname = System.mapLibraryName(l);
|
||||
File libpath = new File(context.getCacheDir(), libname);
|
||||
System.out.println("libSDL: loading lib " + libpath.getPath());
|
||||
System.load(libpath.getPath());
|
||||
libpath.delete();
|
||||
for(String l : libs)
|
||||
{
|
||||
String libname = System.mapLibraryName(l);
|
||||
File libpath = new File(context.getCacheDir(), libname);
|
||||
System.out.println("libSDL: loading lib " + libpath.getPath());
|
||||
System.load(libpath.getPath());
|
||||
libpath.delete();
|
||||
}
|
||||
}
|
||||
catch ( UnsatisfiedLinkError ee )
|
||||
{
|
||||
System.out.println("libSDL: error loading lib: " + ee.toString());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ Download my GIT repo from https://github.com/pelya/commandergenius,
|
||||
then install Android SDK 2.2, NDK r4b (NDK r5/r5b will not compile this),
|
||||
and "ant" tool, then launch commands
|
||||
rm project/jni/application/src
|
||||
ln -s scummvm project/jni/application/src
|
||||
ln -s vcmi project/jni/application/src
|
||||
cd project && android update project -p .
|
||||
then download OpenTTD 1.1.1 into the dir project/jni/application/openttd/openttd
|
||||
(or create a symlink to it if you already have downloaded it), then apply patch openttd-trunk-android.patch
|
||||
|
||||
@@ -63,15 +63,19 @@ CFLAGS="\
|
||||
`echo $APP_MODULES | sed \"s@\([-a-zA-Z0-9_.]\+\)@-I$LOCAL_PATH/../\1/include@g\"` \
|
||||
$CRYSTAX_WCHAR_INCLUDE"
|
||||
|
||||
SHARED=-shared
|
||||
SHARED="-shared -Wl,-soname,libapplication.so"
|
||||
if [ -n "$BUILD_EXECUTABLE" ]; then
|
||||
SHARED=
|
||||
fi
|
||||
if [ -n "$NO_SHARED_LIBS" ]; then
|
||||
APP_SHARED_LIBS=
|
||||
fi
|
||||
|
||||
|
||||
#-shared flag creates problems with damn libtool, so we're using -Wl,-shared instead
|
||||
LDFLAGS="\
|
||||
-fexceptions -frtti $SHARED \
|
||||
-Wl,-soname,libapplication.so --sysroot=$NDK/platforms/$PLATFORMVER/arch-arm \
|
||||
--sysroot=$NDK/platforms/$PLATFORMVER/arch-arm \
|
||||
`echo $APP_SHARED_LIBS | sed \"s@\([-a-zA-Z0-9_.]\+\)@$LOCAL_PATH/../../obj/local/armeabi/lib\1.so@g\"` \
|
||||
$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/libc.so \
|
||||
$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/libm.so \
|
||||
|
||||
@@ -30,7 +30,7 @@ AppVersionName="0.85.01"
|
||||
CompiledLibraries="sdl_mixer sdl_image sdl_ttf avutil avcore avcodec avformat swscale boost_program_options boost_filesystem boost_iostreams boost_system boost_thread"
|
||||
CustomBuildScript=n
|
||||
AppCflags='-DDATA_DIR=\\\"/sdcard/app-data/eu.vcmi\\\" -DBIN_DIR=\\\"/data/data/eu.vcmi/files\\\" -DLIB_DIR=\\\"/data/data/eu.vcmi/files\\\" -DWITH_AVCODEC_DECODE_VIDEO2=1'
|
||||
AppLdflags='-lz'
|
||||
AppSubdirsBuild='vcmi vcmi/client vcmi/lib'
|
||||
AppLdflags='-lz -Ljni/application/vcmi -lvcmi'
|
||||
AppSubdirsBuild='vcmi vcmi/client'
|
||||
AppCmdline=''
|
||||
ReadmeText='^You may press "Home" now - the data will be downloaded in background'
|
||||
|
||||
Binary file not shown.
Binary file not shown.
BIN
project/jni/application/vcmi/AndroidData/vcmiserver1
Normal file
BIN
project/jni/application/vcmi/AndroidData/vcmiserver1
Normal file
Binary file not shown.
BIN
project/jni/application/vcmi/AndroidData/vcmiserver2
Normal file
BIN
project/jni/application/vcmi/AndroidData/vcmiserver2
Normal file
Binary file not shown.
@@ -1,34 +1,68 @@
|
||||
|
||||
$(shell mkdir -p out/vcmi/lib out/vcmi/server)
|
||||
$(shell mkdir -p debug out/vcmi/lib out/vcmi/server out/vcmi/AI/StupidAI out/vcmi/AI/GeniusAI)
|
||||
|
||||
LOCAL_PATH=$(shell dirname $0)
|
||||
LOCAL_PATH=`cd $LOCAL_PATH && pwd`
|
||||
|
||||
GCC_PREFIX=$(if $(shell which ndk-build | grep 'android-ndk-r5'),arm-linux-androideabi,arm-eabi)
|
||||
|
||||
SOURCES=$(wildcard vcmi/lib/*.cpp vcmi/server/*.cpp vcmi/CConsoleHandler.cpp vcmi/CThreadHelper.cpp)
|
||||
OBJS=$(patsubst %.cpp, out/%.o, $(SOURCES))
|
||||
$(warning SOURCES $(SOURCES))
|
||||
$(warning OBJS $(OBJS))
|
||||
SOURCES_LIB=$(wildcard vcmi/lib/*.cpp vcmi/CConsoleHandler.cpp vcmi/CThreadHelper.cpp)
|
||||
OBJS_LIB=$(patsubst %.cpp, out/%.o, $(SOURCES_LIB))
|
||||
|
||||
vcmiserver: $(OBJS)
|
||||
env BUILD_EXECUTABLE=1 ../setEnvironment.sh sh -c \
|
||||
"$(GCC_PREFIX)-g++ \
|
||||
\$$LDFLAGS \
|
||||
$^ -o $@ \
|
||||
-lboost_filesystem -lboost_iostreams -lboost_system -lboost_thread"
|
||||
mkdir -p debug
|
||||
cp $@ debug/$@
|
||||
$(GCC_PREFIX)-strip $@
|
||||
SOURCES_SERVER=$(wildcard vcmi/server/*.cpp)
|
||||
OBJS_SERVER=$(patsubst %.cpp, out/%.o, $(SOURCES_SERVER))
|
||||
|
||||
$(OBJS): out/%.o: %.cpp
|
||||
SOURCES_STUPIDAI=$(wildcard vcmi/AI/StupidAI/*.cpp)
|
||||
OBJS_STUPIDAI=$(patsubst %.cpp, out/%.o, $(SOURCES_STUPIDAI))
|
||||
|
||||
SOURCES_GENIUSAI=$(filter-out %/ExpertSystem.cpp, $(wildcard vcmi/AI/GeniusAI/*.cpp))
|
||||
OBJS_GENIUSAI=$(patsubst %.cpp, out/%.o, $(SOURCES_GENIUSAI))
|
||||
|
||||
all: AndroidData/vcmiserver0
|
||||
|
||||
AndroidData/vcmiserver0: vcmiserver.zip
|
||||
split -b 1048576 -d -a 1 $< AndroidData/vcmiserver
|
||||
|
||||
vcmiserver.zip: vcmiserver libvcmi.so GeniusAI.so StupidAI.so
|
||||
rm -f $@
|
||||
zip $@ $^
|
||||
|
||||
$(OBJS_SERVER) $(OBJS_LIB) $(OBJS_GENIUSAI) $(OBJS_STUPIDAI): out/%.o: %.cpp
|
||||
../setEnvironment.sh sh -c \
|
||||
"$(GCC_PREFIX)-g++ \
|
||||
-c \$$CXXFLAGS -Ivcmi -Ivcmi/lib -Ivcmi/server \
|
||||
-c \$$CXXFLAGS -Ivcmi -Ivcmi/lib \
|
||||
-DDATA_DIR=\\\"/sdcard/app-data/eu.vcmi\\\" \
|
||||
-DBIN_DIR=\\\"/data/data/eu.vcmi/files\\\" \
|
||||
-DLIB_DIR=\\\"/data/data/eu.vcmi/files\\\" \
|
||||
-DWITH_AVCODEC_DECODE_VIDEO2=1 \
|
||||
$< -o $@"
|
||||
|
||||
vcmiserver: $(OBJS_SERVER) $(OBJS_LIB)
|
||||
env BUILD_EXECUTABLE=1 NO_SHARED_LIBS=1 ../setEnvironment.sh sh -c \
|
||||
"$(GCC_PREFIX)-g++ \
|
||||
\$$LDFLAGS -L. \
|
||||
$^ -o $@ \
|
||||
-lboost_filesystem -lboost_iostreams -lboost_system -lboost_thread" && \
|
||||
cp $@ debug/$@ && \
|
||||
$(GCC_PREFIX)-strip $@
|
||||
|
||||
LINK_LIB= \
|
||||
env BUILD_EXECUTABLE=1 NO_SHARED_LIBS=1 ../setEnvironment.sh sh -c \
|
||||
"$(GCC_PREFIX)-g++ \
|
||||
-shared \$$LDFLAGS -L. \
|
||||
$^ -o $@ \
|
||||
-lboost_filesystem -lboost_iostreams -lboost_system -lboost_thread" && \
|
||||
cp $@ debug/$@ && \
|
||||
$(GCC_PREFIX)-strip $@
|
||||
|
||||
GeniusAI.so: $(OBJS_GENIUSAI) -lvcmi
|
||||
$(LINK_LIB)
|
||||
|
||||
StupidAI.so: $(OBJS_STUPIDAI) -lvcmi
|
||||
$(LINK_LIB)
|
||||
|
||||
libvcmi.so: $(OBJS_LIB)
|
||||
$(LINK_LIB)
|
||||
|
||||
.PHONY: -lvcmi
|
||||
-lvcmi: libvcmi.so
|
||||
|
||||
13
project/jni/application/vcmi/readme.txt
Normal file
13
project/jni/application/vcmi/readme.txt
Normal file
@@ -0,0 +1,13 @@
|
||||
Quick compilation guide:
|
||||
Download my GIT repo from https://github.com/pelya/commandergenius,
|
||||
then install Android SDK 2.2, NDK r5c from http://developer.android.com,
|
||||
and "ant" tool, then launch commands
|
||||
rm project/jni/application/src
|
||||
ln -s vcmi project/jni/application/src
|
||||
cd project && android update project -p .
|
||||
then download VCMI 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,
|
||||
launch "make" from directory project/jni/application/vcmi (it will create some shared libs),
|
||||
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 app-data/eu.vcmi
|
||||
Reference in New Issue
Block a user