Merge "Handle include_build_directory prop in bp2build"

This commit is contained in:
Treehugger Robot 2021-03-23 14:39:19 +00:00 committed by Gerrit Code Review
commit dca349a782
3 changed files with 51 additions and 2 deletions

View File

@ -70,6 +70,7 @@ func TestCcObjectBp2Build(t *testing.T) {
],
local_include_dirs = [
"include",
".",
],
srcs = [
"a/b/bar.h",
@ -120,6 +121,7 @@ cc_defaults {
],
local_include_dirs = [
"include",
".",
],
srcs = [
"a/b/c.c",
@ -156,6 +158,9 @@ cc_object {
copts = [
"-fno-addrsig",
],
local_include_dirs = [
".",
],
srcs = [
"x/y/z.c",
],
@ -167,6 +172,37 @@ cc_object {
deps = [
":bar",
],
local_include_dirs = [
".",
],
srcs = [
"a/b/c.c",
],
)`,
},
},
{
description: "cc_object with include_build_dir: false",
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"],
include_build_directory: false,
bazel_module: { bp2build_available: true },
}
`,
expectedBazelTargets: []string{`cc_object(
name = "foo",
copts = [
"-fno-addrsig",
],
srcs = [
"a/b/c.c",
],
@ -262,6 +298,9 @@ func TestCcObjectConfigurableAttributesBp2Build(t *testing.T) {
"//conditions:default": [
],
}),
local_include_dirs = [
".",
],
)`,
},
},
@ -310,6 +349,9 @@ func TestCcObjectConfigurableAttributesBp2Build(t *testing.T) {
"//conditions:default": [
],
}),
local_include_dirs = [
".",
],
)`,
},
},

View File

@ -256,6 +256,10 @@ func (compiler *baseCompiler) compilerProps() []interface{} {
return []interface{}{&compiler.Properties, &compiler.Proto}
}
func (compiler *baseCompiler) includeBuildDirectory() bool {
return proptools.BoolDefault(compiler.Properties.Include_build_directory, true)
}
func (compiler *baseCompiler) compilerInit(ctx BaseModuleContext) {}
func (compiler *baseCompiler) compilerDeps(ctx DepsContext, deps Deps) Deps {
@ -332,8 +336,7 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags, deps
flags.Local.YasmFlags = append(flags.Local.YasmFlags, f)
}
if compiler.Properties.Include_build_directory == nil ||
*compiler.Properties.Include_build_directory {
if compiler.includeBuildDirectory() {
flags.Local.CommonFlags = append(flags.Local.CommonFlags, "-I"+modulePath)
flags.Local.YasmFlags = append(flags.Local.YasmFlags, "-I"+modulePath)
}

View File

@ -160,6 +160,10 @@ func ObjectBp2Build(ctx android.TopDownMutatorContext) {
}
}
if c, ok := m.compiler.(*baseCompiler); ok && c.includeBuildDirectory() {
localIncludeDirs = append(localIncludeDirs, ".")
}
var deps bazel.LabelList
for _, props := range m.linker.linkerProps() {
if objectLinkerProps, ok := props.(*ObjectLinkerProperties); ok {