Remove make information from compliant db in soong-only build
Soong only builds won't have the make-metadata.csv/make-modules.csv
files, so don't try to import them into the compliance db.
Bug: 383902856
Test: m --soong-only dist
Change-Id: I081a33bf5cddcbdce548f768d56508d772250329
diff --git a/android/compliance_metadata.go b/android/compliance_metadata.go
index 0b876c3..2f11df6 100644
--- a/android/compliance_metadata.go
+++ b/android/compliance_metadata.go
@@ -236,8 +236,8 @@
blueprint.RuleParams{
Command: `rm -rf $out && ` +
`${sqlite3} $out ".import --csv $in modules" && ` +
- `${sqlite3} $out ".import --csv ${make_metadata} make_metadata" && ` +
- `${sqlite3} $out ".import --csv ${make_modules} make_modules"`,
+ `([ -z "${make_metadata}" ] || ${sqlite3} $out ".import --csv ${make_metadata} make_metadata") && ` +
+ `([ -z "${make_modules}" ] || ${sqlite3} $out ".import --csv ${make_modules} make_modules")`,
CommandDeps: []string{"${sqlite3}"},
}, "make_metadata", "make_modules")
)
@@ -307,24 +307,29 @@
modulesCsv := PathForOutput(ctx, "compliance-metadata", deviceProduct, "soong-modules.csv")
WriteFileRuleVerbatim(ctx, modulesCsv, buffer.String())
- // Metadata generated in Make
- makeMetadataCsv := PathForOutput(ctx, "compliance-metadata", deviceProduct, "make-metadata.csv")
- makeModulesCsv := PathForOutput(ctx, "compliance-metadata", deviceProduct, "make-modules.csv")
+ var implicits []Path
+ args := make(map[string]string)
+
+ if ctx.Config().KatiEnabled() {
+ // Metadata generated in Make
+ makeMetadataCsv := PathForOutput(ctx, "compliance-metadata", deviceProduct, "make-metadata.csv")
+ makeModulesCsv := PathForOutput(ctx, "compliance-metadata", deviceProduct, "make-modules.csv")
+ implicits = append(implicits, makeMetadataCsv, makeModulesCsv)
+ args["make_metadata"] = makeMetadataCsv.String()
+ args["make_modules"] = makeModulesCsv.String()
+ } else {
+ args["make_metadata"] = ""
+ args["make_modules"] = ""
+ }
// Import metadata from Make and Soong to sqlite3 database
complianceMetadataDb := PathForOutput(ctx, "compliance-metadata", deviceProduct, "compliance-metadata.db")
ctx.Build(pctx, BuildParams{
- Rule: importCsv,
- Input: modulesCsv,
- Implicits: []Path{
- makeMetadataCsv,
- makeModulesCsv,
- },
- Output: complianceMetadataDb,
- Args: map[string]string{
- "make_metadata": makeMetadataCsv.String(),
- "make_modules": makeModulesCsv.String(),
- },
+ Rule: importCsv,
+ Input: modulesCsv,
+ Implicits: implicits,
+ Output: complianceMetadataDb,
+ Args: args,
})
// Phony rule "compliance-metadata.db". "m compliance-metadata.db" to create the compliance metadata database.