bp2build: add support for cc_object's objs and exclude_srcs properties.
objs contains module references to other cc_objects that will be used
for linking later. This maps to cc_library deps.
Also support exclude_srcs, and added tests.
Test: bp2build generate, sync, bazel build //bionic/...
Change-Id: I21200ff73f24bcf5357d9df8dcb5519cde532a77
diff --git a/cc/object.go b/cc/object.go
index b108c1c..140a066 100644
--- a/cc/object.go
+++ b/cc/object.go
@@ -92,6 +92,7 @@
// For bp2build conversion.
type bazelObjectAttributes struct {
Srcs bazel.LabelList
+ Deps bazel.LabelList
Copts []string
Local_include_dirs []string
}
@@ -134,18 +135,28 @@
var copts []string
var srcs []string
+ var excludeSrcs []string
var localIncludeDirs []string
for _, props := range m.compiler.compilerProps() {
if baseCompilerProps, ok := props.(*BaseCompilerProperties); ok {
copts = baseCompilerProps.Cflags
srcs = baseCompilerProps.Srcs
+ excludeSrcs = baseCompilerProps.Exclude_srcs
localIncludeDirs = baseCompilerProps.Local_include_dirs
break
}
}
+ var deps bazel.LabelList
+ for _, props := range m.linker.linkerProps() {
+ if objectLinkerProps, ok := props.(*ObjectLinkerProperties); ok {
+ deps = android.BazelLabelForModuleDeps(ctx, objectLinkerProps.Objs)
+ }
+ }
+
attrs := &bazelObjectAttributes{
- Srcs: android.BazelLabelForModuleSrc(ctx, srcs),
+ Srcs: android.BazelLabelForModuleSrcExcludes(ctx, srcs, excludeSrcs),
+ Deps: deps,
Copts: copts,
Local_include_dirs: localIncludeDirs,
}