Use CMake instead of Autoconf tools in Android build script
And replace OpenSSL with MbedTLS
This commit is contained in:
@@ -11,42 +11,49 @@ include $(CLEAR_VARS)
|
||||
|
||||
# OGG
|
||||
LOCAL_MODULE := ogg
|
||||
LOCAL_SRC_FILES := obj/libogg/src/.libs/libogg.a
|
||||
LOCAL_SRC_FILES := obj/libogg/libogg.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
|
||||
# Vorbis
|
||||
LOCAL_MODULE := vorbis
|
||||
LOCAL_SRC_FILES := obj/libvorbis/lib/.libs/libvorbis.a
|
||||
LOCAL_SRC_FILES := obj/libvorbis/lib/libvorbis.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
|
||||
# Vorbisfile
|
||||
LOCAL_MODULE := vorbisfile
|
||||
LOCAL_SRC_FILES := obj/libvorbis/lib/.libs/libvorbisfile.a
|
||||
LOCAL_SRC_FILES := obj/libvorbis/lib/libvorbisfile.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
|
||||
# CURL
|
||||
LOCAL_MODULE := curl
|
||||
LOCAL_SRC_FILES := obj/curl/lib/.libs/libcurl.a
|
||||
LOCAL_SRC_FILES := obj/curl/lib/libcurl.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
|
||||
# libcrypto
|
||||
LOCAL_MODULE := libcrypto
|
||||
LOCAL_SRC_FILES := obj/openssl/libcrypto.a
|
||||
# libmbedtls
|
||||
LOCAL_MODULE := libmbedtls
|
||||
LOCAL_SRC_FILES := obj/mbedtls/library/libmbedtls.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
|
||||
# libssl
|
||||
LOCAL_MODULE := libssl
|
||||
LOCAL_SRC_FILES := obj/openssl/libssl.a
|
||||
# libmbedcrypto
|
||||
LOCAL_MODULE := libmbedcrypto
|
||||
LOCAL_SRC_FILES := obj/mbedtls/library/libmbedcrypto.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
|
||||
# libmbedx509
|
||||
LOCAL_MODULE := libmbedx509
|
||||
LOCAL_SRC_FILES := obj/mbedtls/library/libmbedx509.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
@@ -74,14 +81,14 @@ include $(CLEAR_VARS)
|
||||
|
||||
# Freetype
|
||||
LOCAL_MODULE := freetype
|
||||
LOCAL_SRC_FILES := obj/freetype/objs/.libs/libfreetype.a
|
||||
LOCAL_SRC_FILES := obj/freetype/build/libfreetype.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
|
||||
# Harfbuzz
|
||||
LOCAL_MODULE := harfbuzz
|
||||
LOCAL_SRC_FILES := obj/harfbuzz/src/.libs/libharfbuzz.a
|
||||
LOCAL_SRC_FILES := obj/harfbuzz/build/libharfbuzz.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
@@ -276,12 +283,12 @@ LOCAL_CFLAGS := -I../lib/angelscript/include \
|
||||
-Iobj/libogg/include \
|
||||
-Iobj/libvorbis/include \
|
||||
-Iobj/openal/include \
|
||||
-Iobj/openssl/include \
|
||||
-Iobj/mbedtls/include \
|
||||
-DUSE_GLES2 \
|
||||
-DMOBILE_STK \
|
||||
-DENABLE_SOUND \
|
||||
-DENABLE_IPV6 \
|
||||
-DENABLE_CRYPTO_OPENSSL \
|
||||
-DENABLE_CRYPTO_MBEDTLS \
|
||||
-DNDEBUG \
|
||||
-DDISABLE_ICONV \
|
||||
-DANDROID_PACKAGE_NAME=\"$(PACKAGE_NAME)\" \
|
||||
@@ -291,9 +298,10 @@ LOCAL_CFLAGS := -I../lib/angelscript/include \
|
||||
LOCAL_CPPFLAGS := -std=gnu++0x
|
||||
|
||||
LOCAL_STATIC_LIBRARIES := irrlicht bullet enet ifaddrs angelscript mcpp SDL2 \
|
||||
vorbisfile vorbis ogg openal curl libssl libcrypto \
|
||||
c++_static sheenbidi harfbuzz freetype \
|
||||
tinygettext graphics_utils graphics_engine
|
||||
vorbisfile vorbis ogg openal curl libmbedtls \
|
||||
libmbedcrypto libmbedx509 c++_static sheenbidi \
|
||||
harfbuzz freetype tinygettext graphics_utils \
|
||||
graphics_engine
|
||||
|
||||
include $(BUILD_SHARED_LIBRARY)
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
114
android/make.sh
114
android/make.sh
@@ -363,15 +363,18 @@ fi
|
||||
|
||||
# Freetype bootstrap
|
||||
if [ ! -f "$DIRNAME/obj/freetype_bootstrap.stamp" ]; then
|
||||
echo "Compiling freetype"
|
||||
mkdir -p "$DIRNAME/obj/freetype"
|
||||
echo "Compiling freetype bootstrap"
|
||||
mkdir -p "$DIRNAME/obj/freetype/build"
|
||||
cp -a -f "$DIRNAME/../lib/freetype/"* "$DIRNAME/obj/freetype"
|
||||
|
||||
cd "$DIRNAME/obj/freetype"
|
||||
ZLIB_CFLAGS="-I$DIRNAME/obj/zlib/" ZLIB_LIBS="$DIRNAME/obj/zlib/libz.a"\
|
||||
LIBPNG_CFLAGS="-I$DIRNAME/obj/libpng/" LIBPNG_LIBS="$DIRNAME/obj/libpng/libpng.a"\
|
||||
./configure --host=$HOST --enable-shared=no \
|
||||
--without-harfbuzz --without-brotli --without-bzip2 &&
|
||||
cd "$DIRNAME/obj/freetype/build"
|
||||
cmake .. -DCMAKE_TOOLCHAIN_FILE=../../../cmake/Toolchain-android.cmake \
|
||||
-DHOST=$HOST -DARCH=$ARCH \
|
||||
-DZLIB_LIBRARY="$DIRNAME/obj/zlib/libz.a" \
|
||||
-DZLIB_INCLUDE_DIR="$DIRNAME/obj/zlib/" \
|
||||
-DPNG_LIBRARY="$DIRNAME/obj/libpng/libpng.a" \
|
||||
-DPNG_PNG_INCLUDE_DIR="$DIRNAME/obj/libpng/" \
|
||||
-DFT_WITH_HARFBUZZ=OFF -DFT_WITH_BZIP2=OFF \
|
||||
-DFT_WITH_BROTLI=OFF -DFT_WITH_ZLIB=ON -DFT_WITH_PNG=ON &&
|
||||
make $@
|
||||
check_error
|
||||
# We need to rebuild freetype after harfbuzz is compiled
|
||||
@@ -381,15 +384,17 @@ fi
|
||||
# Harfbuzz
|
||||
if [ ! -f "$DIRNAME/obj/harfbuzz.stamp" ]; then
|
||||
echo "Compiling harfbuzz"
|
||||
mkdir -p "$DIRNAME/obj/harfbuzz"
|
||||
mkdir -p "$DIRNAME/obj/harfbuzz/build"
|
||||
cp -a -f "$DIRNAME/../lib/harfbuzz/"* "$DIRNAME/obj/harfbuzz"
|
||||
|
||||
cd "$DIRNAME/obj/harfbuzz"
|
||||
FREETYPE_CFLAGS="-I$DIRNAME/obj/freetype/include" \
|
||||
FREETYPE_LIBS="$DIRNAME/obj/freetype/objs/.libs/libfreetype.a $DIRNAME/obj/libpng/libpng.a $DIRNAME/obj/zlib/libz.a"\
|
||||
./configure --host=$HOST --enable-shared=no \
|
||||
--with-glib=no --with-gobject=no --with-cairo=no \
|
||||
--with-fontconfig=no --with-icu=no --with-graphite2=no &&
|
||||
cd "$DIRNAME/obj/harfbuzz/build"
|
||||
cmake .. -DCMAKE_TOOLCHAIN_FILE=../../../cmake/Toolchain-android.cmake \
|
||||
-DHOST=$HOST -DARCH=$ARCH -DBUILD_SHARED_LIBS=OFF \
|
||||
-DFREETYPE_LIBRARY="$DIRNAME/obj/freetype/build/libfreetype.a $DIRNAME/obj/libpng/libpng.a $DIRNAME/obj/zlib/libz.a" \
|
||||
-DFREETYPE_INCLUDE_DIRS="$DIRNAME/obj/freetype/include/" \
|
||||
-DHB_HAVE_GLIB=OFF -DHB_HAVE_GOBJECT=OFF -DHB_HAVE_ICU=OFF \
|
||||
-DHB_HAVE_FREETYPE=ON -DHB_BUILD_SUBSET=OFF \
|
||||
-DCMAKE_C_FLAGS="-fpic" -DCMAKE_CXX_FLAGS="-std=gnu++0x -fpic" &&
|
||||
make $@
|
||||
check_error
|
||||
mkdir -p "$DIRNAME/obj/harfbuzz/include/harfbuzz"
|
||||
@@ -400,14 +405,18 @@ fi
|
||||
# Freetype
|
||||
if [ ! -f "$DIRNAME/obj/freetype.stamp" ]; then
|
||||
echo "Compiling freetype"
|
||||
mkdir -p "$DIRNAME/obj/freetype"
|
||||
cp -a -f "$DIRNAME/../lib/freetype/"* "$DIRNAME/obj/freetype"
|
||||
|
||||
cd "$DIRNAME/obj/freetype"
|
||||
ZLIB_CFLAGS="-fpic -I$DIRNAME/obj/zlib/" ZLIB_LIBS="$DIRNAME/obj/zlib/libz.a" \
|
||||
LIBPNG_CFLAGS="-I$DIRNAME/obj/libpng/" LIBPNG_LIBS="$DIRNAME/obj/libpng/libpng.a" \
|
||||
HARFBUZZ_CFLAGS="-I$DIRNAME/obj/harfbuzz/src/" HARFBUZZ_LIBS="$DIRNAME/obj/harfbuzz/src/.libs/libharfbuzz.a" \
|
||||
./configure --host=$HOST --enable-shared=no --without-brotli --without-bzip2
|
||||
cd "$DIRNAME/obj/freetype/build"
|
||||
rm -rf *
|
||||
cmake .. -DCMAKE_TOOLCHAIN_FILE=../../../cmake/Toolchain-android.cmake \
|
||||
-DHOST=$HOST -DARCH=$ARCH \
|
||||
-DZLIB_LIBRARY="$DIRNAME/obj/zlib/libz.a" \
|
||||
-DZLIB_INCLUDE_DIR="$DIRNAME/obj/zlib/" \
|
||||
-DPNG_LIBRARY="$DIRNAME/obj/libpng/libpng.a" \
|
||||
-DPNG_PNG_INCLUDE_DIR="$DIRNAME/obj/libpng/" \
|
||||
-DHARFBUZZ_LIBRARIES="$DIRNAME/obj/harfbuzz/build/libharfbuzz.a" \
|
||||
-DHARFBUZZ_INCLUDE_DIRS="$DIRNAME/obj/harfbuzz/src/" \
|
||||
-DFT_WITH_HARFBUZZ=ON -DFT_WITH_BZIP2=OFF \
|
||||
-DFT_WITH_BROTLI=OFF -DFT_WITH_ZLIB=ON -DFT_WITH_PNG=ON &&
|
||||
make $@
|
||||
check_error
|
||||
touch "$DIRNAME/obj/freetype.stamp"
|
||||
@@ -424,26 +433,27 @@ if [ ! -f "$DIRNAME/obj/openal.stamp" ]; then
|
||||
-DHOST=$HOST -DARCH=$ARCH \
|
||||
-DALSOFT_UTILS=0 \
|
||||
-DALSOFT_EXAMPLES=0 \
|
||||
-DALSOFT_TESTS=0 \
|
||||
-DLIBTYPE=STATIC &&
|
||||
-DALSOFT_TESTS=0 -DLIBTYPE=STATIC \
|
||||
-DCMAKE_C_FLAGS="-fpic" -DCMAKE_CXX_FLAGS="-fpic" &&
|
||||
make $@
|
||||
check_error
|
||||
touch "$DIRNAME/obj/openal.stamp"
|
||||
fi
|
||||
|
||||
# OpenSSL
|
||||
if [ ! -f "$DIRNAME/obj/openssl.stamp" ]; then
|
||||
echo "Compiling openssl"
|
||||
mkdir -p "$DIRNAME/obj/openssl"
|
||||
cp -a -f "$DIRNAME/../lib/openssl/"* "$DIRNAME/obj/openssl"
|
||||
# MbedTLS
|
||||
if [ ! -f "$DIRNAME/obj/mbedtls.stamp" ]; then
|
||||
echo "Compiling mbedtls"
|
||||
mkdir -p "$DIRNAME/obj/mbedtls"
|
||||
cp -a -f "$DIRNAME/../lib/mbedtls/"* "$DIRNAME/obj/mbedtls"
|
||||
|
||||
cd "$DIRNAME/obj/openssl"
|
||||
export ANDROID_NDK_HOME="$DIRNAME/obj/"
|
||||
./Configure android-$ARCH
|
||||
cd "$DIRNAME/obj/mbedtls"
|
||||
cmake . -DCMAKE_TOOLCHAIN_FILE=../../../cmake/Toolchain-android.cmake \
|
||||
-DHOST=$HOST -DARCH=$ARCH -DBUILD_SHARED_LIBS=OFF \
|
||||
-DENABLE_TESTING=OFF -DENABLE_PROGRAMS=OFF \
|
||||
-DCMAKE_C_FLAGS="-fpic" &&
|
||||
make $@
|
||||
unset ANDROID_NDK_HOME
|
||||
check_error
|
||||
touch "$DIRNAME/obj/openssl.stamp"
|
||||
touch "$DIRNAME/obj/mbedtls.stamp"
|
||||
fi
|
||||
|
||||
# Curl
|
||||
@@ -453,13 +463,20 @@ if [ ! -f "$DIRNAME/obj/curl.stamp" ]; then
|
||||
cp -a -f "$DIRNAME/../lib/curl/"* "$DIRNAME/obj/curl"
|
||||
|
||||
cd "$DIRNAME/obj/curl"
|
||||
CPPFLAGS="-I$DIRNAME/obj/openssl/include -I$DIRNAME/obj/zlib $CPPFLAGS" \
|
||||
LDFLAGS="-L$DIRNAME/obj/openssl/ -L$DIRNAME/obj/zlib $LDFLAGS" \
|
||||
./configure --host=$HOST \
|
||||
--with-ssl \
|
||||
--disable-shared \
|
||||
--enable-static \
|
||||
--enable-threaded-resolver &&
|
||||
cmake . -DCMAKE_TOOLCHAIN_FILE=../../../cmake/Toolchain-android.cmake \
|
||||
-DHOST=$HOST -DARCH=$ARCH -DBUILD_SHARED_LIBS=OFF \
|
||||
-DZLIB_LIBRARY="$DIRNAME/obj/zlib/libz.a" \
|
||||
-DZLIB_INCLUDE_DIR="$DIRNAME/obj/zlib/" \
|
||||
-DMBEDCRYPTO_LIBRARY="$DIRNAME/obj/mbedtls/library/libmbedcrypto.a" \
|
||||
-DMBEDTLS_LIBRARY="$DIRNAME/obj/mbedtls/library/libmbedtls.a" \
|
||||
-DMBEDX509_LIBRARY="$DIRNAME/obj/mbedtls/library/libmbedx509.a" \
|
||||
-DMBEDTLS_INCLUDE_DIRS="$DIRNAME/obj/mbedtls/include/" \
|
||||
-DBUILD_TESTING=OFF -DBUILD_CURL_EXE=OFF \
|
||||
-DCMAKE_USE_MBEDTLS=ON -DUSE_ZLIB=ON -DCMAKE_USE_OPENSSL=OFF \
|
||||
-DCMAKE_USE_LIBSSH=OFF -DCMAKE_USE_LIBSSH2=OFF \
|
||||
-DCMAKE_USE_GSSAPI=OFF -DUSE_NGHTTP2=OFF -DUSE_QUICHE=OFF \
|
||||
-DHTTP_ONLY=ON -DCURL_CA_BUNDLE=none -DCURL_CA_PATH=none \
|
||||
-DENABLE_THREADED_RESOLVER=ON &&
|
||||
make $@
|
||||
check_error
|
||||
touch "$DIRNAME/obj/curl.stamp"
|
||||
@@ -486,8 +503,8 @@ if [ ! -f "$DIRNAME/obj/libogg.stamp" ]; then
|
||||
cp -a -f "$DIRNAME/../lib/libogg/"* "$DIRNAME/obj/libogg"
|
||||
|
||||
cd "$DIRNAME/obj/libogg"
|
||||
CPPFLAGS="-fpic $CPPFLAGS" \
|
||||
./configure --host=$HOST &&
|
||||
cmake . -DCMAKE_TOOLCHAIN_FILE=../../../cmake/Toolchain-android.cmake \
|
||||
-DHOST=$HOST -DARCH=$ARCH -DCMAKE_C_FLAGS="-fpic" &&
|
||||
make $@
|
||||
check_error
|
||||
touch "$DIRNAME/obj/libogg.stamp"
|
||||
@@ -500,11 +517,10 @@ if [ ! -f "$DIRNAME/obj/libvorbis.stamp" ]; then
|
||||
cp -a -f "$DIRNAME/../lib/libvorbis/"* "$DIRNAME/obj/libvorbis"
|
||||
|
||||
cd "$DIRNAME/obj/libvorbis"
|
||||
CPPFLAGS="-fpic -I$DIRNAME/obj/libogg/include $CPPFLAGS" \
|
||||
LDFLAGS="-L$DIRNAME/obj/libogg/src/.libs -lm $LDFLAGS" \
|
||||
./configure --host=$HOST &&
|
||||
sed -i '/#define size_t/d' config.h
|
||||
sed -i 's/-mno-ieee-fp//' lib/Makefile
|
||||
cmake . -DCMAKE_TOOLCHAIN_FILE=../../../cmake/Toolchain-android.cmake \
|
||||
-DHOST=$HOST -DARCH=$ARCH -DCMAKE_C_FLAGS="-fpic" \
|
||||
-DOGG_LIBRARY="$DIRNAME/obj/libogg/libogg.a" \
|
||||
-DOGG_INCLUDE_DIR="$DIRNAME/obj/libogg/include" &&
|
||||
make $@
|
||||
check_error
|
||||
touch "$DIRNAME/obj/libvorbis.stamp"
|
||||
|
||||
Reference in New Issue
Block a user