130 lines
4.2 KiB
Bash
Executable File
130 lines
4.2 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
LOCAL_PATH=`dirname $0`
|
|
LOCAL_PATH=`cd $LOCAL_PATH && pwd`
|
|
|
|
VER=build
|
|
|
|
[ -z "$BUILD_NUM_CPUS" ] && $BUILD_NUM_CPUS=8
|
|
export CMAKE_BUILD_PARALLEL_LEVEL=$BUILD_NUM_CPUS
|
|
|
|
[ -d openttd-$VER-$1 ] || mkdir -p openttd-$VER-$1/bin/baseset
|
|
|
|
export ARCH=$1
|
|
|
|
[ -e openttd-$VER-$1/Makefile ] || {
|
|
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
|
|
;;
|
|
fontconfig)
|
|
TARGET=Fontconfig
|
|
;;
|
|
harfbuzz)
|
|
TARGET=Harfbuzz
|
|
;;
|
|
curl)
|
|
# Different .so file name to avoid linking to system libexpat.so
|
|
LIB_FILE=curl-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
|
|
|
|
if [ -n "${CMAKE_BIN_LOC}" ]; then
|
|
NINJA_PATH=${CMAKE_BIN_LOC}/ninja
|
|
else
|
|
NINJA_PATH=$(which ninja)
|
|
fi
|
|
NINJA_ARGS=
|
|
[ -n "$NINJA_PATH" ] && NINJA_ARGS="-DCMAKE_MAKE_PROGRAM=$NINJA_PATH -GNinja"
|
|
|
|
${CMAKE_BIN_LOC}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 \
|
|
-DGLOBAL_DIR="." \
|
|
-DHOST_BINARY_DIR=$LOCAL_PATH/build-tools \
|
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
|
-DCMAKE_PREFIX_PATH=$LOCAL_PATH/../../iconv/src/$ARCH/ \
|
|
"$([ -n "$CMAKE_C_FLAGS_RELWITHDEBINFO" ] && echo -DCMAKE_C_FLAGS_RELWITHDEBINFO="$CMAKE_C_FLAGS_RELWITHDEBINFO")" \
|
|
"$([ -n "$CMAKE_CXX_FLAGS_RELWITHDEBINFO" ] && echo -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="$CMAKE_CXX_FLAGS_RELWITHDEBINFO")" \
|
|
$NINJA_ARGS \
|
|
-B ./openttd-$VER-$1 -S ./src
|
|
|
|
} || exit 1
|
|
|
|
mkdir -p staging-openttd-$VER-$1
|
|
|
|
set -e
|
|
|
|
${CMAKE_BIN_LOC}cmake --build openttd-$VER-$1 --verbose;
|
|
${CMAKE_BIN_LOC}cmake --install openttd-$VER-$1 --prefix ./staging-openttd-$VER-$1;
|
|
cp staging-openttd-$VER-$1/games/libapplication.so libapplication-$1.so;
|
|
mkdir -p ./data
|
|
cp -r staging-openttd-$VER-$1/share/games/application/* data/
|
|
./pack-data.sh "${ARCH}"
|
|
|
|
set +e
|