Merge "bp2build: add support for cc_object's objs and exclude_srcs properties."
This commit is contained in:
commit
1251bb5775
2 changed files with 64 additions and 5 deletions
|
@ -38,9 +38,10 @@ func TestCcObjectBp2Build(t *testing.T) {
|
|||
moduleTypeUnderTestFactory: cc.ObjectFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.ObjectBp2Build,
|
||||
filesystem: map[string]string{
|
||||
"a/b/foo.h": "",
|
||||
"a/b/bar.h": "",
|
||||
"a/b/c.c": "",
|
||||
"a/b/foo.h": "",
|
||||
"a/b/bar.h": "",
|
||||
"a/b/exclude.c": "",
|
||||
"a/b/c.c": "",
|
||||
},
|
||||
blueprint: `cc_object {
|
||||
name: "foo",
|
||||
|
@ -52,8 +53,9 @@ func TestCcObjectBp2Build(t *testing.T) {
|
|||
],
|
||||
srcs: [
|
||||
"a/b/*.h",
|
||||
"a/b/c.c"
|
||||
"a/b/*.c"
|
||||
],
|
||||
exclude_srcs: ["a/b/exclude.c"],
|
||||
|
||||
bazel_module: { bp2build_available: true },
|
||||
}
|
||||
|
@ -131,6 +133,52 @@ cc_defaults {
|
|||
srcs = [
|
||||
"a/b/c.c",
|
||||
],
|
||||
)`,
|
||||
},
|
||||
},
|
||||
{
|
||||
description: "cc_object with cc_object deps in objs props",
|
||||
moduleTypeUnderTest: "cc_object",
|
||||
moduleTypeUnderTestFactory: cc.ObjectFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.ObjectBp2Build,
|
||||
filesystem: map[string]string{
|
||||
"a/b/c.c": "",
|
||||
"x/y/z.c": "",
|
||||
},
|
||||
blueprint: `cc_object {
|
||||
name: "foo",
|
||||
srcs: ["a/b/c.c"],
|
||||
objs: ["bar"],
|
||||
|
||||
bazel_module: { bp2build_available: true },
|
||||
}
|
||||
|
||||
cc_object {
|
||||
name: "bar",
|
||||
srcs: ["x/y/z.c"],
|
||||
|
||||
bazel_module: { bp2build_available: true },
|
||||
}
|
||||
`,
|
||||
expectedBazelTargets: []string{`cc_object(
|
||||
name = "bar",
|
||||
copts = [
|
||||
"-fno-addrsig",
|
||||
],
|
||||
srcs = [
|
||||
"x/y/z.c",
|
||||
],
|
||||
)`, `cc_object(
|
||||
name = "foo",
|
||||
copts = [
|
||||
"-fno-addrsig",
|
||||
],
|
||||
deps = [
|
||||
":bar",
|
||||
],
|
||||
srcs = [
|
||||
"a/b/c.c",
|
||||
],
|
||||
)`,
|
||||
},
|
||||
},
|
||||
|
|
13
cc/object.go
13
cc/object.go
|
@ -92,6 +92,7 @@ func ObjectFactory() android.Module {
|
|||
// For bp2build conversion.
|
||||
type bazelObjectAttributes struct {
|
||||
Srcs bazel.LabelList
|
||||
Deps bazel.LabelList
|
||||
Copts []string
|
||||
Local_include_dirs []string
|
||||
}
|
||||
|
@ -134,18 +135,28 @@ func ObjectBp2Build(ctx android.TopDownMutatorContext) {
|
|||
|
||||
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,
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue