Home | History | Annotate | Download | only in bin
      1 #!/bin/sh
      2 
      3 # Copyright 2014 Google Inc.
      4 #
      5 # Use of this source code is governed by a BSD-style license that can be
      6 # found in the LICENSE file.
      7 
      8 set -e  # When any command fails, the shell will immediately exit.
      9 
     10 if echo $- | grep -q 'x'; then
     11     # Debug mode
     12     trap 'echo exit status = $?' EXIT
     13 fi
     14 
     15 usage() {
     16     cat >&2 <<EOF
     17 barelinux_make - this script builds a version of skia that does not
     18 depend on external libraries, perfect for putting in an embedded
     19 system running Linux.
     20 
     21 Assumes that you have already run the download_deps script.
     22 
     23 Usage:
     24   $0 \\
     25     [-o SKIA_OUT_DIR] [-c CC_EXE] [-x CXX_EXE] \\
     26     [-t Debug | Release | Coverage | Release_Developer] \\
     27     [GYP_DEFINES...]
     28 
     29 Example use:
     30   $0 \\
     31     -o ~/build/skia/arg64gcc \\
     32     -c ~/local/arm64/bin/aarch64-linux-gnu-gcc \\
     33     -x ~/local/arm64/bin/aarch64-linux-gnu-g++ \\
     34     skia_gpu=0 skia_arch_type=arm skia_arch_width=64 \\
     35     armv7=1 armv8=1 arm_neon=0 arm_thumb=0
     36 EOF
     37     return 1
     38 }
     39 
     40 # BUILD_TYPE should be one of:
     41 #  Coverage, Debug, Release, or Release_Developer
     42 BUILD_TYPE='Debug'
     43 
     44 while getopts ":c:x:o:t:h" opt ; do
     45     case $opt in
     46         c)  export CC="$OPTARG" ;;
     47         x)  export CXX="$OPTARG" ;;
     48         o)  export SKIA_OUT="$OPTARG";;
     49         t)  BUILD_TYPE="$OPTARG";;
     50         h)  usage || exit;;
     51         ?)  echo "unknown option '$OPTARG'" >&2;
     52             usage || exit;;
     53     esac
     54 done
     55 # Append exra arguments to GYP_DEFINES variable.
     56 shift $(( $OPTIND - 1 ))
     57 GYP_DEFINES="${GYP_DEFINES} $*"
     58 
     59 # If you move this script, this must be changed.
     60 SKIA_SRC_DIR="$(cd "$(dirname "$0")/../../.."; pwd)"
     61 
     62 # Set a reasonable default.
     63 export SKIA_OUT="${SKIA_OUT:-${SKIA_SRC_DIR}/out/barelinux}"
     64 
     65 mkdir -p "$SKIA_OUT"
     66 
     67 export GYP_GENERATORS="ninja"
     68 export GYP_GENERATOR_FLAGS=""
     69 export GYP_DEFINES="${GYP_DEFINES} \
     70     skia_warnings_as_errors=0 \
     71     skia_giflib_static=1 \
     72     skia_libpng_static=1 \
     73     skia_zlib_static=1 \
     74     skia_freetype_static=1 \
     75     skia_no_fontconfig=1 \
     76     skia_poppler_enabled=0 \
     77     skia_skip_gui=1 \
     78     "
     79 
     80 "${SKIA_SRC_DIR}/gyp_skia"
     81 
     82 ninja -C "${SKIA_OUT}/${BUILD_TYPE}"
     83 
     84