1*90c8c64dSAndroid Build Coastguard Worker#!/usr/bin/env bash 2*90c8c64dSAndroid Build Coastguard Worker 3*90c8c64dSAndroid Build Coastguard Workertop="$(dirname $0)/../.." 4*90c8c64dSAndroid Build Coastguard Worker 5*90c8c64dSAndroid Build Coastguard Workerfunction buildCodegen() { 6*90c8c64dSAndroid Build Coastguard Worker $top/build/soong/soong_ui.bash --build-mode --all-modules --dir="$PWD" -j codegen_cli 1>&2 7*90c8c64dSAndroid Build Coastguard Worker} 8*90c8c64dSAndroid Build Coastguard Worker 9*90c8c64dSAndroid Build Coastguard Workerif ! command -v codegen_cli 2>&1 >/dev/null; then 10*90c8c64dSAndroid Build Coastguard Worker # First time running codegen 11*90c8c64dSAndroid Build Coastguard Worker buildCodegen 12*90c8c64dSAndroid Build Coastguard Workerelse 13*90c8c64dSAndroid Build Coastguard Worker latestVersion=$(cat $top/frameworks/base/tools/codegen/src/com/android/codegen/SharedConstants.kt | grep 'CODEGEN_VERSION =' | awk '{ print $5 }' | tr -d '"') 14*90c8c64dSAndroid Build Coastguard Worker if [[ $(codegen_cli --version) != $latestVersion ]]; then 15*90c8c64dSAndroid Build Coastguard Worker # Update codegen 16*90c8c64dSAndroid Build Coastguard Worker buildCodegen 17*90c8c64dSAndroid Build Coastguard Worker fi 18*90c8c64dSAndroid Build Coastguard Workerfi 19*90c8c64dSAndroid Build Coastguard Worker 20*90c8c64dSAndroid Build Coastguard Workerexec codegen_cli "$@" 21