#!/usr/bin/env bash set -euo pipefail INPUT_FILE=$1 OUTPUT_FILE=$2 export MASON_PLATFORM=$3 export MASON_PLATFORM_VERSION=${4:-} if [ "${MASON_PLATFORM}" = "macos" ]; then export MASON_PLATFORM=osx fi if [ -z ${INPUT_FILE} ]; then abort 'You need to specify an input path for the configure.sh file' fi if [ -z ${OUTPUT_FILE} ]; then abort 'You need to specify an output path for the configuration file' fi # Make sure we clear all colors trap '>&2 echo -en "\033[0m"' TERM INT function abort { >&2 echo -e "\033[1m\033[31m$1\033[0m"; exit 1; } function info { >&2 echo -e "\033[1m\033[33m$1\033[0m"; } function warn { >&2 echo -e "\033[1m\033[33m$1\033[0m"; } if [ -e "`pwd`/.git" ]; then export MASON_DIR="`pwd`/.mason" export PATH="${MASON_DIR}:${PATH}" else which mason || abort "You must install mason to build mapbox-gl-native (https://github.com/mapbox/mason)" export MASON_DIR="$(dirname $(readlink $(which mason)))" fi # You can override the function for a particular set of flags by defining a # print_XXX_flags function in your dependencies.sh file function print_flags { local NAME=$1; shift if [ "$(type -t print_${NAME}_flags)" = 'function' ]; then print_${NAME}_flags else local VERSION=`echo "${NAME}_VERSION" | tr "[:lower:]-." "[:upper:]__"` if [ ! -z ${!VERSION:-} ] ; then mason install ${NAME} ${!VERSION} for FLAGS in "$@" ; do flags=$(mason ${FLAGS} ${NAME} ${!VERSION}) || exit 1 CONFIG+=" '${NAME}_${FLAGS}%': $(quote_flags $flags),"$LN done else warn "* Not using ${NAME}" for FLAGS in "$@" ; do CONFIG+=" '${NAME}_${FLAGS}%': [],"$LN done fi fi } function print_default_flags { : } function print_opengl_flags { CONFIG+=" 'opengl_cflags%': [],"$LN CONFIG+=" 'opengl_ldflags%': [],"$LN } function print_qt_flags { : } # Load dependencies source ${INPUT_FILE} 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('(? ${OUTPUT_FILE} cat ${OUTPUT_FILE}