Skip to content

Commit

Permalink
Merge tag 'android-14.0.0_r66' of https://android.googlesource.com/pl…
Browse files Browse the repository at this point in the history
…atform/build into HEAD

Android 14.0.0 release 66
  • Loading branch information
Dyneteve committed Aug 24, 2024
2 parents 5a15476 + 19f0a3f commit 4e11f1d
Show file tree
Hide file tree
Showing 4 changed files with 184 additions and 16 deletions.
2 changes: 1 addition & 1 deletion core/build_id.mk
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.

BUILD_ID=AP2A.240705.005
BUILD_ID=AD1A.240530.047
170 changes: 156 additions & 14 deletions core/release_config.mk
Original file line number Diff line number Diff line change
Expand Up @@ -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
# -----------------------------------------------------------------
Expand Down Expand Up @@ -41,7 +51,9 @@
# which has OWNERS control. If it isn't let others define their own.
# TODO: Remove wildcard for build/release one when all branch manifests
# have updated.
_must_protobuf :=
config_map_files := $(wildcard build/release/release_config_map.mk) \
$(wildcard vendor/google_shared/build/release/release_config_map.mk) \
$(if $(wildcard vendor/google/release/release_config_map.mk), \
vendor/google/release/release_config_map.mk, \
$(sort \
Expand All @@ -52,13 +64,111 @@ config_map_files := $(wildcard build/release/release_config_map.mk) \
) \
)

protobuf_map_files := $(wildcard build/release/release_config_map.textproto) \
$(wildcard vendor/google_shared/build/release/release_config_map.textproto) \
$(if $(wildcard vendor/google/release/release_config_map.textproto), \
vendor/google/release/release_config_map.textproto, \
$(sort \
$(wildcard device/*/release/release_config_map.textproto) \
$(wildcard device/*/*/release/release_config_map.textproto) \
$(wildcard vendor/*/release/release_config_map.textproto) \
$(wildcard vendor/*/*/release/release_config_map.textproto) \
) \
)

# PRODUCT_RELEASE_CONFIG_MAPS is set by Soong using an initial run of product
# config to capture only the list of config maps needed by the build.
# Keep them in the order provided, but remove duplicates.
# Treat .mk and .textproto as equal for duplicate elimination, but force
# protobuf if any PRODUCT_RELEASE_CONFIG_MAPS specify .textproto.
$(foreach map,$(PRODUCT_RELEASE_CONFIG_MAPS), \
$(if $(filter $(map),$(config_map_files)),,$(eval config_map_files += $(map))) \
$(if $(filter $(basename $(map)),$(basename $(config_map_files))),, \
$(eval config_map_files += $(map))) \
$(if $(filter $(basename $(map)).textproto,$(map)),$(eval _must_protobuf := true)) \
)


# If we are missing the textproto version of any of $(config_map_files), we cannot use protobuf.
_can_protobuf := true
$(foreach map,$(config_map_files), \
$(if $(wildcard $(basename $(map)).textproto),,$(eval _can_protobuf :=)) \
)
# If we are missing the mk version of any of $(protobuf_map_files), we must use protobuf.
$(foreach map,$(protobuf_map_files), \
$(if $(wildcard $(basename $(map)).mk),,$(eval _must_protobuf := true)) \
)

ifneq (,$(_must_protobuf))
ifeq (,$(_can_protobuf))
# We must use protobuf, but we cannot use protobuf.
$(error release config is a mixture of .scl and .textproto)
endif
endif

