105d550ed364d459233874a6dcc1af3c95f195548borenet@google.com# Set up the environment to build Skia for ChromeOS. 205d550ed364d459233874a6dcc1af3c95f195548borenet@google.com 305d550ed364d459233874a6dcc1af3c95f195548borenet@google.comfunction exportVar { 405d550ed364d459233874a6dcc1af3c95f195548borenet@google.com NAME=$1 505d550ed364d459233874a6dcc1af3c95f195548borenet@google.com VALUE=$2 605d550ed364d459233874a6dcc1af3c95f195548borenet@google.com echo export $NAME=\"$VALUE\" 705d550ed364d459233874a6dcc1af3c95f195548borenet@google.com export $NAME="$VALUE" 805d550ed364d459233874a6dcc1af3c95f195548borenet@google.com} 905d550ed364d459233874a6dcc1af3c95f195548borenet@google.com 1005d550ed364d459233874a6dcc1af3c95f195548borenet@google.comSCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 1105d550ed364d459233874a6dcc1af3c95f195548borenet@google.com 1205d550ed364d459233874a6dcc1af3c95f195548borenet@google.com# Helper function to configure the GYP defines to the appropriate values 1305d550ed364d459233874a6dcc1af3c95f195548borenet@google.com# based on the target device. 1405d550ed364d459233874a6dcc1af3c95f195548borenet@google.comsetup_device() { 1505d550ed364d459233874a6dcc1af3c95f195548borenet@google.com # Setup the build variation depending on the target device 165ec130524e61fe1e2606baab53bc1c2e77287d06borenet@google.com TARGET_DEVICE="${SDK_BOARD}" 1705d550ed364d459233874a6dcc1af3c95f195548borenet@google.com 1805d550ed364d459233874a6dcc1af3c95f195548borenet@google.com if [ -z "$TARGET_DEVICE" ]; then 195ec130524e61fe1e2606baab53bc1c2e77287d06borenet@google.com echo "ERROR: No target device specified!" 205ec130524e61fe1e2606baab53bc1c2e77287d06borenet@google.com return 1 2105d550ed364d459233874a6dcc1af3c95f195548borenet@google.com fi 2205d550ed364d459233874a6dcc1af3c95f195548borenet@google.com 23bc4bed132fd6693e16f8305db211530588095755borenet@google.com DEFINES="OS=linux host_os=linux skia_os=chromeos skia_gpu=0" 2405d550ed364d459233874a6dcc1af3c95f195548borenet@google.com 2505d550ed364d459233874a6dcc1af3c95f195548borenet@google.com case $TARGET_DEVICE in 265ec130524e61fe1e2606baab53bc1c2e77287d06borenet@google.com x86-alex) 2705d550ed364d459233874a6dcc1af3c95f195548borenet@google.com DEFINES="${DEFINES} skia_arch_type=x86 skia_arch_width=32" 285ec130524e61fe1e2606baab53bc1c2e77287d06borenet@google.com GENERIC_BOARD_TYPE="x86-generic" 2905d550ed364d459233874a6dcc1af3c95f195548borenet@google.com ;; 305ec130524e61fe1e2606baab53bc1c2e77287d06borenet@google.com link) 3105d550ed364d459233874a6dcc1af3c95f195548borenet@google.com DEFINES="${DEFINES} skia_arch_type=x86 skia_arch_width=64" 325ec130524e61fe1e2606baab53bc1c2e77287d06borenet@google.com GENERIC_BOARD_TYPE="amd64-generic" 3305d550ed364d459233874a6dcc1af3c95f195548borenet@google.com ;; 345ec130524e61fe1e2606baab53bc1c2e77287d06borenet@google.com daisy) 3505d550ed364d459233874a6dcc1af3c95f195548borenet@google.com DEFINES="${DEFINES} skia_arch_type=arm arm_neon=1 armv7=1 arm_thumb=0 skia_arch_width=32" 365ec130524e61fe1e2606baab53bc1c2e77287d06borenet@google.com # TODO(borenet): We have to define skia_warnings_as_errors=0 for the arm 375ec130524e61fe1e2606baab53bc1c2e77287d06borenet@google.com # build, which throws lots of "mangling of va_list has changed" warnings. 385ec130524e61fe1e2606baab53bc1c2e77287d06borenet@google.com DEFINES="${DEFINES} skia_warnings_as_errors=0" 395ec130524e61fe1e2606baab53bc1c2e77287d06borenet@google.com GENERIC_BOARD_TYPE="arm-generic" 4005d550ed364d459233874a6dcc1af3c95f195548borenet@google.com ;; 4105d550ed364d459233874a6dcc1af3c95f195548borenet@google.com *) 4205d550ed364d459233874a6dcc1af3c95f195548borenet@google.com echo -n "ERROR: unknown device specified ($TARGET_DEVICE), valid values: " 435ec130524e61fe1e2606baab53bc1c2e77287d06borenet@google.com echo "x86-alex link daisy" 4405d550ed364d459233874a6dcc1af3c95f195548borenet@google.com return 1; 4505d550ed364d459233874a6dcc1af3c95f195548borenet@google.com ;; 4605d550ed364d459233874a6dcc1af3c95f195548borenet@google.com esac 4705d550ed364d459233874a6dcc1af3c95f195548borenet@google.com 4805d550ed364d459233874a6dcc1af3c95f195548borenet@google.com echo "The build is targeting the device: $TARGET_DEVICE" 4905d550ed364d459233874a6dcc1af3c95f195548borenet@google.com 505ec130524e61fe1e2606baab53bc1c2e77287d06borenet@google.com exportVar GENERIC_BOARD_TYPE ${GENERIC_BOARD_TYPE} 5105d550ed364d459233874a6dcc1af3c95f195548borenet@google.com exportVar GYP_DEFINES "$DEFINES" 5258d69d846071ff9a84e879041f2f092006bfcd14epoger@google.com exportVar GYP_GENERATORS "ninja" 535ec130524e61fe1e2606baab53bc1c2e77287d06borenet@google.com exportVar GYP_GENERATOR_FLAGS "" 5405d550ed364d459233874a6dcc1af3c95f195548borenet@google.com exportVar SKIA_OUT "out/config/chromeos-${TARGET_DEVICE}" 555ec130524e61fe1e2606baab53bc1c2e77287d06borenet@google.com exportVar builddir_name "." 5605d550ed364d459233874a6dcc1af3c95f195548borenet@google.com} 57