summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bp2build/cc_object_conversion_test.go42
-rw-r--r--cc/compiler.go7
-rw-r--r--cc/object.go4
3 files changed, 51 insertions, 2 deletions
diff --git a/bp2build/cc_object_conversion_test.go b/bp2build/cc_object_conversion_test.go
index 1d4e32221..1c058ba3e 100644
--- a/bp2build/cc_object_conversion_test.go
+++ b/bp2build/cc_object_conversion_test.go
@@ -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 = [
+ ".",
+ ],
)`,
},
},
diff --git a/cc/compiler.go b/cc/compiler.go
index 2e71922e1..791c95b24 100644
--- a/cc/compiler.go
+++ b/cc/compiler.go
@@ -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)
}
diff --git a/cc/object.go b/cc/object.go
index f9e6d2df6..6bea28b5a 100644
--- a/cc/object.go
+++ b/cc/object.go
@@ -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 {