_use_protobuf :=
ifneq (,$(_must_protobuf))
_use_protobuf := true
else
ifneq ($(_can_protobuf),)
# Determine the default
$(foreach map,$(config_map_files), \
$(if $(wildcard $(dir $(map))/build_config/DEFAULT=proto),$(eval _use_protobuf := true)) \
$(if $(wildcard $(dir $(map))/build_config/DEFAULT=make),$(eval _use_protobuf := )) \
)
# Update for this specific release config only (no inheritance).
$(foreach map,$(config_map_files), \
$(if $(wildcard $(dir $(map))/build_config/$(TARGET_RELEASE)=proto),$(eval _use_protobuf := true)) \
$(if $(wildcard $(dir $(map))/build_config/$(TARGET_RELEASE)=make),$(eval _use_protobuf := )) \
)
endif
endif

ifneq (,$(_use_protobuf))
# The .textproto files are the canonical source of truth.
_args := $(foreach map,$(config_map_files), --map $(map) )
ifneq (,$(_must_protobuf))
# Disable the build flag in release-config.
_args += --guard=false
endif
_flags_dir:=$(OUT_DIR)/soong/release-config
_flags_file:=$(_flags_dir)/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))
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 :=
else
_base_all_release := all_release_configs-$(TARGET_PRODUCT)
$(call dist-for-goals,droid,\
$(_flags_dir)/$(_base_all_release).pb:build_flags/all_release_configs.pb \
$(_flags_dir)/$(_base_all_release).textproto:build_flags/all_release_configs.textproto \
$(_flags_dir)/$(_base_all_release).json:build_flags/all_release_configs.json \
)
# These are always created, add an empty rule for them to keep ninja happy.
$(_flags_dir)/$(_base_all_release).pb $(_flags_dir)/$(_base_all_release).textproto $(_flags_dir)/$(_base_all_release).json:
: created by $(OUT_DIR)/release-config
_base_all_release :=
endif
_flags_dir:=
_flags_file:=
_flags_varmk:=
endif
ifeq (,$(_use_protobuf))
# The .mk files are the canonical source of truth.


# Declare an alias release-config
#
# This should be used to declare a release as an alias of another, meaning no
Expand Down Expand Up @@ -117,15 +227,35 @@ define _declare-release-config
endef

# Include the config map files and populate _flag_declaration_files.
# If the file is found more than once, only include it the first time.
_flag_declaration_files :=
_included_config_map_files :=
$(foreach f, $(config_map_files), \
$(eval FLAG_DECLARATION_FILES:= ) \
$(eval _included := $(f)) \
$(eval include $(f)) \
$(eval _flag_declaration_files += $(FLAG_DECLARATION_FILES)) \
$(if $(filter $(_included_config_map_files),$(f)),,\
$(eval _included := $(f)) \
$(eval include $(f)) \
$(eval _flag_declaration_files += $(FLAG_DECLARATION_FILES)) \
$(eval _included_config_map_files += $(f)) \
) \
)
FLAG_DECLARATION_FILES :=

# Verify that all inherited/overridden release configs are declared.
$(foreach config,$(_all_release_configs),\
$(foreach r,$(all_release_configs.$(r).OVERRIDES),\
$(if $(strip $(_all_release_configs.$(r).FILES)$(_all_release_configs.$(r).OVERRIDES)),,\
$(error Release config $(config) [declared in: $(_all_release_configs.$(r).DECLARED_IN)] inherits from non-existent $(r).)\
)))
# Verify that alias configs do not have config files.
$(foreach r,$(_all_release_configs),\
$(if $(_all_release_configs.$(r).ALIAS),$(if $(_all_release_configs.$(r).FILES),\
$(error Alias release config "$(r)" may not specify release config files $(_all_release_configs.$(r).FILES))\
)))

# Use makefiles
endif

ifeq ($(TARGET_RELEASE),)
# We allow some internal paths to explicitly set TARGET_RELEASE to the
# empty string. For the most part, 'make' treats unset and empty string as
Expand All @@ -141,10 +271,15 @@ ifeq ($(TARGET_RELEASE),)
TARGET_RELEASE = trunk_staging
endif

ifeq ($(filter $(_all_release_configs), $(TARGET_RELEASE)),)
$(error No release config found for TARGET_RELEASE: $(TARGET_RELEASE). Available releases are: $(_all_release_configs))
# 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 (,$(_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
endif

