Export Soong modules and build a database from metadata from Make and Soong.
Bug: 324465531 Test: CIs Test: m compliance-metadata.db Change-Id: Ia1c9ab0ae874dd47969555ddbfb93405b57a651f
This commit is contained in:
42
rust/rust.go
42
rust/rust.go
@@ -16,6 +16,7 @@ package rust
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"android/soong/bloaty"
|
||||
@@ -967,7 +968,10 @@ func (mod *Module) GenerateAndroidBuildActions(actx android.ModuleContext) {
|
||||
if mod.testModule {
|
||||
android.SetProvider(ctx, testing.TestModuleProviderKey, testing.TestModuleProviderData{})
|
||||
}
|
||||
|
||||
mod.setOutputFiles(ctx)
|
||||
|
||||
buildComplianceMetadataInfo(ctx, mod, deps)
|
||||
}
|
||||
|
||||
func (mod *Module) setOutputFiles(ctx ModuleContext) {
|
||||
@@ -983,6 +987,44 @@ func (mod *Module) setOutputFiles(ctx ModuleContext) {
|
||||
}
|
||||
}
|
||||
|
||||
func buildComplianceMetadataInfo(ctx *moduleContext, mod *Module, deps PathDeps) {
|
||||
// Dump metadata that can not be done in android/compliance-metadata.go
|
||||
metadataInfo := ctx.ComplianceMetadataInfo()
|
||||
metadataInfo.SetStringValue(android.ComplianceMetadataProp.IS_STATIC_LIB, strconv.FormatBool(mod.Static()))
|
||||
metadataInfo.SetStringValue(android.ComplianceMetadataProp.BUILT_FILES, mod.outputFile.String())
|
||||
|
||||
// Static libs
|
||||
staticDeps := ctx.GetDirectDepsWithTag(rlibDepTag)
|
||||
staticDepNames := make([]string, 0, len(staticDeps))
|
||||
for _, dep := range staticDeps {
|
||||
staticDepNames = append(staticDepNames, dep.Name())
|
||||
}
|
||||
ccStaticDeps := ctx.GetDirectDepsWithTag(cc.StaticDepTag(false))
|
||||
for _, dep := range ccStaticDeps {
|
||||
staticDepNames = append(staticDepNames, dep.Name())
|
||||
}
|
||||
|
||||
staticDepPaths := make([]string, 0, len(deps.StaticLibs)+len(deps.RLibs))
|
||||
// C static libraries
|
||||
for _, dep := range deps.StaticLibs {
|
||||
staticDepPaths = append(staticDepPaths, dep.String())
|
||||
}
|
||||
// Rust static libraries
|
||||
for _, dep := range deps.RLibs {
|
||||
staticDepPaths = append(staticDepPaths, dep.Path.String())
|
||||
}
|
||||
metadataInfo.SetListValue(android.ComplianceMetadataProp.STATIC_DEPS, android.FirstUniqueStrings(staticDepNames))
|
||||
metadataInfo.SetListValue(android.ComplianceMetadataProp.STATIC_DEP_FILES, android.FirstUniqueStrings(staticDepPaths))
|
||||
|
||||
// C Whole static libs
|
||||
ccWholeStaticDeps := ctx.GetDirectDepsWithTag(cc.StaticDepTag(true))
|
||||
wholeStaticDepNames := make([]string, 0, len(ccWholeStaticDeps))
|
||||
for _, dep := range ccStaticDeps {
|
||||
wholeStaticDepNames = append(wholeStaticDepNames, dep.Name())
|
||||
}
|
||||
metadataInfo.SetListValue(android.ComplianceMetadataProp.STATIC_DEPS, android.FirstUniqueStrings(staticDepNames))
|
||||
}
|
||||
|
||||
func (mod *Module) deps(ctx DepsContext) Deps {
|
||||
deps := Deps{}
|
||||
|
||||
|
Reference in New Issue
Block a user