-
Notifications
You must be signed in to change notification settings - Fork 4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Replace EXPLICIT_IN_OUTPUT_PATH and Fragment.getOutputDirectoryName w…
…/ Fragment.processForOutputDirectoryMnemonic This better consolidates all the code that computes the output path mnemonic (both the explicit parts like k8-fastbuild and the ST-hash) into one place, OutputPathMnemonicComputer. Note that the determination of the baseline options is still done in BuildConfigurationFunction and passed in. In the new system, Fragment override a function called processForOutputDirectoryMnemonic and have access to an addToMnemonic function, which explicitly adds an entry to the mnemonic, and markAsExplicitInOutputPath, which excludes an option from consideration by ST-hash. This also resolves a code maintenance issue with the old version where options had to be marked as EXPLICIT_IN_OUTPUT_PATH in the FragmentOptions while also having the exact logic for how they were represented in Fragment. Now, both the declaration and naming logic can be co-located. As a mild cleanup, the cpu is no longer explicitly added to the output path as part of CppConfiguration fragment but instead is now always the first part of the mnemonic. This (along with the consolidation done by this CL in general) should simplify later work on including the `--platforms` as explicitly part of the output path. The exact order of mnemonic parts will scramble slightly. The mnemonic now always starts with [cpu/platform]-[compilation_mode]-[platform_suffix] versus the old behavior of the cpu only being added as part of the CppFragment logic and [compilation_mode]-[platform_suffix] coming later. However, the new order should be more consistent and explainable in general. There is a slight regression in behavior for `--output_directory_naming_scheme=legacy` as the code for updating `affected by starlark transition` after a transition cannot yet know if the changed options will be explicit in the output path. Thus, all changes variables are included in the ST-hash. (This is actually a reversion back to much older behaviors and hopefully most users have migrated to using `--output_directory_naming_scheme=diff_against_dynamic_baseline`.) RELNOTES: Change output paths to consistently start with [cpu]-[compilation_mode] along with other cleanups to output path generation logic. PiperOrigin-RevId: 565154905 Change-Id: Ic3501b768a0d77d1f0811cc68ec91ece332cd5df
- Loading branch information
1 parent
a2f5e82
commit 4dc0d11
Showing
29 changed files
with
719 additions
and
567 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.