bp2build include generated hdrs in all src splits

Currently generated headers are only included in the srcs split;
however, if c or assembly sources depend on the headers, the
dependendency is lacking and can cause non-deterministic failures.

Test: build/bazel/ci/bp2build.sh
Change-Id: Ic354c88300a5fb1b85241f68889e904c33a81488
This commit is contained in:
Liz Kammer
2021-10-19 09:45:48 -04:00
parent 9579f08f22
commit ae3994ed4c
2 changed files with 75 additions and 22 deletions

View File

@@ -986,6 +986,41 @@ cc_library_static {
})
}
func TestCcLibraryStaticGeneratedHeadersAllPartitions(t *testing.T) {
runCcLibraryStaticTestCase(t, bp2buildTestCase{
moduleTypeUnderTest: "cc_library_static",
moduleTypeUnderTestFactory: cc.LibraryStaticFactory,
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryStaticBp2Build,
blueprint: soongCcLibraryStaticPreamble + `
genrule {
name: "generated_hdr",
cmd: "nothing to see here",
}
cc_library_static {
name: "foo_static",
srcs: ["cpp_src.cpp", "as_src.S", "c_src.c"],
generated_headers: ["generated_hdr"],
include_build_directory: false,
}`,
expectedBazelTargets: []string{`cc_library_static(
name = "foo_static",
srcs = [
"cpp_src.cpp",
":generated_hdr",
],
srcs_as = [
"as_src.S",
":generated_hdr",
],
srcs_c = [
"c_src.c",
":generated_hdr",
],
)`},
})
}
func TestCcLibraryStaticArchSrcsExcludeSrcsGeneratedFiles(t *testing.T) {
runCcLibraryStaticTestCase(t, bp2buildTestCase{
description: "cc_library_static arch srcs/exclude_srcs with generated files",
@@ -1067,10 +1102,10 @@ cc_library_static {
name = "foo_static3",
srcs = [
"common.cpp",
":generated_hdr",
"//dep:generated_hdr_other_pkg",
":generated_src",
"//dep:generated_src_other_pkg",
":generated_hdr",
"//dep:generated_hdr_other_pkg",
] + select({
"//build/bazel/platforms/arch:x86": [
"for-x86.cpp",
@@ -1082,8 +1117,8 @@ cc_library_static {
],
}) + select({
"//build/bazel/platforms/os:android": [
"//dep:generated_hdr_other_pkg_android",
":generated_src_android",
"//dep:generated_hdr_other_pkg_android",
],
"//conditions:default": [],
}),