Expose TocFile via CcInfo

To reflect what's provided in SharedLibraryInfoProvider

Move the logic for identifying the toc file into Starlark
instead of the Soong Go code.

Adapt TestGetCcInfoParseResults to expect the toc as well.

Test: build/bazel/cquery/request_type_test.go:TestGetCcInfoParseResults
Test: cc/library_test.go:TestCcLibrarySharedWithBazel
Test: build/bazel/ci/mixed_{libc,droid}.sh
Change-Id: I40ad47158cb98b14ca03c21e351988818cb01770
This commit is contained in:
Alex Márquez Pérez Muñíz Díaz Púras Thaureaux
2021-09-14 21:19:31 +00:00
parent 4fbc62196d
commit 62585e8436
4 changed files with 34 additions and 29 deletions

View File

@@ -337,19 +337,29 @@ cc_library_shared {
Includes: []string{"include"},
SystemIncludes: []string{"system_include"},
RootDynamicLibraries: []string{"foo.so"},
TocFile: "foo.so.toc",
},
},
}
ctx := testCcWithConfig(t, config)
sharedFoo := ctx.ModuleForTests("foo", "android_arm_armv7-a-neon_shared").Module()
outputFiles, err := sharedFoo.(android.OutputFileProducer).OutputFiles("")
producer := sharedFoo.(android.OutputFileProducer)
outputFiles, err := producer.OutputFiles("")
if err != nil {
t.Errorf("Unexpected error getting cc_object outputfiles %s", err)
}
expectedOutputFiles := []string{"outputbase/execroot/__main__/foo.so"}
android.AssertDeepEquals(t, "output files", expectedOutputFiles, outputFiles.Strings())
tocFilePath := sharedFoo.(*Module).Toc()
if !tocFilePath.Valid() {
t.Errorf("Invalid tocFilePath: %s", tocFilePath)
}
tocFile := tocFilePath.Path()
expectedToc := "outputbase/execroot/__main__/foo.so.toc"
android.AssertStringEquals(t, "toc file", expectedToc, tocFile.String())
entries := android.AndroidMkEntriesForTest(t, ctx, sharedFoo)[0]
expectedFlags := []string{"-Ioutputbase/execroot/__main__/include", "-isystem outputbase/execroot/__main__/system_include"}
gotFlags := entries.EntryMap["LOCAL_EXPORT_CFLAGS"]