ifeq (,$(_use_protobuf))
# Choose flag files
# Don't sort this, use it in the order they gave us.
# Do allow duplicate entries, retaining only the first usage.
Expand All @@ -170,10 +305,13 @@ $(call _apply-release-config-overrides,$(TARGET_RELEASE))
define declare-release-config
$(error declare-release-config can only be called from inside release_config_map.mk files)
endef
define apply-release-config-overrides
define _apply-release-config-overrides
$(error invalid use of apply-release-config-overrides)
endef

# use makefiles
endif

# TODO: Remove this check after enough people have sourced lunch that we don't
# need to worry about it trying to do get_build_vars TARGET_RELEASE. Maybe after ~9/2023
ifneq ($(CALLED_FROM_SETUP),true)
Expand All @@ -185,21 +323,20 @@ TARGET_RELEASE:=
endif
.KATI_READONLY := TARGET_RELEASE

# Verify that alias configs do not have config files.
$(foreach r,$(_all_release_configs),\
$(if $(_all_release_configs.$(r).ALIAS),$(if $(_all_release_configs.$(r).FILES),\
$(error Alias release config "$(r)" may not specify release config files $(_all_release_configs.$(r).FILES))\
)))

ifeq (,$(_use_protobuf))
$(foreach config, $(_all_release_configs), \
$(eval _all_release_configs.$(config).DECLARED_IN:= ) \
$(eval _all_release_configs.$(config).FILES:= ) \
)
applied_releases:=
# use makefiles
endif
_all_release_configs:=
config_map_files:=
applied_releases:=
protobuf_map_files:=


ifeq (,$(_use_protobuf))
# -----------------------------------------------------------------
# Flag declarations and values
# -----------------------------------------------------------------
Expand Down Expand Up @@ -236,3 +373,8 @@ filename_to_starlark:=
# outside of the source tree.
$(call run-starlark,$(OUT_DIR)/release_config_entrypoint.scl,$(OUT_DIR)/release_config_entrypoint.scl,--allow_external_entrypoint)

# use makefiles
endif
_can_protobuf :=
_must_protobuf :=
_use_protobuf :=
21 changes: 20 additions & 1 deletion core/release_config.scl
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,21 @@ def _format_value(val):
else:
return val

def equal_flag_declaration(flag, other):
"""Return true if the flag declarations are equal.

Args:
flag: This flag declaration.
other: Another flag declaration.

Returns:
Whether the declarations are the same.
"""
for key in "name", "partitions", "default", "appends":
if flag[key] != other[key]:
return False
return True

def release_config(all_flags, all_values):
"""Return the make variables that should be set for this release config.

Expand All @@ -163,7 +178,11 @@ def release_config(all_flags, all_values):
flags_dict = {}
for flag in all_flags:
if flag["name"] in flag_names:
fail(flag["declared_in"] + ": Duplicate declaration of flag " + flag["name"])
if equal_flag_declaration(flag, flags_dict[flag["name"]]):
continue
else:
fail(flag["declared_in"] + ": Duplicate declaration of flag " + flag["name"] +
" (declared first in " + flags_dict[flag["name"]]["declared_in"] + ")")
flag_names.append(flag["name"])
flags_dict[flag["name"]] = flag

Expand Down
7 changes: 7 additions & 0 deletions teams/Android.bp
Original file line number Diff line number Diff line change
Expand Up @@ -4350,6 +4350,13 @@ team {
trendy_team_id: "5823575353065472",
}

team {
name: "trendy_team_pixel_pearl",

// go/trendy/manage/engineers/6326219602231296
trendy_team_id: "6326219602231296",
}

team {
name: "trendy_team_ar_sensors_context_hub",

Expand Down

0 comments on commit 4e11f1d

Please sign in to comment.