message: build.sh -C option entirely cleans the android/ directory
  All (and only) git-ignored files under android/ are deleted.
  This is to prevent a recurring problem where "clean" builds were not
  actually clean in some cases.
diff: @@ -17,6 +17,10 @@ function print_help {
  echo " Generate .tgz build archives, implies -i."
  echo " -c"
  echo " Clean build directories."
  + echo " -C"
  + echo " Clean build directories and revert android/ to a freshly sync'ed state."
  + echo " All (and only) git-ignored files under android/ are deleted."
  + echo " This is sometimes needed instead of -c (which still misses some clean steps)."
  echo " -d"
  echo " Enable matdbg and disable material optimization."
  echo " -f"
  @@ -112,6 +116,7 @@ CMAKE_MINOR=19
  # Internal variables
  ISSUE_CLEAN=false
  +ISSUE_CLEAN_AGGRESSIVE=false
  ISSUE_DEBUG_BUILD=false
  ISSUE_RELEASE_BUILD=false
  @@ -170,6 +175,12 @@ function build_clean {
  rm -Rf android/filament-utils-android/build android/filament-utils-android/.externalNativeBuild android/filament-utils-android/.cxx
  }
  +function build_clean_aggressive {
  + echo "Cleaning build directories..."
  + rm -Rf out
  + git clean -qfX android
  +}
  +
  function build_desktop_target {
  local lc_target=$(echo "$1" | tr '[:upper:]' '[:lower:]')
  local build_targets=$2
  @@ -678,7 +689,7 @@ function run_tests {
  pushd "$(dirname "$0")" > /dev/null
  -while getopts ":hacfijmp:q:uvslwtd" opt; do
  +while getopts ":hacCfijmp:q:uvslwtd" opt; do
  case ${opt} in
  h)
  print_help
  @@ -691,6 +702,9 @@ while getopts ":hacfijmp:q:uvslwtd" opt; do
  c)
  ISSUE_CLEAN=true
  ;;
  + C)
  + ISSUE_CLEAN_AGGRESSIVE=true
  + ;;
  d)
  PRINT_MATDBG_HELP=true
  MATDBG_OPTION="-DFILAMENT_ENABLE_MATDBG=ON, -DFILAMENT_DISABLE_MATOPT=ON"
  @@ -830,6 +844,10 @@ if [[ "${ISSUE_CLEAN}" == "true" ]]; then
  build_clean
  fi
  +if [[ "${ISSUE_CLEAN_AGGRESSIVE}" == "true" ]]; then
  + build_clean_aggressive
  +fi
  +
  if [[ "${ISSUE_DESKTOP_BUILD}" == "true" ]]; then
  build_desktop
  fi
  