#!/bin/sh

# Copyright 2014 Google Inc.
#
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

set -e  # When any command fails, the shell will immediately exit.

usage() {
    cat >&2 <<EOF
arm64_make - this script builds a AArch64 version of skia that
does not depend on external libraries, perfect for putting in an
embedded system running Linux.

Assumes that you have already run the download_deps script.

Usage:
  $0 \\
    [-o SKIA_OUT_DIR] [-c CC_EXE] [-x CXX_EXE] \\
    [-t Debug | Release | Coverage | Release_Developer] \\

Example use:
  $0 \\
    -o ~/build/skia/arg64gcc \\
    -c ~/local/arm64/bin/aarch64-linux-gnu-gcc \\
    -x ~/local/arm64/bin/aarch64-linux-gnu-g++ \\
EOF
    return 1
}

# BUILD_TYPE should be one of:
#  Coverage, Debug, Release, or Release_Developer
BUILD_TYPE='Debug'

while getopts ":c:x:o:t:h" opt ; do
    case $opt in
        c)  export CC="$OPTARG" ;;
        x)  export CXX="$OPTARG" ;;
        o)  export SKIA_OUT="$OPTARG";;
        t)  BUILD_TYPE="$OPTARG";;
        h)  usage || exit;;
        ?)  echo "unknown option '$OPTARG'" >&2;
            usage || exit;;
    esac
done
OPTIND=1  # Reset this variable for calling barelinux_make with -t command flag.

export GYP_DEFINES="${GYP_DEFINES} \
    skia_gpu=0 \
    skia_arch_type=arm64 \
    "

. "$(dirname "$0")/barelinux_make" -t "$BUILD_TYPE"

