Merge "Generate specific message for build flag declarations artifact" into main
diff --git a/android/selects_test.go b/android/selects_test.go
index 42a8941..87ba42a 100644
--- a/android/selects_test.go
+++ b/android/selects_test.go
@@ -546,6 +546,24 @@
},
},
{
+ name: "Unhandled string value",
+ bp: `
+ my_module_type {
+ name: "foo",
+ my_string: select(soong_config_variable("my_namespace", "my_variable"), {
+ "foo": "a",
+ "bar": "b",
+ }),
+ }
+ `,
+ vendorVars: map[string]map[string]string{
+ "my_namespace": {
+ "my_variable": "baz",
+ },
+ },
+ expectedError: `my_string: soong_config_variable\("my_namespace", "my_variable"\) had value "baz", which was not handled by the select statement`,
+ },
+ {
name: "Select on boolean",
bp: `
my_module_type {
@@ -596,7 +614,7 @@
}),
}
`,
- expectedError: "foo",
+ expectedError: `my_string: boolean_var_for_testing\(\) had value undefined, which was not handled by the select statement`,
},
{
name: "Select on boolean undefined with default",
diff --git a/cmd/release_config/release_config_lib/util.go b/cmd/release_config/release_config_lib/util.go
index 6190b44..0af99a6 100644
--- a/cmd/release_config/release_config_lib/util.go
+++ b/cmd/release_config/release_config_lib/util.go
@@ -149,9 +149,12 @@
disableWarnings = true
}
+// warnf will log to stdout if warnings are enabled. In make code,
+// stdout is redirected to a file, so the warnings will not be shown
+// in the terminal.
func warnf(format string, args ...any) (n int, err error) {
if !disableWarnings {
- return fmt.Fprintf(os.Stderr, format, args...)
+ return fmt.Printf(format, args...)
}
return 0, nil
}
diff --git a/java/base.go b/java/base.go
index e97d28d..d04e97c 100644
--- a/java/base.go
+++ b/java/base.go
@@ -715,7 +715,12 @@
// doesn't make sense) or framework libraries (e.g. libraries found in the InstrumentFrameworkModules list) unless EMMA_INSTRUMENT_FRAMEWORK is true.
apexInfo, _ := android.ModuleProvider(ctx, android.ApexInfoProvider)
isJacocoAgent := ctx.ModuleName() == "jacocoagent"
- if j.DirectlyInAnyApex() && !isJacocoAgent && !apexInfo.IsForPlatform() {
+
+ isApexVariantSdkLibImplLib := j.SdkLibraryName() != nil &&
+ strings.HasSuffix(j.Name(), ".impl") &&
+ len(apexInfo.InApexVariants) > 0
+
+ if (j.DirectlyInAnyApex() || isApexVariantSdkLibImplLib) && !isJacocoAgent && !apexInfo.IsForPlatform() {
if !inList(ctx.ModuleName(), config.InstrumentFrameworkModules) {
return true
} else if ctx.Config().IsEnvTrue("EMMA_INSTRUMENT_FRAMEWORK") {