xref: /aosp_15_r20/build/make/tools/finalization/build-step-0.sh (revision 9e94795a3d4ef5c1d47486f9a02bb378756cea8a)
1*9e94795aSAndroid Build Coastguard Worker#!/bin/bash
2*9e94795aSAndroid Build Coastguard Worker# Copyright 2024 Google Inc. All rights reserved.
3*9e94795aSAndroid Build Coastguard Worker
4*9e94795aSAndroid Build Coastguard Workerset -ex
5*9e94795aSAndroid Build Coastguard Worker
6*9e94795aSAndroid Build Coastguard Workerfunction finalize_main_step0() {
7*9e94795aSAndroid Build Coastguard Worker    local top="$(dirname "$0")"/../../../..
8*9e94795aSAndroid Build Coastguard Worker    source $top/build/make/tools/finalization/environment.sh
9*9e94795aSAndroid Build Coastguard Worker
10*9e94795aSAndroid Build Coastguard Worker    local need_vintf_finalize=false
11*9e94795aSAndroid Build Coastguard Worker    if [ "$FINAL_STATE" = "unfinalized" ] ; then
12*9e94795aSAndroid Build Coastguard Worker        need_vintf_finalize=true
13*9e94795aSAndroid Build Coastguard Worker    else
14*9e94795aSAndroid Build Coastguard Worker        # build-step-0.sh tests the vintf finalization step (step-0) when the
15*9e94795aSAndroid Build Coastguard Worker        # FINAL_BOARD_API_LEVEL is the same as the RELEASE_BOARD_API_LEVEL; and
16*9e94795aSAndroid Build Coastguard Worker        # RELEASE_BOARD_API_LEVEL_FROZEN is not true from the fina_0 configuration.
17*9e94795aSAndroid Build Coastguard Worker        # The FINAL_BOARD_API_LEVEL must be the next vendor API level to be finalized.
18*9e94795aSAndroid Build Coastguard Worker        local board_api_level_vars=$(TARGET_RELEASE=fina_0 $top/build/soong/soong_ui.bash --dumpvars-mode -vars "RELEASE_BOARD_API_LEVEL_FROZEN RELEASE_BOARD_API_LEVEL")
19*9e94795aSAndroid Build Coastguard Worker        local target_board_api_level_vars="RELEASE_BOARD_API_LEVEL_FROZEN=''
20*9e94795aSAndroid Build Coastguard WorkerRELEASE_BOARD_API_LEVEL='$FINAL_BOARD_API_LEVEL'"
21*9e94795aSAndroid Build Coastguard Worker        if [ "$board_api_level_vars" = "$target_board_api_level_vars" ] ; then
22*9e94795aSAndroid Build Coastguard Worker            echo The target is a finalization candidate.
23*9e94795aSAndroid Build Coastguard Worker            need_vintf_finalize=true
24*9e94795aSAndroid Build Coastguard Worker        fi;
25*9e94795aSAndroid Build Coastguard Worker    fi;
26*9e94795aSAndroid Build Coastguard Worker
27*9e94795aSAndroid Build Coastguard Worker    if [ "$need_vintf_finalize" = true ] ; then        # VINTF finalization
28*9e94795aSAndroid Build Coastguard Worker        source $top/build/make/tools/finalization/finalize-vintf-resources.sh
29*9e94795aSAndroid Build Coastguard Worker    fi;
30*9e94795aSAndroid Build Coastguard Worker}
31*9e94795aSAndroid Build Coastguard Worker
32*9e94795aSAndroid Build Coastguard Workerfinalize_main_step0
33