#!/bin/bash # Argument format: # $1 = Path to aconfig binary # $2 = Path to the aconfig_embedded_flagging directory # [$3:$@] = Any number of aconfig flag value *.textproto files # Set the default ACONFIG variables if not provided by environment DEFAULT_ACONFIG_BIN=$ANDROID_BUILD_TOP/prebuilts/build-tools/linux-x86/bin/aconfig DEFAULT_ACONFIG_EMB_DIR=. OUT_DIR="out" # Get fully qualified path of any input variables before moving to build dir IN_ACONFIG_BIN=$(realpath "${1:-$DEFAULT_ACONFIG_BIN}") IN_ACONFIG_EMB_DIR=$(realpath "${2:-$DEFAULT_ACONFIG_EMB_DIR}") # Process remaining arguments for flag values shift shift IN_FLAG_VALUES="" for i in "$@"; do IN_FLAG_VALUES+=" --values " IN_FLAG_VALUES+=$(realpath "$i") done pushd $IN_ACONFIG_EMB_DIR > /dev/null mkdir -p $OUT_DIR # Create the aconfig cache based off of the flag declarations and values $IN_ACONFIG_BIN create-cache \ --package android.embedded.chre.flags \ --declarations chre_embedded_flags.aconfig \ $IN_FLAG_VALUES \ --values local-chre_embedded_flag_values.textproto \ --cache $OUT_DIR/chre_embedded_cache # Create the flagging library (.h, .cc) based off of the cache $IN_ACONFIG_BIN create-cpp-lib \ --cache $OUT_DIR/chre_embedded_cache \ --out $OUT_DIR/chre_embedded_flag_lib # Create a text record for the flag values with this build $IN_ACONFIG_BIN dump \ --cache $OUT_DIR/chre_embedded_cache \ --format text \ --out $OUT_DIR/chre_embedded_flag_dump popd > /dev/null