Merge "Mark files used in release configs as kati dependencies" into main

This commit is contained in:
LaMont Jones 2024-05-17 00:40:55 +00:00 committed by Gerrit Code Review
commit 48132d6580

View file

@ -13,6 +13,16 @@
# limitations under the License.
# -----------------------------------------------------------------
# Determine which pass this is.
# -----------------------------------------------------------------
# On the first pass, we are asked for only PRODUCT_RELEASE_CONFIG_MAPS,
# on the second pass, we are asked for whatever else is wanted.
_final_product_config_pass:=
ifneq (PRODUCT_RELEASE_CONFIG_MAPS,$(DUMP_MANY_VARS))
_final_product_config_pass:=true
endif
# -----------------------------------------------------------------
# Choose the flag files
# -----------------------------------------------------------------
@ -90,7 +100,7 @@ $(foreach map,$(protobuf_map_files), \
ifneq (,$(_must_protobuf))
ifeq (,$(_can_protobuf))
# We must use protobuf, but we cannot use protobuf.
# We must use protobuf, but we cannot use protobuf.
$(error release config is a mixture of .scl and .textproto)
endif
endif
@ -120,11 +130,22 @@ ifneq (,$(_use_protobuf))
# Disable the build flag in release-config.
_args += --guard=false
endif
$(KATI_shell_no_rerun $(OUT_DIR)/release-config $(_args) >$(OUT_DIR)/release-config.out && touch -t 200001010000 $(OUT_DIR)/release-config.out)
_flags_file:=$(OUT_DIR)/soong/release-config/release_config-$(TARGET_PRODUCT)-$(TARGET_RELEASE).vars
# release-config generates $(_flags_varmk)
_flags_varmk:=$(_flags_file:.vars=.varmk)
$(shell $(OUT_DIR)/release-config $(_args) >$(OUT_DIR)/release-config.out 2>&1 && touch -t 200001010000 $(_flags_varmk))
$(if $(filter-out 0,$(.SHELLSTATUS)),$(error release-config failed to run))
# This will also set _all_release_configs for us.
$(eval include $(OUT_DIR)/soong/release-config/release_config-$(TARGET_PRODUCT)-$(TARGET_RELEASE).mk)
$(KATI_extra_file_deps $(OUT_DIR)/release-config $(config_map_files))
ifneq (,$(_final_product_config_pass))
# Save the final version of the config.
$(shell if ! cmp --quiet $(_flags_varmk) $(_flags_file); then cp $(_flags_varmk) $(_flags_file); fi)
# This will also set _all_release_configs and _used_files for us.
$(eval include $(_flags_file))
$(KATI_extra_file_deps $(OUT_DIR)/release-config $(protobuf_map_files) $(_flags_file))
else
# This is the first pass of product config.
$(eval include $(_flags_varmk))
endif
_used_files :=
ifeq (,$(_must_protobuf)$(RELEASE_BUILD_FLAGS_IN_PROTOBUF))
_use_protobuf :=
endif
@ -237,7 +258,7 @@ endif
# During pass 1 of product config, using a non-existent release config is not an error.
# We can safely assume that we are doing pass 1 if DUMP_MANY_VARS=="PRODUCT_RELEASE_CONFIG_MAPS".
ifneq (PRODUCT_RELEASE_CONFIG_MAPS,$(DUMP_MANY_VARS))
ifneq (,$(_final_product_config_pass))
ifeq ($(filter $(_all_release_configs), $(TARGET_RELEASE)),)
$(error No release config found for TARGET_RELEASE: $(TARGET_RELEASE). Available releases are: $(_all_release_configs))
endif