Handle dependencies with export_generated_headers
This sets up the proper dependencies within Soong by adding the imported
dependencies into GeneratedHeaders, and re-exporting them as necessary.
It also exports them to Make using the new LOCAL_EXPORT_C_INCLUDE_DEPS.
Bug: 31742855
Test: Inspection, build hardware/interfaces (pending)
Change-Id: I6a10ceec377a97966baa9d4876b90fcda391dd01
diff --git a/cc/library.go b/cc/library.go
index cc5ff15..7cc587f 100644
--- a/cc/library.go
+++ b/cc/library.go
@@ -117,7 +117,8 @@
type flagExporter struct {
Properties FlagExporterProperties
- flags []string
+ flags []string
+ flagsDeps android.Paths
}
func (f *flagExporter) exportIncludes(ctx ModuleContext, inc string) {
@@ -131,12 +132,21 @@
f.flags = append(f.flags, flags...)
}
+func (f *flagExporter) reexportDeps(deps android.Paths) {
+ f.flagsDeps = append(f.flagsDeps, deps...)
+}
+
func (f *flagExporter) exportedFlags() []string {
return f.flags
}
+func (f *flagExporter) exportedFlagsDeps() android.Paths {
+ return f.flagsDeps
+}
+
type exportedFlagsProducer interface {
exportedFlags() []string
+ exportedFlagsDeps() android.Paths
}
var _ exportedFlagsProducer = (*flagExporter)(nil)
@@ -445,6 +455,7 @@
library.exportIncludes(ctx, "-I")
library.reexportFlags(deps.ReexportedFlags)
+ library.reexportDeps(deps.ReexportedFlagsDeps)
return out
}