Currently, when you do `m` repeatedly, it does a little bit of
rebuilding to copy release config files around. If we change
release-config to only rewrite the files if they've changed, we
get a proper "ninja: no work to do." message.
Bug: 346757289
Test: m repeatedly
Change-Id: I9c1f6d34ec20d14b684a0183c5ec457ea92440f9
This allows us to generate an error when it is then set in an earlier
location in the list.
Bug: 346883187
Test: manual
Change-Id: I1c8389ff0d5a16c080008967ab5e0b9b93101301
- move WriteMakefile to release_config.go
- use slices.Sort instead of slices.SortFunc where applicable.
- improve error message when inheriting an invalid release config
Bug: None
Test: manual
Change-Id: Id959ddccc75fad912518d5cce8d14da506e0bbea
If we are setting a flag for a release config in a map directory that
doesn't yet declare that release config, this map directory needs to
contribute to the release config.
Bug: 345278765
Test: manual
Change-Id: Ie4e74bce008c4c4fdc4bc16e3209f0d9ef9cf8a2
Let graphvis decide how to best display the release config graph.
Also add some color to the graph.
Bug: None
Test: manual
Change-Id: If8b9eb41eb78bd553fd5543938a2c1c098b41591
If the release config has a name matching build prefixes, it may not
inherit from an alias.
Bug: 340208722
Bug: 328495189
Test: manual
Change-Id: Idb7b1fa372db980c5732b700663553b7a9bf4a36
Include those paths in the inheritance graph.
Bug: 348495189
Test: manual
Merged-In: I993af3a34ab7dd9a3346c6ffccb17e7abff23545
Change-Id: I993af3a34ab7dd9a3346c6ffccb17e7abff23545
release-config now creates `inhertance_graph-${TARGET_PRODUCT}.dot`
showing the inheritance graph for all release configs present for
${TARGET_PRODUCT}.
Bug: 328495189
Test: manual, TH
Change-Id: I79242eaa848e0374b33f376e44d8938e9d398e21
If the release config name is a build prefix and different from the
inherited value, set RELEASE_PLATFORM_VERSION based on the release
config name.
Bug: 348495189
Test: manual
Change-Id: I95d715150cba9b57e343a8b8364d36f38dcc18a3
Define release_flags_json module type to install build_flags.json in
'etc'. release_flags_json reads the json files generated from the
soong release-config command.
Bug: 324996303
Test: build and see if the files are installed
Change-Id: I8cdcb7c61dd75cc54e4912d2ed7d1687f424151c
Many of the fields in `flag_artifact` are not valid in
the all_build_flag_definitions artifact.
Bug: 328495189
Test: manual
Change-Id: I00eab1ef76f67f7db2118a6fc0d5771e3dd39fbb
This was previously used in conjunction with blueprint_package_includes
to prune Android.bp files from soong analysis.
Test: m nothing
Bug: 308188212
Change-Id: Ie82e20eec63bd0be70e1cf0290c70f62d5621c76
Currently, both stdout and stderr are redirected to a file. We want
stderr to be visible on the terminal in case the release config
fails, but we don't want to see the spam of warnings release config
always produces.
Move the warnings to stdout so they stay in the file when we start
showing stderr.
Test: m nothing
Change-Id: Ic869675f917270a472142b6e3a4210acaad7499b
And use the types to appropriately type selects on the release
variables.
Bug: 323382414
Test: Presubmits
Change-Id: Ide7eca95662caaa7b4be42e20399d9fcd7fed35f
Also use a different name for the output.
Bug: 341117082
Bug: 328495189
Bug: 339707888
Test: manual, TH
Change-Id: Ib98d487f57cf8b55dff61a7969139a6e199fee90
If a map was included twice, we had side effects when skipping the extra
inclusion.
Bug: 340659219
Test: manual, TH
Change-Id: I90c55a800ecad932f8f67cf6f9f60dba571f7c48
Only add a repository to the trace when it actually specifies
aconfig_value_sets.
Also default to only generating the release config .mk file for the
current TARGET_RELEASE (rather than all), to reduce kati reruns.
Bug: 340126861
Test: manual, TH
Change-Id: I671d4b5f57c9bdd252d98e048f16aa9c7b3b2ffa
soong_build uses / as it's cwd, so we need to specify the top directory
when checkign for files.
Test: add a printf in the if statement; touch out/soong/Android.bp && m nothing; ensure printf doesn't fire
Change-Id: Iba9773765547b22a03dbca33aa6b8c75359cb5ff
If the default value for RELEASE_ACONFIG_VALUE_SETS is not a string,
the resulting value is the empty string.
Bug: 328495189
Test: manual
Change-Id: Ie8f262d6408b1564ec7a3918f8654ccfa9bc5940
When writing all makefiles, we also need to write the makefile for
${TARGET_RELEASE}. We can skip writing it a second time if it is not
an alias.
Bug: 328495189
Test: manual, TH
Change-Id: Ia5d1955f419312c76eb9c8a33b1c8a6bcc5efe0b
The default directory for flag values is the last of:
- Where the flag is declared,
- Where the release config is first declared,
- Where the flag value is currently being set for this release config.
Bug: 328495189
Test: manual
Change-Id: Ida1f906b75704f658e7fa1de703e0c789dce06a6