Loading bp2build/cc_object_conversion_test.go +52 −4 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ func TestCcObjectBp2Build(t *testing.T) { filesystem: map[string]string{ "a/b/foo.h": "", "a/b/bar.h": "", "a/b/exclude.c": "", "a/b/c.c": "", }, blueprint: `cc_object { Loading @@ -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 }, } Loading Loading @@ -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", ], )`, }, }, Loading cc/object.go +12 −1 Original line number Diff line number Diff line Loading @@ -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 } Loading Loading @@ -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 Loading
bp2build/cc_object_conversion_test.go +52 −4 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ func TestCcObjectBp2Build(t *testing.T) { filesystem: map[string]string{ "a/b/foo.h": "", "a/b/bar.h": "", "a/b/exclude.c": "", "a/b/c.c": "", }, blueprint: `cc_object { Loading @@ -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 }, } Loading Loading @@ -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", ], )`, }, }, Loading
cc/object.go +12 −1 Original line number Diff line number Diff line Loading @@ -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 } Loading Loading @@ -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