Merge "Make genrule export_include_dirs more consistent" into main

This commit is contained in:
Liz Kammer 2023-07-21 13:41:23 +00:00 committed by Gerrit Code Review
commit d07cb48c6f
2 changed files with 46 additions and 0 deletions

View file

@ -296,6 +296,9 @@ func (g *Module) generateCommonBuildActions(ctx android.ModuleContext) {
for _, dir := range g.properties.Export_include_dirs {
g.exportedIncludeDirs = append(g.exportedIncludeDirs,
android.PathForModuleGen(ctx, g.subDir, ctx.ModuleDir(), dir))
// Also export without ModuleDir for consistency with Export_include_dirs not being set
g.exportedIncludeDirs = append(g.exportedIncludeDirs,
android.PathForModuleGen(ctx, g.subDir, dir))
}
} else {
g.exportedIncludeDirs = append(g.exportedIncludeDirs, android.PathForModuleGen(ctx, g.subDir))

View file

@ -845,6 +845,49 @@ func TestGenruleOutputFiles(t *testing.T) {
result.ModuleForTests("gen_all", "").Module().(*useSource).srcs)
}
func TestGenruleInterface(t *testing.T) {
result := android.GroupFixturePreparers(
prepareForGenRuleTest,
android.FixtureMergeMockFs(android.MockFS{
"package-dir/Android.bp": []byte(`
genrule {
name: "module-name",
cmd: "mkdir -p $(genDir) && cat $(in) >> $(genDir)/$(out)",
srcs: [
"src/foo.proto",
],
out: ["proto.h", "bar/proto.h"],
export_include_dirs: [".", "bar"],
}
`),
}),
).RunTest(t)
exportedIncludeDirs := []string{
"out/soong/.intermediates/package-dir/module-name/gen/package-dir",
"out/soong/.intermediates/package-dir/module-name/gen",
"out/soong/.intermediates/package-dir/module-name/gen/package-dir/bar",
"out/soong/.intermediates/package-dir/module-name/gen/bar",
}
gen := result.Module("module-name", "").(*Module)
android.AssertPathsRelativeToTopEquals(
t,
"include path",
exportedIncludeDirs,
gen.GeneratedHeaderDirs(),
)
android.AssertPathsRelativeToTopEquals(
t,
"files",
[]string{
"out/soong/.intermediates/package-dir/module-name/gen/proto.h",
"out/soong/.intermediates/package-dir/module-name/gen/bar/proto.h",
},
gen.GeneratedSourceFiles(),
)
}
func TestGenSrcsWithNonRootAndroidBpOutputFiles(t *testing.T) {
result := android.GroupFixturePreparers(
prepareForGenRuleTest,