OpenTTD-JGR: fixed compilation with CMake
This commit is contained in:
@@ -7,10 +7,10 @@ AppName="OpenTTD JGR"
|
||||
AppFullName=org.openttd.jgrpp
|
||||
|
||||
# Application version code (integer)
|
||||
AppVersionCode=034209
|
||||
AppVersionCode=039210
|
||||
|
||||
# Application user-visible version name (string)
|
||||
AppVersionName="0.34.2"
|
||||
AppVersionName="0.39.2"
|
||||
|
||||
# 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
|
||||
@@ -269,12 +269,12 @@ 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' # 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 timidity 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
|
||||
|
||||
@@ -8,39 +8,86 @@ VER=build
|
||||
|
||||
export ARCH=$1
|
||||
|
||||
CPU_TYPE=32
|
||||
[ "$ARCH" = "arm64-v8a" ] && CPU_TYPE=64
|
||||
[ "$ARCH" = "x86_64" ] && CPU_TYPE=64
|
||||
|
||||
[ -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 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=sdl1 --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 --os=unix --cc-build=gcc --cxx-build=g++ \
|
||||
--without-sse --without-xdg-basedir --without-fluidsynth"
|
||||
CMAKE_SDL=openttd-$VER-$1/cmake/AndroidSDL.cmake
|
||||
mkdir -p openttd-$VER-$1/cmake
|
||||
rm -f src/src/rev.cpp openttd-$VER-$1/CMakeCache.txt $CMAKE_SDL
|
||||
|
||||
APP_MODULES="`sh -c '. ../setEnvironment-'$1'.sh true ; echo $APP_MODULES' ../setEnvironment-$1.sh true`"
|
||||
APILEVEL="`sh -c '. ../setEnvironment-'$1'.sh true ; echo $APILEVEL' ../setEnvironment-$1.sh true`"
|
||||
NDK="`sh -c '. ../setEnvironment-'$1'.sh true ; echo $NDK' ../setEnvironment-$1.sh true`"
|
||||
APP_AVAILABLE_STATIC_LIBS="`sh -c '. ../setEnvironment-'$1'.sh true ; echo $APP_AVAILABLE_STATIC_LIBS' ../setEnvironment-$1.sh true`"
|
||||
|
||||
for LIB in $APP_MODULES; do
|
||||
STATIC=`echo $APP_AVAILABLE_STATIC_LIBS | grep '\b'"$LIB"'\b'`
|
||||
|
||||
TARGET=`echo $LIB | tr 'a-z' 'A-Z'`
|
||||
LIB_FILE=$LIB
|
||||
|
||||
case $LIB in
|
||||
lzma)
|
||||
TARGET=LIBLZMA
|
||||
;;
|
||||
lzo2)
|
||||
TARGET=LZO
|
||||
;;
|
||||
sdl-1.2)
|
||||
TARGET=SDL
|
||||
;;
|
||||
timidity)
|
||||
TARGET=Timidity
|
||||
;;
|
||||
expat)
|
||||
# Different .so file name to avoid linking to system libexpat.so
|
||||
LIB_FILE=expat-sdl
|
||||
;;
|
||||
png)
|
||||
# Hack for PNG_PNG_INCLUDE_DIR
|
||||
echo "set(${TARGET}_${TARGET}_INCLUDE_DIR $LOCAL_PATH/../../$LIB/include)" >> $CMAKE_SDL
|
||||
;;
|
||||
freetype)
|
||||
# Hack for FREETYPE_INCLUDE_DIRS
|
||||
echo "set(${TARGET}_INCLUDE_DIRS $LOCAL_PATH/../../$LIB/include)" >> $CMAKE_SDL
|
||||
;;
|
||||
icui18n|iculx|icuuc|icudata|icule|icuio)
|
||||
TARGET="ICU_`echo $LIB | sed 's/icu//'`"
|
||||
echo "set(PC_${TARGET}_INCLUDE_DIRS $LOCAL_PATH/../../$LIB/include)" >> $CMAKE_SDL
|
||||
echo "set(PC_${TARGET}_LIBRARY
|
||||
$LOCAL_PATH/../../../obj/local/$ARCH/lib$LIB_FILE.a
|
||||
$LOCAL_PATH/../../../obj/local/$ARCH/libicu-le-hb.a
|
||||
$LOCAL_PATH/../../../obj/local/$ARCH/libharfbuzz.a
|
||||
$LOCAL_PATH/../../../obj/local/$ARCH/libicudata.a
|
||||
$LOCAL_PATH/../../../obj/local/$ARCH/libicuuc.a)" >> $CMAKE_SDL
|
||||
echo "set(PC_${TARGET}_FOUND YES)" >> $CMAKE_SDL
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "set(${TARGET}_FOUND YES)" >> $CMAKE_SDL
|
||||
echo "set(${TARGET}_INCLUDE_DIR $LOCAL_PATH/../../$LIB/include)" >> $CMAKE_SDL
|
||||
|
||||
if [ -n "$STATIC" ] ; then
|
||||
echo "set(${TARGET}_LIBRARY $LOCAL_PATH/../../../obj/local/$ARCH/lib$LIB_FILE.a)" >> $CMAKE_SDL
|
||||
echo "add_library(${TARGET} STATIC IMPORTED)" >> $CMAKE_SDL
|
||||
else
|
||||
echo "set(${TARGET}_LIBRARY $LOCAL_PATH/../../../obj/local/$ARCH/lib$LIB_FILE.so)" >> $CMAKE_SDL
|
||||
echo "add_library(${TARGET} SHARED IMPORTED)" >> $CMAKE_SDL
|
||||
fi
|
||||
echo "target_include_directories(${TARGET} INTERFACE "'${'"${TARGET}"'_INCLUDE_DIR})' >> $CMAKE_SDL
|
||||
echo "set_target_properties(${TARGET} PROPERTIES IMPORTED_LOCATION "'${'"${TARGET}"'_LIBRARY})' >> $CMAKE_SDL
|
||||
done
|
||||
|
||||
cmake \
|
||||
-DCMAKE_MODULE_PATH=$LOCAL_PATH/openttd-$VER-$1/cmake \
|
||||
-DCMAKE_TOOLCHAIN_FILE=$NDK/build/cmake/android.toolchain.cmake \
|
||||
-DANDROID_ABI=$1 \
|
||||
-DANDROID_NATIVE_API_LEVEL=$APILEVEL \
|
||||
-DANDROID_STL=c++_shared \
|
||||
-B openttd-$VER-$1 src
|
||||
|
||||
} || exit 1
|
||||
|
||||
NCPU=4
|
||||
NCPU=8
|
||||
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='' " && cp -f openttd-$VER-$1/objs/release/openttd libapplication-$1.so || exit 1
|
||||
make -C openttd-$VER-$1 -j$NCPU VERBOSE=1 STRIP='' && cp -f openttd-$VER-$1/libopenttd.so libapplication-$1.so || exit 1
|
||||
|
||||
|
||||
Reference in New Issue
Block a user