diff options
author | Vinh Tran <vinhdaitran@google.com> | 2023-07-21 19:38:23 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-07-21 19:38:23 +0000 |
commit | f0df148dbeb9b9ed3816aad328ebe7c65efaaa24 (patch) | |
tree | c75dabb560288e11786211bdc61ba40dde4b8674 /tools/migration/crosstool_query.py | |
parent | 3544b5a539d9e51161befd2ac3fdc04525bced91 (diff) | |
parent | 9a4853f0327e0266818c8d6b4967e2e8f36b1a88 (diff) | |
download | bazelbuild-rules_cc-f0df148dbeb9b9ed3816aad328ebe7c65efaaa24.tar.gz |
Merge remote-tracking branch 'aosp/upstream-main' into main am: 755aefef35 am: d7bf0d569f am: 59148a708a am: 13ca54997b am: 9a4853f032android-14.0.0_r50android-14.0.0_r37android-14.0.0_r36android-14.0.0_r35android-14.0.0_r34android-14.0.0_r33android-14.0.0_r32android-14.0.0_r31android-14.0.0_r30android-14.0.0_r29android-14.0.0_r28android14-qpr3-releaseandroid14-qpr2-s5-releaseandroid14-qpr2-s4-releaseandroid14-qpr2-s3-releaseandroid14-qpr2-s2-releaseandroid14-qpr2-s1-releaseandroid14-qpr2-release
Original change: https://android-review.googlesource.com/c/platform/external/bazelbuild-rules_cc/+/2663436
Change-Id: I450b9f32024fa1b0844cc21a825c26589feb3977
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'tools/migration/crosstool_query.py')
-rw-r--r-- | tools/migration/crosstool_query.py | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/tools/migration/crosstool_query.py b/tools/migration/crosstool_query.py new file mode 100644 index 0000000..af3f7fa --- /dev/null +++ b/tools/migration/crosstool_query.py @@ -0,0 +1,53 @@ +"""Script to make automated CROSSTOOL refactorings easier. + +This script reads the CROSSTOOL file and allows for querying of its fields. +""" + +from absl import app +from absl import flags +from google.protobuf import text_format +from third_party.com.github.bazelbuild.bazel.src.main.protobuf import crosstool_config_pb2 + +flags.DEFINE_string("crosstool", None, "CROSSTOOL file path to be queried") +flags.DEFINE_string("identifier", None, + "Toolchain identifier to specify toolchain.") +flags.DEFINE_string("print_field", None, "Field to be printed to stdout.") + + +def main(unused_argv): + crosstool = crosstool_config_pb2.CrosstoolRelease() + + crosstool_filename = flags.FLAGS.crosstool + identifier = flags.FLAGS.identifier + print_field = flags.FLAGS.print_field + + if not crosstool_filename: + raise app.UsageError("ERROR crosstool unspecified") + if not identifier: + raise app.UsageError("ERROR identifier unspecified") + + if not print_field: + raise app.UsageError("ERROR print_field unspecified") + + with open(crosstool_filename, "r") as f: + text = f.read() + text_format.Merge(text, crosstool) + + toolchain_found = False + for toolchain in crosstool.toolchain: + if toolchain.toolchain_identifier == identifier: + toolchain_found = True + if not print_field: + continue + for field, value in toolchain.ListFields(): + if print_field == field.name: + print value + + if not toolchain_found: + print "toolchain_identifier %s not found, valid values are:" % identifier + for toolchain in crosstool.toolchain: + print " " + toolchain.toolchain_identifier + + +if __name__ == "__main__": + app.run(main) |