10f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)#!/bin/bash 20f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)# Copyright 2013 The Chromium Authors. All rights reserved. 30f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be 40f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)# found in the LICENSE file. 50f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) 60f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)# This a simple script to make building/testing Mojo components easier (on 70f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)# Linux). 80f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) 90f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)# TODO(vtl): Maybe make the test runner smart and not run unchanged test 100f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)# binaries. 110f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)# TODO(vtl) Maybe also provide a way to pass command-line arguments to the test 120f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)# binaries. 130f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) 14f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)do_help() { 15f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) cat << EOF 16f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)Usage: $(basename "$0") [command|option ...] 17f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 18f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)command should be one of: 19f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) build - Build. 20f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) test - Run unit tests (does not build). 21c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch perftest - Run perf tests (does not build). 22c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch pytest - Run Python unit tests. 23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch gyp - Run gyp for mojo (does not sync). 24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch gypall - Run gyp for all of chromium (does not sync). 25f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) sync - Sync using gclient (does not run gyp). 26f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) show-bash-alias - Outputs an appropriate bash alias for mojob. In bash do: 27f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) \$ eval \`mojo/tools/mojob.sh show-bash-alias\` 28f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 29f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)option (which will only apply to following commands) should be one of: 30f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) Build/test options (specified before build/test/perftest): 31f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) --debug - Build/test in Debug mode. 32f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) --release - Build/test in Release mode. 33f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) --debug-and-release - Build/test in both Debug and Release modes (default). 34f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) Compiler options (specified before gyp): 35f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) --clang - Use clang (default). 36f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) --gcc - Use gcc. 37f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) Component options: 38f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) --shared Build components as shared libraries (default). 39f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) --static Build components as static libraries. 406e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) Use goma: 416e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) --use-goma - Use goma if \$GOMA_DIR is set or \$HOME/goma exists (default). 426e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) --no-use-goma - Do not use goma. 43f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 44f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)Note: It will abort on the first failure (if any). 45f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)EOF 46f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 470f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) 48f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)do_build() { 49f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) echo "Building in out/$1 ..." 506e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) if [ "$GOMA" = "auto" -a -v GOMA_DIR ]; then 516e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) ninja -j 1000 -C "out/$1" mojo || exit 1 526e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) else 536e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) ninja -C "out/$1" mojo || exit 1 546e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) fi 550f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)} 560f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) 57f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)do_unittests() { 58f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) echo "Running unit tests in out/$1 ..." 59effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch mojo/tools/test_runner.py mojo/tools/data/unittests "out/$1" \ 60effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch mojob_test_successes || exit 1 610f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)} 620f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) 63f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)do_perftests() { 64f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) echo "Running perf tests in out/$1 ..." 655d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) "out/$1/mojo_public_system_perftests" || exit 1 660f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)} 670f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) 68c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochdo_pytests() { 690529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch python mojo/tools/run_mojo_python_tests.py || exit 1 70c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch} 71c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 72f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)do_gyp() { 73f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) local gyp_defines="$(make_gyp_defines)" 74116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch echo "Running gyp for mojo with GYP_DEFINES=$gyp_defines ..." 75a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) GYP_DEFINES="$gyp_defines" build/gyp_chromium mojo/mojo.gyp || exit 1 76a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 77a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 78116680a4aac90f2aa7413d9095a592090648e557Ben Murdochdo_gypall() { 79116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch local gyp_defines="$(make_gyp_defines)" 80116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch echo "Running gyp for everything with GYP_DEFINES=$gyp_defines ..." 81116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch GYP_DEFINES="$gyp_defines" build/gyp_chromium || exit 1 82116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 83116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 84a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)do_sync() { 85a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) # Note: sync only (with hooks, but no gyp-ing). 86a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) GYP_CHROMIUM_NO_ACTION=1 gclient sync || exit 1 87f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 88f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 89f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)# Valid values: Debug, Release, or Debug_and_Release. 90f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)BUILD_TEST_TYPE=Debug_and_Release 91f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)should_do_Debug() { 92f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) test "$BUILD_TEST_TYPE" = Debug -o "$BUILD_TEST_TYPE" = Debug_and_Release 93f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 94f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)should_do_Release() { 95f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) test "$BUILD_TEST_TYPE" = Release -o "$BUILD_TEST_TYPE" = Debug_and_Release 96f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 97f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 98f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)# Valid values: clang or gcc. 99f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)COMPILER=clang 100f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)# Valid values: shared or static. 101f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)COMPONENT=shared 1026e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)# Valid values: auto or disabled. 1036e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)GOMA=auto 104f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)make_gyp_defines() { 105f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) local options=() 106f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) # Always include these options. 107f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) options+=("use_aura=1") 108f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) case "$COMPILER" in 109f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) clang) 110f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) options+=("clang=1") 111f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) ;; 112f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) gcc) 113f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) options+=("clang=0") 114f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) ;; 115f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) esac 116f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) case "$COMPONENT" in 117f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) shared) 118f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) options+=("component=shared_library") 119f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) ;; 120f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) static) 121f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) options+=("component=static_library") 122f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) ;; 123f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) esac 1246e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) case "$GOMA" in 1256e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) auto) 1266e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) if [ -v GOMA_DIR ]; then 1276e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) options+=("use_goma=1" "gomadir=\"${GOMA_DIR}\"") 1286e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) else 1296e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) options+=("use_goma=0") 1306e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) fi 1316e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) ;; 1326e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) disabled) 1336e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) options+=("use_goma=0") 1346e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) ;; 1356e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) esac 1366e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) echo "${options[*]}" 1376e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)} 1386e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 1396e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)set_goma_dir_if_necessary() { 1406e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) if [ "$GOMA" = "auto" -a ! -v GOMA_DIR ]; then 1416e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) if [ -d "${HOME}/goma" ]; then 1426e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) GOMA_DIR="${HOME}/goma" 1436e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) fi 1446e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) fi 1456e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)} 1466e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 1476e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)start_goma_if_necessary() { 1486e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) if [ "$GOMA" = "auto" -a -v GOMA_DIR ]; then 1496e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) "${GOMA_DIR}/goma_ctl.py" ensure_start 1506e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) fi 151f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 152f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 153f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)# We're in src/mojo/tools. We want to get to src. 154f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)cd "$(realpath "$(dirname "$0")")/../.." 155f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 156f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)if [ $# -eq 0 ]; then 157f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) do_help 158f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) exit 0 159f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)fi 160f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 1610f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)for arg in "$@"; do 1620f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) case "$arg" in 163f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) # Commands ----------------------------------------------------------------- 1640f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) help|--help) 165f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) do_help 1660f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) exit 0 1670f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) ;; 1680f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) build) 1696e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) set_goma_dir_if_necessary 1706e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) start_goma_if_necessary 171f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) should_do_Debug && do_build Debug 172f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) should_do_Release && do_build Release 1730f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) ;; 1740f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) test) 175f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) should_do_Debug && do_unittests Debug 176f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) should_do_Release && do_unittests Release 1770f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) ;; 1780f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) perftest) 179f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) should_do_Debug && do_perftests Debug 180f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) should_do_Release && do_perftests Release 1810f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) ;; 182c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch pytest) 183c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch do_pytests 184c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch ;; 1850f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) gyp) 1866e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) set_goma_dir_if_necessary 187f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) do_gyp 1880f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) ;; 189116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch gypall) 1906e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) set_goma_dir_if_necessary 191116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch do_gypall 192116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch ;; 1930f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) sync) 194a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) do_sync 1950f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) ;; 1960f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) show-bash-alias) 1970f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) # You want to type something like: 1980f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) # alias mojob=\ 1990f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) # '"$(pwd | sed '"'"'s/\(.*\/src\).*/\1/'"'"')/mojo/tools/mojob.sh"' 2000f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) # This is quoting hell, so we simply escape every non-alphanumeric 2010f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) # character. 2020f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) echo alias\ mojob\=\'\"\$\(pwd\ \|\ sed\ \'\"\'\"\'s\/\\\(\.\*\\\/src\\\)\ 2030f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)\.\*\/\\1\/\'\"\'\"\'\)\/mojo\/tools\/mojob\.sh\"\' 2040f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) ;; 205f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) # Options ------------------------------------------------------------------ 206f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) --debug) 207f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) BUILD_TEST_TYPE=Debug 208f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) ;; 209f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) --release) 210f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) BUILD_TEST_TYPE=Release 211f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) ;; 212f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) --debug-and-release) 213f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) BUILD_TEST_TYPE=Debug_and_Release 214f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) ;; 215f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) --clang) 216f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) COMPILER=clang 217f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) ;; 218f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) --gcc) 219f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) COMPILER=gcc 220f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) ;; 221f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) --shared) 222f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) COMPONENT=shared 223f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) ;; 224f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) --static) 225f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) COMPONENT=static 226f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) ;; 2276e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) --use-goma) 2286e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) GOMA=auto 2296e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) ;; 2306e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) --no-use-goma) 2316e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) GOMA=disabled 2326e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) ;; 2330f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) *) 2340f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) echo "Unknown command \"${arg}\". Try \"$(basename "$0") help\"." 2350f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) exit 1 2360f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) ;; 2370f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) esac 2380f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)done 239