From 5418340dc70066252cc116dfed728e4d3c2e2eea Mon Sep 17 00:00:00 2001 From: Herbert Xue Date: Wed, 10 Jan 2024 14:52:55 +0800 Subject: [PATCH] Support converting LOCAL_PROTO_JAVA_OUTPUT_PARAMS LOCAL_PROTO_JAVA_OUTPUT_PARAMS can be converted as "proto.output_params" in androidmk. The "," will be filtered out. Bug: 314862115 Test: m androidmk Change-Id: If784e7fd38e2b729272414afab186be027d3b225 --- androidmk/androidmk/android.go | 8 ++++++++ androidmk/androidmk/androidmk_test.go | 20 ++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/androidmk/androidmk/android.go b/androidmk/androidmk/android.go index 656491181..e7c3a01e5 100644 --- a/androidmk/androidmk/android.go +++ b/androidmk/androidmk/android.go @@ -64,6 +64,7 @@ var rewriteProperties = map[string](func(variableAssignmentContext) error){ "LOCAL_SANITIZE_DIAG": sanitize("diag."), "LOCAL_STRIP_MODULE": strip(), "LOCAL_CFLAGS": cflags, + "LOCAL_PROTO_JAVA_OUTPUT_PARAMS": protoOutputParams, "LOCAL_UNINSTALLABLE_MODULE": invert("installable"), "LOCAL_PROGUARD_ENABLED": proguardEnabled, "LOCAL_MODULE_PATH": prebuiltModulePath, @@ -760,6 +761,13 @@ func cflags(ctx variableAssignmentContext) error { return includeVariableNow(bpVariable{"cflags", bpparser.ListType}, ctx) } +func protoOutputParams(ctx variableAssignmentContext) error { + // The Soong replacement for LOCAL_PROTO_JAVA_OUTPUT_PARAMS doesn't need "," + ctx.mkvalue = ctx.mkvalue.Clone() + ctx.mkvalue.ReplaceLiteral(`, `, ` `) + return includeVariableNow(bpVariable{"proto.output_params", bpparser.ListType}, ctx) +} + func proguardEnabled(ctx variableAssignmentContext) error { val, err := makeVariableToBlueprint(ctx.file, ctx.mkvalue, bpparser.ListType) if err != nil { diff --git a/androidmk/androidmk/androidmk_test.go b/androidmk/androidmk/androidmk_test.go index 08bbb3991..bae73f6ed 100644 --- a/androidmk/androidmk/androidmk_test.go +++ b/androidmk/androidmk/androidmk_test.go @@ -1725,6 +1725,26 @@ android_test { name: "foo", test_suites: ["bar"], } +`, + }, + { + desc: "LOCAL_PROTO_JAVA_OUTPUT_PARAMS", + in: ` +include $(CLEAR_VARS) +LOCAL_MODULE := foo +LOCAL_PROTO_JAVA_OUTPUT_PARAMS := enum_style=java, parcelable_messages=true +include $(BUILD_PACKAGE) + `, + expected: ` +android_app { + name: "foo", + proto: { + output_params: [ + "enum_style=java", + "parcelable_messages=true", + ], + }, +} `, }, }