diff options
| author | 2025-02-05 17:13:50 -0800 | |
|---|---|---|
| committer | 2025-02-05 17:13:50 -0800 | |
| commit | 3fcc4ef8fe6a10ffd267586a49ec27261058ab7e (patch) | |
| tree | 31cb78a7919f0e02ff86197e7b936e0fa0c3ce20 | |
| parent | 6a4c54bf63eada7601b20da88c17abcf140aebf0 (diff) | |
| parent | 9a8e141af1f04854847d40574d3eab3449bdad1f (diff) | |
Merge "Add a workaround for buildinng compliance matadata database in soong-only builds" into main
| -rw-r--r-- | android/compliance_metadata.go | 58 |
1 files changed, 38 insertions, 20 deletions
diff --git a/android/compliance_metadata.go b/android/compliance_metadata.go index dcf393d66..1e1f4bc60 100644 --- a/android/compliance_metadata.go +++ b/android/compliance_metadata.go @@ -240,10 +240,22 @@ var ( blueprint.RuleParams{ Command: `rm -rf $out && ` + `${sqlite3} $out ".import --csv $in modules" && ` + - `([ -z "${make_metadata}" ] || ${sqlite3} $out ".import --csv ${make_metadata} make_metadata") && ` + - `([ -z "${make_modules}" ] || ${sqlite3} $out ".import --csv ${make_modules} make_modules")`, + `${sqlite3} $out ".import --csv ${make_metadata} make_metadata" && ` + + `${sqlite3} $out ".import --csv ${make_modules} make_modules"`, CommandDeps: []string{"${sqlite3}"}, }, "make_metadata", "make_modules") + + buildMakeMetadataCsv = pctx.AndroidStaticRule("buildMakeMetadataCsv", + blueprint.RuleParams{ + Command: `rm -rf $out && ` + + `echo "installed_file,module_path,is_soong_module,is_prebuilt_make_module,product_copy_files,kernel_module_copy_files,is_platform_generated,static_libs,whole_static_libs,license_text" > $out`, + }) + + buildMakeModulesCsv = pctx.AndroidStaticRule("buildMakeModulesCsv", + blueprint.RuleParams{ + Command: `rm -rf $out && ` + + `echo "name,module_path,module_class,module_type,static_libs,whole_static_libs,built_files,installed_files" > $out`, + }) ) func complianceMetadataSingletonFactory() Singleton { @@ -311,29 +323,35 @@ func (c *complianceMetadataSingleton) GenerateBuildActions(ctx SingletonContext) modulesCsv := PathForOutput(ctx, "compliance-metadata", deviceProduct, "soong-modules.csv") WriteFileRuleVerbatim(ctx, modulesCsv, buffer.String()) - 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"] = "" + // Metadata generated in Make + makeMetadataCsv := PathForOutput(ctx, "compliance-metadata", deviceProduct, "make-metadata.csv") + makeModulesCsv := PathForOutput(ctx, "compliance-metadata", deviceProduct, "make-modules.csv") + + if !ctx.Config().KatiEnabled() { + ctx.Build(pctx, BuildParams{ + Rule: buildMakeMetadataCsv, + Output: makeMetadataCsv, + }) + ctx.Build(pctx, BuildParams{ + Rule: buildMakeModulesCsv, + Output: makeModulesCsv, + }) } // 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: implicits, - Output: complianceMetadataDb, - Args: args, + Rule: importCsv, + Input: modulesCsv, + Implicits: []Path{ + makeMetadataCsv, + makeModulesCsv, + }, + Output: complianceMetadataDb, + Args: map[string]string{ + "make_metadata": makeMetadataCsv.String(), + "make_modules": makeModulesCsv.String(), + }, }) // Phony rule "compliance-metadata.db". "m compliance-metadata.db" to create the compliance metadata database. |