diff options
author | 2025-01-16 11:11:26 -0800 | |
---|---|---|
committer | 2025-01-16 11:11:26 -0800 | |
commit | a14309ca3e25a2bbd1d175dae1e0c98d8bb37b6c (patch) | |
tree | e822dccce81aed2df09b124f4a76d9acf12e47bc | |
parent | 0e11d0b8a9bdc574d0f2a4d57ab7643c25f3ea9a (diff) | |
parent | 8ede4f7051b9a7481627e8e276206b413ffd553f (diff) |
Merge "Add compliance metadata of crt libs and header libs of cc modules" into main
-rw-r--r-- | android/compliance_metadata.go | 4 | ||||
-rw-r--r-- | cc/cc.go | 29 |
2 files changed, 31 insertions, 2 deletions
diff --git a/android/compliance_metadata.go b/android/compliance_metadata.go index 2f11df6e0..dcf393d66 100644 --- a/android/compliance_metadata.go +++ b/android/compliance_metadata.go @@ -43,6 +43,7 @@ var ( STATIC_DEP_FILES string WHOLE_STATIC_DEPS string WHOLE_STATIC_DEP_FILES string + HEADER_LIBS string LICENSES string // module_type=package @@ -71,6 +72,7 @@ var ( "static_dep_files", "whole_static_deps", "whole_static_dep_files", + "header_libs", "licenses", "pkg_default_applicable_licenses", @@ -106,6 +108,8 @@ var ( ComplianceMetadataProp.WHOLE_STATIC_DEPS, // Space separated file paths of whole static dependencies ComplianceMetadataProp.WHOLE_STATIC_DEP_FILES, + // Space separated modules name of header libs + ComplianceMetadataProp.HEADER_LIBS, ComplianceMetadataProp.LICENSES, // module_type=package ComplianceMetadataProp.PKG_DEFAULT_APPLICABLE_LICENSES, @@ -2409,7 +2409,7 @@ func (c *Module) setOutputFiles(ctx ModuleContext) { func buildComplianceMetadataInfo(ctx ModuleContext, c *Module, deps PathDeps) { // Dump metadata that can not be done in android/compliance-metadata.go complianceMetadataInfo := ctx.ComplianceMetadataInfo() - complianceMetadataInfo.SetStringValue(android.ComplianceMetadataProp.IS_STATIC_LIB, strconv.FormatBool(ctx.static())) + complianceMetadataInfo.SetStringValue(android.ComplianceMetadataProp.IS_STATIC_LIB, strconv.FormatBool(ctx.static() || ctx.ModuleType() == "cc_object")) complianceMetadataInfo.SetStringValue(android.ComplianceMetadataProp.BUILT_FILES, c.outputFile.String()) // Static deps @@ -2418,11 +2418,28 @@ func buildComplianceMetadataInfo(ctx ModuleContext, c *Module, deps PathDeps) { for _, dep := range staticDeps { staticDepNames = append(staticDepNames, dep.Name()) } + // Process CrtBegin and CrtEnd as static libs + ctx.VisitDirectDeps(func(dep android.Module) { + depName := ctx.OtherModuleName(dep) + depTag := ctx.OtherModuleDependencyTag(dep) + switch depTag { + case CrtBeginDepTag: + staticDepNames = append(staticDepNames, depName) + case CrtEndDepTag: + staticDepNames = append(staticDepNames, depName) + } + }) - staticDepPaths := make([]string, 0, len(deps.StaticLibs)) + staticDepPaths := make([]string, 0, len(deps.StaticLibs)+len(deps.CrtBegin)+len(deps.CrtEnd)) for _, dep := range deps.StaticLibs { staticDepPaths = append(staticDepPaths, dep.String()) } + for _, dep := range deps.CrtBegin { + staticDepPaths = append(staticDepPaths, dep.String()) + } + for _, dep := range deps.CrtEnd { + staticDepPaths = append(staticDepPaths, dep.String()) + } complianceMetadataInfo.SetListValue(android.ComplianceMetadataProp.STATIC_DEPS, android.FirstUniqueStrings(staticDepNames)) complianceMetadataInfo.SetListValue(android.ComplianceMetadataProp.STATIC_DEP_FILES, android.FirstUniqueStrings(staticDepPaths)) @@ -2439,6 +2456,14 @@ func buildComplianceMetadataInfo(ctx ModuleContext, c *Module, deps PathDeps) { } complianceMetadataInfo.SetListValue(android.ComplianceMetadataProp.WHOLE_STATIC_DEPS, android.FirstUniqueStrings(wholeStaticDepNames)) complianceMetadataInfo.SetListValue(android.ComplianceMetadataProp.WHOLE_STATIC_DEP_FILES, android.FirstUniqueStrings(wholeStaticDepPaths)) + + // Header libs + headerLibDeps := ctx.GetDirectDepsProxyWithTag(HeaderDepTag()) + headerLibDepNames := make([]string, 0, len(headerLibDeps)) + for _, dep := range headerLibDeps { + headerLibDepNames = append(headerLibDepNames, dep.Name()) + } + complianceMetadataInfo.SetListValue(android.ComplianceMetadataProp.HEADER_LIBS, android.FirstUniqueStrings(headerLibDepNames)) } func (c *Module) maybeUnhideFromMake() { |