#!/usr/bin/env bash set -euo pipefail CONFIG_FILE=$1 if [ -z ${CONFIG_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 [ -d "`pwd`/.git" ]; then info "This build is within a git repository" export MASON_DIR="`pwd`/.mason" export PATH="${MASON_DIR}:${PATH}" else info "This build is NOT within a git repository" 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 CONFIG+=" '${NAME}_${FLAGS}%': $(quote_flags $(mason ${FLAGS} ${NAME} ${!VERSION})),"$LN done else warn "* Not using ${NAME}" fi fi } function print_default_flags { : } function print_opengl_flags { CONFIG+=" 'opengl_cflags%': [],"$LN CONFIG+=" 'opengl_ldflags%': [],"$LN } # Load dependencies source scripts/${MASON_PLATFORM}/configure.sh if [ -e scripts/${MASON_PLATFORM}/${MASON_PLATFORM_VERSION}/configure.sh ]; then source scripts/${MASON_PLATFORM}/${MASON_PLATFORM_VERSION}/configure.sh fi 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('(? ${CONFIG_FILE} cat ${CONFIG_FILE}