#!/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. if echo $- | grep -q 'x'; then # Debug mode trap 'echo exit status = $?' EXIT fi usage() { cat >&2 <<EOF barelinux_make - this script builds a 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] \\ [GYP_DEFINES...] Example use: $0 \\ -o ~/build/skia/arg64gcc \\ -c ~/local/arm64/bin/aarch64-linux-gnu-gcc \\ -x ~/local/arm64/bin/aarch64-linux-gnu-g++ \\ skia_gpu=0 skia_arch_type=arm skia_arch_width=64 \\ armv7=1 armv8=1 arm_neon=0 arm_thumb=0 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 # Append exra arguments to GYP_DEFINES variable. shift $(( $OPTIND - 1 )) GYP_DEFINES="${GYP_DEFINES} $*" # If you move this script, this must be changed. SKIA_SRC_DIR="$(cd "$(dirname "$0")/../../.."; pwd)" # Set a reasonable default. export SKIA_OUT="${SKIA_OUT:-${SKIA_SRC_DIR}/out/barelinux}" mkdir -p "$SKIA_OUT" export GYP_GENERATORS="ninja" export GYP_GENERATOR_FLAGS="" export GYP_DEFINES="${GYP_DEFINES} \ skia_warnings_as_errors=0 \ skia_giflib_static=1 \ skia_libpng_static=1 \ skia_zlib_static=1 \ skia_freetype_static=1 \ skia_no_fontconfig=1 \ skia_poppler_enabled=0 \ skia_skip_gui=1 \ " "${SKIA_SRC_DIR}/gyp_skia" ninja -C "${SKIA_OUT}/${BUILD_TYPE}"