#!/bin/bash

# Copyright 2024, The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# This ad is kind of big, so only show it if this appears to be a clean build.
source $(cd $(dirname $BASH_SOURCE) &> /dev/null && pwd)/../../shell_utils.sh
if [[ ! -e $(getoutdir)/soong/build.${TARGET_PRODUCT}.ninja ]]; then
  echo
  echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
  echo "  Wondering whether to use user, userdebug or eng?"
  echo
  echo "  user        The builds that ship to users. Reduced debugability."
  echo "  userdebug   High fidelity to user builds but with some debugging options"
  echo "              enabled. Best suited for performance testing or day-to-day use"
  echo "              with debugging enabled."
  echo "  eng         More debugging options enabled and faster build times, but"
  echo "              runtime performance tradeoffs. Best suited for day-to-day"
  echo "              local development when not doing performance testing."
  echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
  echo
fi

