diff --git a/build.sh b/build.sh index a29a68bee..6a6b9edcc 100755 --- a/build.sh +++ b/build.sh @@ -76,7 +76,7 @@ cd project && env PATH=$NDKBUILDPATH BUILD_NUM_CPUS=$NCPU nice -n19 ndk-build -j `which ndk-build | sed 's@/ndk-build@@'`/toolchains/arm-linux-androideabi-4.6/prebuilt/$MYARCH/bin/arm-linux-androideabi-strip --strip-unneeded libs/armeabi/libapplication.so \ || true ; } && \ { grep "CustomBuildScript=y" ../AndroidAppSettings.cfg > /dev/null && \ - grep "MultiABI=y" ../AndroidAppSettings.cfg > /dev/null && \ + grep "MultiABI=" ../AndroidAppSettings.cfg | grep "y\\|armeabi-v7a" > /dev/null && \ echo Stripping libapplication-armeabi-v7a.so by hand && \ rm obj/local/armeabi-v7a/libapplication.so && \ cp jni/application/src/libapplication-armeabi-v7a.so obj/local/armeabi-v7a/libapplication.so && \ diff --git a/project/jni/application/commandergenius/commandergenius b/project/jni/application/commandergenius/commandergenius index f0448760a..6f28771d5 160000 --- a/project/jni/application/commandergenius/commandergenius +++ b/project/jni/application/commandergenius/commandergenius @@ -1 +1 @@ -Subproject commit f0448760a3cf7e6b6f6be621ae3b5e0c34b041a8 +Subproject commit 6f28771d57ca7d878e3cfee08014651b854b9c7f diff --git a/project/jni/application/vcmi/AndroidAppSettings.cfg b/project/jni/application/vcmi/AndroidAppSettings.cfg index 3a5d3422c..37956f0d6 100644 --- a/project/jni/application/vcmi/AndroidAppSettings.cfg +++ b/project/jni/application/vcmi/AndroidAppSettings.cfg @@ -202,7 +202,7 @@ ReadmeText='^You may press "Home" now - the data will be downloaded in backgroun # 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 -MinimumScreenSize=s +MinimumScreenSize=m # Your AdMob Publisher ID, (n) if you don't want advertisements AdmobPublisherId=n diff --git a/project/jni/application/vcmi/AndroidBuild.sh b/project/jni/application/vcmi/AndroidBuild.sh index 65bd0a6aa..ec927301a 100755 --- a/project/jni/application/vcmi/AndroidBuild.sh +++ b/project/jni/application/vcmi/AndroidBuild.sh @@ -1,7 +1,7 @@ #!/bin/sh # With default -O3 optimization each G++ process eats 2Gb RAM, so tone optimization down to -O2, and limit make to two jobs -{ make -j2 2>&1 || exit 1 ; } | tee build.log +{ make -j4 2>&1 || exit 1 ; } | tee build.log [ -f libapplication.so ] || exit 1 mv -f libapplication.so libapplication-armeabi-v7a.so exit 0 diff --git a/project/jni/application/vcmi/Makefile b/project/jni/application/vcmi/Makefile index 9d8c427f8..2b4de8680 100644 --- a/project/jni/application/vcmi/Makefile +++ b/project/jni/application/vcmi/Makefile @@ -31,6 +31,8 @@ OBJS_LIB_MAPPING:=$(patsubst %.cpp, out/%.o, $(SOURCES_LIB_MAPPING)) SOURCES_LIB_RMG:=$(wildcard vcmi/lib/rmg/*.cpp) OBJS_LIB_RMG:=$(patsubst %.cpp, out/%.o, $(SOURCES_LIB_RMG)) +OBJS_LIB_ALL:=$(OBJS_LIB_FILESYSTEM) $(OBJS_LIB_LOGGING) $(OBJS_LIB_MAPPING) $(OBJS_LIB_RMG) $(OBJS_LIB) $(OBJS_MINIZIP) + SOURCES_SERVER:=$(wildcard vcmi/server/*.cpp) OBJS_SERVER:=$(patsubst %.cpp, out/%.o, $(SOURCES_SERVER)) @@ -54,12 +56,13 @@ OBJS_ERM:=$(patsubst %.cpp, out/%.o, $(SOURCES_ERM)) all: AndroidData/binaries.zip libapplication.so -AndroidData/binaries.zip: vcmiserver libvcmi.so AI/libBattleAI.so AI/libStupidAI.so AI/libVCAI.so # Scripting/libvcmiERM.so AI/libEmptyAI.so +AndroidData/binaries.zip: libvcmi.so vcmiserver AI/libBattleAI.so AI/libStupidAI.so AI/libVCAI.so # Scripting/libvcmiERM.so AI/libEmptyAI.so rm -f $@ zip -r $@ $^ # With default -O3 optimization each G++ process eats 2Gb RAM, so tone optimization down to -O2, and limit make to two jobs -$(OBJS_SERVER) $(OBJS_LIB) $(OBJS_LIB_FILESYSTEM) $(OBJS_LIB_LOGGING) $(OBJS_LIB_MAPPING) $(OBJS_LIB_RMG) $(OBJS_BATTLEAI) $(OBJS_STUPIDAI) $(OBJS_FUZZYLITE) $(OBJS_VCAI) $(OBJS_CLIENT) $(OBJS_ERM): out/%.o: %.cpp +$(OBJS_SERVER) $(OBJS_LIB) $(OBJS_LIB_FILESYSTEM) $(OBJS_LIB_LOGGING) $(OBJS_LIB_MAPPING) $(OBJS_LIB_RMG) \ + $(OBJS_BATTLEAI) $(OBJS_STUPIDAI) $(OBJS_FUZZYLITE) $(OBJS_VCAI) $(OBJS_CLIENT) $(OBJS_ERM): out/%.o: %.cpp env GCCVER=$(GCC_VERSION) ../setEnvironment-armeabi-v7a.sh sh -c \ "$(GCC_PREFIX)-g++ \ -c \$$CXXFLAGS -O2 -Ivcmi -std=c++11 -Ivcmi/lib \ @@ -77,21 +80,14 @@ $(OBJS_MINIZIP): out/%.o: %.c -Wstrict-aliasing -Wcast-align -Wpointer-arith -Waddress \ $< -o $@" -vcmiserver: $(OBJS_SERVER) -lvcmi - env BUILD_EXECUTABLE=1 NO_SHARED_LIBS=1 GCCVER=$(GCC_VERSION) ../setEnvironment-armeabi-v7a.sh sh -c \ - "$(GCC_PREFIX)-g++ \ - $^ -o $@ \ - \$$LDFLAGS -L. -L../../boost/lib/arm-linux-androideabi-4.6 \ - -lboost_filesystem -lboost_iostreams -lboost_system -lboost_thread -lboost_program_options -lgnustl_static" && \ - cp $@ debug/$@ && \ - $(GCC_PREFIX)-strip $@ +LINK_BOOST_LIBS:=-L../../boost/lib/arm-linux-androideabi-4.6 \ + -lboost_filesystem -lboost_iostreams -lboost_system -lboost_thread -lboost_program_options -lgnustl_static LINK_LIB= \ env BUILD_EXECUTABLE=1 NO_SHARED_LIBS=1 GCCVER=$(GCC_VERSION) ../setEnvironment-armeabi-v7a.sh sh -c \ "$(GCC_PREFIX)-g++ \ $^ -o $@ \ - -shared \$$LDFLAGS -L. -L../../boost/lib/arm-linux-androideabi-4.6 -Wl,-soname,libvcmi.so \ - -lboost_filesystem -lboost_iostreams -lboost_system -lboost_thread -lboost_program_options -lgnustl_static" && \ + -shared \$$LDFLAGS -L. $(LINK_BOOST_LIBS)" && \ cp $@ debug/$@ && \ $(GCC_PREFIX)-strip $@ @@ -113,13 +109,21 @@ AI/libVCAI.so: $(OBJS_VCAI) $(OBJS_FUZZYLITE) -lvcmi Scripting/libvcmiERM.so: $(OBJS_ERM) -lvcmi $(LINK_LIB) -libvcmi.so: $(OBJS_LIB_FILESYSTEM) $(OBJS_LIB_LOGGING) $(OBJS_LIB_MAPPING) $(OBJS_LIB_RMG) $(OBJS_LIB) $(OBJS_MINIZIP) +libvcmi.so: $(OBJS_LIB_ALL) $(LINK_LIB) -libapplication.so: $(OBJS_CLIENT) libvcmi.so +libapplication.so: $(OBJS_CLIENT) -lvcmi env GCCVER=$(GCC_VERSION) ../setEnvironment-armeabi-v7a.sh sh -c \ "$(GCC_PREFIX)-g++ $^ -o $@ \ - \$$LDFLAGS -L. -L../../boost/lib/arm-linux-androideabi-4.6 -lboost_program_options -lboost_filesystem -lboost_iostreams -lboost_system -lboost_thread -lgnustl_static" + \$$LDFLAGS -L. $(LINK_BOOST_LIBS)" + +vcmiserver: $(OBJS_SERVER) -lvcmi + env BUILD_EXECUTABLE=1 NO_SHARED_LIBS=1 GCCVER=$(GCC_VERSION) ../setEnvironment-armeabi-v7a.sh sh -c \ + "$(GCC_PREFIX)-g++ \ + $^ -o $@ \ + \$$LDFLAGS -L. $(LINK_BOOST_LIBS)" && \ + cp $@ debug/$@ && \ + $(GCC_PREFIX)-strip $@ clean: rm -rf out debug *.so vcmiserver* AndroidData/vcmiserver* libapplication.so AI Scripting diff --git a/project/jni/application/vcmi/icon.png b/project/jni/application/vcmi/icon.png index 970b73138..4f236d1ae 100644 Binary files a/project/jni/application/vcmi/icon.png and b/project/jni/application/vcmi/icon.png differ diff --git a/project/jni/application/vcmi/readme.txt b/project/jni/application/vcmi/readme.txt index 8f2d89086..268a146b0 100644 --- a/project/jni/application/vcmi/readme.txt +++ b/project/jni/application/vcmi/readme.txt @@ -5,6 +5,8 @@ ANT, patch and Subversion tools, then launch commands android update project -p project rm project/jni/application/src ln -s vcmi project/jni/application/src + mkdir -p project/obj/local/armeabi-v7a/ + cp -f project/jni/boost/lib/arm-linux-androideabi-4.6/* project/obj/local/armeabi-v7a/ then launch build.sh. To run it you should have complete installation of Heroes 3: Wake of Gods