147 lines
4.7 KiB
Bash
Executable File
147 lines
4.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
set -o pipefail
|
|
|
|
CONFIG_FILE=${1:-config.gypi}
|
|
|
|
if [ `uname -s` = 'Darwin' ]; then
|
|
MASON_PLATFORM=${MASON_PLATFORM:-osx}
|
|
fi
|
|
|
|
function finish {
|
|
>&2 echo -en "\033[0m";
|
|
}
|
|
trap finish EXIT
|
|
|
|
# Install mason
|
|
. ./scripts/local_mason.sh
|
|
|
|
case ${MASON_PLATFORM} in
|
|
'ios')
|
|
SQLITE_VERSION=system
|
|
LIBUV_VERSION=0.10.28
|
|
ZLIB_VERSION=system
|
|
BOOST_VERSION=system
|
|
;;
|
|
'android')
|
|
SQLITE_VERSION=3.8.6
|
|
LIBPNG_VERSION=1.6.13
|
|
OPENSSL_VERSION=1.0.1i
|
|
LIBCURL_VERSION=7.38.0
|
|
LIBUV_VERSION=0.11.29
|
|
ZLIB_VERSION=system
|
|
BOOST_VERSION=1.57.0
|
|
NUNICODE_VERSION=1.4
|
|
;;
|
|
*)
|
|
GLFW_VERSION=a21f2377
|
|
SQLITE_VERSION=system
|
|
LIBPNG_VERSION=1.6.13
|
|
LIBCURL_VERSION=system
|
|
LIBUV_VERSION=0.10.28
|
|
ZLIB_VERSION=system
|
|
BOOST_VERSION=system
|
|
NUNICODE_VERSION=1.4
|
|
;;
|
|
esac
|
|
|
|
function abort { >&2 echo -e "\033[1m\033[31m$1\033[0m"; exit 1; }
|
|
|
|
PYTHON=`which python || abort 'Cannot find python'`
|
|
|
|
>&2 echo -en "\033[1m\033[32m* Using "
|
|
>&2 ${PYTHON} --version
|
|
>&2 echo -en "\033[0m";
|
|
|
|
function quote_flags {
|
|
${PYTHON} -c "import sys, re; print filter(None, re.split('(?<!-framework)\s+', ' '.join(sys.argv[1:])))" "$@"
|
|
}
|
|
|
|
LN=$'\n'
|
|
|
|
CONFIG="# Do not edit. Generated by the configure script.
|
|
{
|
|
'target_defaults': {
|
|
'cflags': [],
|
|
'default_configuration': 'Release',
|
|
'defines': [],
|
|
'include_dirs': [],
|
|
'libraries': []
|
|
},
|
|
'variables': {
|
|
'python': '${PYTHON}',
|
|
"
|
|
|
|
if [ ! -z ${BOOST_VERSION} ]; then
|
|
mason install boost ${BOOST_VERSION}
|
|
CONFIG+=" 'boost_root': '$(mason prefix boost ${BOOST_VERSION})',"$LN
|
|
fi
|
|
|
|
if [ ! -z ${OPENSSL_VERSION} ]; then
|
|
mason install openssl ${OPENSSL_VERSION}
|
|
CONFIG+=" 'openssl_static_libs': $(quote_flags $(mason static_libs openssl ${OPENSSL_VERSION})),"$LN
|
|
CONFIG+=" 'openssl_cflags': $(quote_flags $(mason cflags openssl ${OPENSSL_VERSION})),"$LN
|
|
CONFIG+=" 'openssl_ldflags': $(quote_flags $(mason ldflags openssl ${OPENSSL_VERSION})),"$LN
|
|
fi
|
|
|
|
if [ ! -z ${LIBCURL_VERSION} ]; then
|
|
mason install libcurl ${LIBCURL_VERSION}
|
|
CONFIG+=" 'curl_static_libs': $(quote_flags $(mason static_libs libcurl ${LIBCURL_VERSION})),"$LN
|
|
CONFIG+=" 'curl_cflags': $(quote_flags $(mason cflags libcurl ${LIBCURL_VERSION})),"$LN
|
|
CONFIG+=" 'curl_ldflags': $(quote_flags $(mason ldflags libcurl ${LIBCURL_VERSION})),"$LN
|
|
else
|
|
CONFIG+=" 'curl_static_libs': [],"$LN
|
|
fi
|
|
|
|
if [ ! -z ${GLFW_VERSION} ]; then
|
|
mason install glfw ${GLFW_VERSION}
|
|
CONFIG+=" 'glfw3_static_libs': $(quote_flags $(mason static_libs glfw ${GLFW_VERSION})),"$LN
|
|
CONFIG+=" 'glfw3_cflags': $(quote_flags $(mason cflags glfw ${GLFW_VERSION})),"$LN
|
|
CONFIG+=" 'glfw3_ldflags': $(quote_flags $(mason ldflags glfw ${GLFW_VERSION})),"$LN
|
|
fi
|
|
|
|
if [ ! -z ${LIBPNG_VERSION} ]; then
|
|
mason install libpng ${LIBPNG_VERSION}
|
|
CONFIG+=" 'png_static_libs': $(quote_flags $(mason static_libs libpng ${LIBPNG_VERSION})),"$LN
|
|
CONFIG+=" 'png_cflags': $(quote_flags $(mason cflags libpng ${LIBPNG_VERSION})),"$LN
|
|
CONFIG+=" 'png_ldflags': $(quote_flags $(mason ldflags libpng ${LIBPNG_VERSION})),"$LN
|
|
fi
|
|
|
|
if [ ! -z ${SQLITE_VERSION} ]; then
|
|
mason install sqlite ${SQLITE_VERSION}
|
|
CONFIG+=" 'sqlite3_static_libs': $(quote_flags $(mason static_libs sqlite ${SQLITE_VERSION})),"$LN
|
|
CONFIG+=" 'sqlite3_cflags': $(quote_flags $(mason cflags sqlite ${SQLITE_VERSION})),"$LN
|
|
CONFIG+=" 'sqlite3_ldflags': $(quote_flags $(mason ldflags sqlite ${SQLITE_VERSION})),"$LN
|
|
fi
|
|
|
|
if [ ! -z ${LIBUV_VERSION} ]; then
|
|
mason install libuv ${LIBUV_VERSION}
|
|
CONFIG+=" 'uv_static_libs': $(quote_flags $(mason static_libs libuv ${LIBUV_VERSION})),"$LN
|
|
CONFIG+=" 'uv_cflags': $(quote_flags $(mason cflags libuv ${LIBUV_VERSION})),"$LN
|
|
CONFIG+=" 'uv_ldflags': $(quote_flags $(mason ldflags libuv ${LIBUV_VERSION})),"$LN
|
|
fi
|
|
|
|
if [ ! -z ${ZLIB_VERSION} ]; then
|
|
mason install zlib ${ZLIB_VERSION}
|
|
CONFIG+=" 'zlib_static_libs': $(quote_flags $(mason static_libs zlib ${ZLIB_VERSION})),"$LN
|
|
CONFIG+=" 'zlib_cflags': $(quote_flags $(mason cflags zlib ${ZLIB_VERSION})),"$LN
|
|
CONFIG+=" 'zlib_ldflags': $(quote_flags $(mason ldflags zlib ${ZLIB_VERSION})),"$LN
|
|
fi
|
|
|
|
if [ ! -z ${NUNICODE_VERSION} ]; then
|
|
mason install nunicode ${NUNICODE_VERSION}
|
|
CONFIG+=" 'nu_static_libs': $(quote_flags $(mason static_libs nunicode ${NUNICODE_VERSION})),"$LN
|
|
CONFIG+=" 'nu_cflags': $(quote_flags $(mason cflags nunicode ${NUNICODE_VERSION})),"$LN
|
|
CONFIG+=" 'nu_ldflags': $(quote_flags $(mason ldflags nunicode ${NUNICODE_VERSION})),"$LN
|
|
fi
|
|
|
|
|
|
CONFIG+=" }
|
|
}
|
|
"
|
|
|
|
echo "${CONFIG}" > ${CONFIG_FILE}
|
|
|
|
cat ${CONFIG_FILE}
|