Loading android/util.go +14 −8 Original line number Diff line number Diff line Loading @@ -144,22 +144,28 @@ func setFromList[T comparable](l []T) map[T]bool { return m } // ListDifference checks if the two lists contain the same elements func ListDifference[T comparable](l1, l2 []T) []T { diff := []T{} // ListSetDifference checks if the two lists contain the same elements. It returns // a boolean which is true if there is a difference, and then returns lists of elements // that are in l1 but not l2, and l2 but not l1. func ListSetDifference[T comparable](l1, l2 []T) (bool, []T, []T) { listsDiffer := false diff1 := []T{} diff2 := []T{} m1 := setFromList(l1) m2 := setFromList(l2) for _, t := range l1 { for t := range m1 { if _, ok := m2[t]; !ok { diff = append(diff, t) diff1 = append(diff1, t) listsDiffer = true } } for _, t := range l2 { for t := range m2 { if _, ok := m1[t]; !ok { diff = append(diff, t) diff2 = append(diff2, t) listsDiffer = true } } return diff return listsDiffer, diff1, diff2 } // Returns true if the given string s is prefixed with any string in the given prefix list. Loading cc/binary.go +2 −0 Original line number Diff line number Diff line Loading @@ -591,6 +591,8 @@ func (handler *ccBinaryBazelHandler) ProcessBazelQueryResponse(ctx android.Modul outputFilePath := android.PathForBazelOut(ctx, info.OutputFile) handler.module.outputFile = android.OptionalPathForPath(outputFilePath) handler.module.linker.(*binaryDecorator).unstrippedOutputFile = android.PathForBazelOut(ctx, info.UnstrippedOutput) handler.module.setAndroidMkVariablesFromCquery(info.CcAndroidMkInfo) } func binaryBp2buildAttrs(ctx android.TopDownMutatorContext, m *Module) binaryAttributes { Loading cc/cc.go +7 −8 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import ( "github.com/google/blueprint/proptools" "android/soong/android" "android/soong/bazel/cquery" "android/soong/cc/config" "android/soong/fuzz" "android/soong/genrule" Loading Loading @@ -1891,14 +1892,6 @@ func (c *Module) ProcessBazelQueryResponse(ctx android.ModuleContext) { bazelCtx := ctx.Config().BazelContext if ccInfo, err := bazelCtx.GetCcInfo(bazelModuleLabel, android.GetConfigKey(ctx)); err == nil { c.tidyFiles = android.PathsForBazelOut(ctx, ccInfo.TidyFiles) c.Properties.AndroidMkSharedLibs = ccInfo.LocalSharedLibs c.Properties.AndroidMkStaticLibs = ccInfo.LocalStaticLibs c.Properties.AndroidMkWholeStaticLibs = ccInfo.LocalWholeStaticLibs } if unstrippedInfo, err := bazelCtx.GetCcUnstrippedInfo(bazelModuleLabel, android.GetConfigKey(ctx)); err == nil { c.Properties.AndroidMkSharedLibs = unstrippedInfo.LocalSharedLibs c.Properties.AndroidMkStaticLibs = unstrippedInfo.LocalStaticLibs c.Properties.AndroidMkWholeStaticLibs = unstrippedInfo.LocalWholeStaticLibs } c.bazelHandler.ProcessBazelQueryResponse(ctx, bazelModuleLabel) Loading Loading @@ -2096,6 +2089,12 @@ func (c *Module) maybeInstall(ctx ModuleContext, apexInfo android.ApexInfo) { } } func (c *Module) setAndroidMkVariablesFromCquery(info cquery.CcAndroidMkInfo) { c.Properties.AndroidMkSharedLibs = info.LocalSharedLibs c.Properties.AndroidMkStaticLibs = info.LocalStaticLibs c.Properties.AndroidMkWholeStaticLibs = info.LocalWholeStaticLibs } func (c *Module) toolchain(ctx android.BaseModuleContext) config.Toolchain { if c.cachedToolchain == nil { c.cachedToolchain = config.FindToolchainWithContext(ctx) Loading cc/cc_test.go +112 −41 Original line number Diff line number Diff line Loading @@ -3029,32 +3029,6 @@ func checkStaticLibs(t *testing.T, expected []string, module *Module) { } } func checkWholeStaticLibs(t *testing.T, expected []string, module *Module) { t.Helper() actual := module.Properties.AndroidMkWholeStaticLibs if !reflect.DeepEqual(actual, expected) { t.Errorf("incorrect whole_static_libs"+ "\nactual: %v"+ "\nexpected: %v", actual, expected, ) } } func checkSharedLibs(t *testing.T, expected []string, module *Module) { t.Helper() actual := module.Properties.AndroidMkSharedLibs if !reflect.DeepEqual(actual, expected) { t.Errorf("incorrect shared_libs"+ "\nactual: %v"+ "\nexpected: %v", actual, expected, ) } } const staticLibAndroidBp = ` cc_library { name: "lib1", Loading Loading @@ -3114,6 +3088,20 @@ func TestLibDepAndroidMkExportInMixedBuilds(t *testing.T) { whole_static_libs: ["whole_static_dep"], shared_libs: ["shared_dep"], } cc_library_headers { name: "lib_headers", bazel_module: { label: "//:lib_headers" }, static_libs: ["static_dep"], whole_static_libs: ["whole_static_dep"], shared_libs: ["shared_dep"], } cc_prebuilt_library { name: "lib_prebuilt", bazel_module: { label: "//:lib_prebuilt" }, static_libs: ["static_dep"], whole_static_libs: ["whole_static_dep"], shared_libs: ["shared_dep"], } ` testCases := []struct { Loading Loading @@ -3172,6 +3160,36 @@ func TestLibDepAndroidMkExportInMixedBuilds(t *testing.T) { LocalSharedLibs: []string{"shared_dep"}, }, }, { name: "cc_library_headers", moduleName: "lib_headers", variant: "android_arm64_armv8-a", androidMkInfo: cquery.CcAndroidMkInfo{ LocalStaticLibs: []string{"static_dep"}, LocalWholeStaticLibs: []string{"whole_static_dep"}, LocalSharedLibs: []string{"shared_dep"}, }, }, { name: "prebuilt lib static", moduleName: "lib_prebuilt", variant: "android_arm64_armv8-a_static", androidMkInfo: cquery.CcAndroidMkInfo{ LocalStaticLibs: []string{"static_dep"}, LocalWholeStaticLibs: []string{"whole_static_dep"}, LocalSharedLibs: []string{"shared_dep"}, }, }, { name: "prebuilt lib shared", moduleName: "lib_prebuilt", variant: "android_arm64_armv8-a_shared", androidMkInfo: cquery.CcAndroidMkInfo{ LocalStaticLibs: []string{"static_dep"}, LocalWholeStaticLibs: []string{"whole_static_dep"}, LocalSharedLibs: []string{"shared_dep"}, }, }, } outputBaseDir := "out/bazel" Loading @@ -3191,6 +3209,16 @@ func TestLibDepAndroidMkExportInMixedBuilds(t *testing.T) { CcAndroidMkInfo: tc.androidMkInfo, RootStaticArchives: []string{""}, }, "//:lib_headers": cquery.CcInfo{ CcAndroidMkInfo: tc.androidMkInfo, OutputFiles: []string{""}, }, "//:lib_prebuilt": cquery.CcInfo{ CcAndroidMkInfo: tc.androidMkInfo, }, "//:lib_prebuilt_bp2build_cc_library_static": cquery.CcInfo{ CcAndroidMkInfo: tc.androidMkInfo, }, }, LabelToCcBinary: map[string]cquery.CcUnstrippedInfo{ "//:test": cquery.CcUnstrippedInfo{ Loading @@ -3207,25 +3235,68 @@ func TestLibDepAndroidMkExportInMixedBuilds(t *testing.T) { module := ctx.ModuleForTests(tc.moduleName, tc.variant).Module().(*Module) entries := android.AndroidMkEntriesForTest(t, ctx, module)[0] checkStaticLibs(t, tc.androidMkInfo.LocalStaticLibs, module) missingStaticDeps := android.ListDifference(entries.EntryMap["LOCAL_STATIC_LIBRARIES"], tc.androidMkInfo.LocalStaticLibs) if len(missingStaticDeps) > 0 { t.Errorf("expected LOCAL_STATIC_LIBRARIES to be %q"+ " but was %q; difference: %q", tc.androidMkInfo.LocalStaticLibs, entries.EntryMap["LOCAL_STATIC_LIBRARIES"], missingStaticDeps) if !reflect.DeepEqual(module.Properties.AndroidMkStaticLibs, tc.androidMkInfo.LocalStaticLibs) { t.Errorf("incorrect static_libs"+ "\nactual: %v"+ "\nexpected: %v", module.Properties.AndroidMkStaticLibs, tc.androidMkInfo.LocalStaticLibs, ) } staticDepsDiffer, missingStaticDeps, additionalStaticDeps := android.ListSetDifference( entries.EntryMap["LOCAL_STATIC_LIBRARIES"], tc.androidMkInfo.LocalStaticLibs, ) if staticDepsDiffer { t.Errorf( "expected LOCAL_STATIC_LIBRARIES to be %q but was %q; missing: %q; extra %q", tc.androidMkInfo.LocalStaticLibs, entries.EntryMap["LOCAL_STATIC_LIBRARIES"], missingStaticDeps, additionalStaticDeps, ) } checkWholeStaticLibs(t, tc.androidMkInfo.LocalWholeStaticLibs, module) missingWholeStaticDeps := android.ListDifference(entries.EntryMap["LOCAL_WHOLE_STATIC_LIBRARIES"], tc.androidMkInfo.LocalWholeStaticLibs) if len(missingWholeStaticDeps) > 0 { t.Errorf("expected LOCAL_WHOLE_STATIC_LIBRARIES to be %q"+ " but was %q; difference: %q", tc.androidMkInfo.LocalWholeStaticLibs, entries.EntryMap["LOCAL_WHOLE_STATIC_LIBRARIES"], missingWholeStaticDeps) if !reflect.DeepEqual(module.Properties.AndroidMkWholeStaticLibs, tc.androidMkInfo.LocalWholeStaticLibs) { t.Errorf("expected module.Properties.AndroidMkWholeStaticLibs to be %q, but was %q", tc.androidMkInfo.LocalWholeStaticLibs, module.Properties.AndroidMkWholeStaticLibs, ) } wholeStaticDepsDiffer, missingWholeStaticDeps, additionalWholeStaticDeps := android.ListSetDifference( entries.EntryMap["LOCAL_WHOLE_STATIC_LIBRARIES"], tc.androidMkInfo.LocalWholeStaticLibs, ) if wholeStaticDepsDiffer { t.Errorf( "expected LOCAL_WHOLE_STATIC_LIBRARIES to be %q but was %q; missing: %q; extra %q", tc.androidMkInfo.LocalWholeStaticLibs, entries.EntryMap["LOCAL_WHOLE_STATIC_LIBRARIES"], missingWholeStaticDeps, additionalWholeStaticDeps, ) } checkSharedLibs(t, tc.androidMkInfo.LocalSharedLibs, module) missingSharedDeps := android.ListDifference(entries.EntryMap["LOCAL_SHARED_LIBRARIES"], tc.androidMkInfo.LocalSharedLibs) if len(missingSharedDeps) > 0 { t.Errorf("expected LOCAL_SHARED_LIBRARIES to be %q"+ " but was %q; difference: %q", tc.androidMkInfo.LocalSharedLibs, entries.EntryMap["LOCAL_SHARED_LIBRARIES"], missingSharedDeps) if !reflect.DeepEqual(module.Properties.AndroidMkSharedLibs, tc.androidMkInfo.LocalSharedLibs) { t.Errorf("incorrect shared_libs"+ "\nactual: %v"+ "\nexpected: %v", module.Properties.AndroidMkSharedLibs, tc.androidMkInfo.LocalSharedLibs, ) } sharedDepsDiffer, missingSharedDeps, additionalSharedDeps := android.ListSetDifference( entries.EntryMap["LOCAL_SHARED_LIBRARIES"], tc.androidMkInfo.LocalSharedLibs, ) if sharedDepsDiffer { t.Errorf( "expected LOCAL_SHARED_LIBRARIES to be %q but was %q; missing %q; extra %q", tc.androidMkInfo.LocalSharedLibs, entries.EntryMap["LOCAL_SHARED_LIBRARIES"], missingSharedDeps, additionalSharedDeps, ) } }) } Loading cc/library.go +2 −0 Original line number Diff line number Diff line Loading @@ -937,6 +937,8 @@ func (handler *ccLibraryBazelHandler) ProcessBazelQueryResponse(ctx android.Modu // implementation. i.(*libraryDecorator).collectedSnapshotHeaders = android.Paths{} } handler.module.setAndroidMkVariablesFromCquery(ccInfo.CcAndroidMkInfo) } func (library *libraryDecorator) setFlagExporterInfoFromCcInfo(ctx android.ModuleContext, ccInfo cquery.CcInfo) { Loading Loading
android/util.go +14 −8 Original line number Diff line number Diff line Loading @@ -144,22 +144,28 @@ func setFromList[T comparable](l []T) map[T]bool { return m } // ListDifference checks if the two lists contain the same elements func ListDifference[T comparable](l1, l2 []T) []T { diff := []T{} // ListSetDifference checks if the two lists contain the same elements. It returns // a boolean which is true if there is a difference, and then returns lists of elements // that are in l1 but not l2, and l2 but not l1. func ListSetDifference[T comparable](l1, l2 []T) (bool, []T, []T) { listsDiffer := false diff1 := []T{} diff2 := []T{} m1 := setFromList(l1) m2 := setFromList(l2) for _, t := range l1 { for t := range m1 { if _, ok := m2[t]; !ok { diff = append(diff, t) diff1 = append(diff1, t) listsDiffer = true } } for _, t := range l2 { for t := range m2 { if _, ok := m1[t]; !ok { diff = append(diff, t) diff2 = append(diff2, t) listsDiffer = true } } return diff return listsDiffer, diff1, diff2 } // Returns true if the given string s is prefixed with any string in the given prefix list. Loading
cc/binary.go +2 −0 Original line number Diff line number Diff line Loading @@ -591,6 +591,8 @@ func (handler *ccBinaryBazelHandler) ProcessBazelQueryResponse(ctx android.Modul outputFilePath := android.PathForBazelOut(ctx, info.OutputFile) handler.module.outputFile = android.OptionalPathForPath(outputFilePath) handler.module.linker.(*binaryDecorator).unstrippedOutputFile = android.PathForBazelOut(ctx, info.UnstrippedOutput) handler.module.setAndroidMkVariablesFromCquery(info.CcAndroidMkInfo) } func binaryBp2buildAttrs(ctx android.TopDownMutatorContext, m *Module) binaryAttributes { Loading
cc/cc.go +7 −8 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import ( "github.com/google/blueprint/proptools" "android/soong/android" "android/soong/bazel/cquery" "android/soong/cc/config" "android/soong/fuzz" "android/soong/genrule" Loading Loading @@ -1891,14 +1892,6 @@ func (c *Module) ProcessBazelQueryResponse(ctx android.ModuleContext) { bazelCtx := ctx.Config().BazelContext if ccInfo, err := bazelCtx.GetCcInfo(bazelModuleLabel, android.GetConfigKey(ctx)); err == nil { c.tidyFiles = android.PathsForBazelOut(ctx, ccInfo.TidyFiles) c.Properties.AndroidMkSharedLibs = ccInfo.LocalSharedLibs c.Properties.AndroidMkStaticLibs = ccInfo.LocalStaticLibs c.Properties.AndroidMkWholeStaticLibs = ccInfo.LocalWholeStaticLibs } if unstrippedInfo, err := bazelCtx.GetCcUnstrippedInfo(bazelModuleLabel, android.GetConfigKey(ctx)); err == nil { c.Properties.AndroidMkSharedLibs = unstrippedInfo.LocalSharedLibs c.Properties.AndroidMkStaticLibs = unstrippedInfo.LocalStaticLibs c.Properties.AndroidMkWholeStaticLibs = unstrippedInfo.LocalWholeStaticLibs } c.bazelHandler.ProcessBazelQueryResponse(ctx, bazelModuleLabel) Loading Loading @@ -2096,6 +2089,12 @@ func (c *Module) maybeInstall(ctx ModuleContext, apexInfo android.ApexInfo) { } } func (c *Module) setAndroidMkVariablesFromCquery(info cquery.CcAndroidMkInfo) { c.Properties.AndroidMkSharedLibs = info.LocalSharedLibs c.Properties.AndroidMkStaticLibs = info.LocalStaticLibs c.Properties.AndroidMkWholeStaticLibs = info.LocalWholeStaticLibs } func (c *Module) toolchain(ctx android.BaseModuleContext) config.Toolchain { if c.cachedToolchain == nil { c.cachedToolchain = config.FindToolchainWithContext(ctx) Loading
cc/cc_test.go +112 −41 Original line number Diff line number Diff line Loading @@ -3029,32 +3029,6 @@ func checkStaticLibs(t *testing.T, expected []string, module *Module) { } } func checkWholeStaticLibs(t *testing.T, expected []string, module *Module) { t.Helper() actual := module.Properties.AndroidMkWholeStaticLibs if !reflect.DeepEqual(actual, expected) { t.Errorf("incorrect whole_static_libs"+ "\nactual: %v"+ "\nexpected: %v", actual, expected, ) } } func checkSharedLibs(t *testing.T, expected []string, module *Module) { t.Helper() actual := module.Properties.AndroidMkSharedLibs if !reflect.DeepEqual(actual, expected) { t.Errorf("incorrect shared_libs"+ "\nactual: %v"+ "\nexpected: %v", actual, expected, ) } } const staticLibAndroidBp = ` cc_library { name: "lib1", Loading Loading @@ -3114,6 +3088,20 @@ func TestLibDepAndroidMkExportInMixedBuilds(t *testing.T) { whole_static_libs: ["whole_static_dep"], shared_libs: ["shared_dep"], } cc_library_headers { name: "lib_headers", bazel_module: { label: "//:lib_headers" }, static_libs: ["static_dep"], whole_static_libs: ["whole_static_dep"], shared_libs: ["shared_dep"], } cc_prebuilt_library { name: "lib_prebuilt", bazel_module: { label: "//:lib_prebuilt" }, static_libs: ["static_dep"], whole_static_libs: ["whole_static_dep"], shared_libs: ["shared_dep"], } ` testCases := []struct { Loading Loading @@ -3172,6 +3160,36 @@ func TestLibDepAndroidMkExportInMixedBuilds(t *testing.T) { LocalSharedLibs: []string{"shared_dep"}, }, }, { name: "cc_library_headers", moduleName: "lib_headers", variant: "android_arm64_armv8-a", androidMkInfo: cquery.CcAndroidMkInfo{ LocalStaticLibs: []string{"static_dep"}, LocalWholeStaticLibs: []string{"whole_static_dep"}, LocalSharedLibs: []string{"shared_dep"}, }, }, { name: "prebuilt lib static", moduleName: "lib_prebuilt", variant: "android_arm64_armv8-a_static", androidMkInfo: cquery.CcAndroidMkInfo{ LocalStaticLibs: []string{"static_dep"}, LocalWholeStaticLibs: []string{"whole_static_dep"}, LocalSharedLibs: []string{"shared_dep"}, }, }, { name: "prebuilt lib shared", moduleName: "lib_prebuilt", variant: "android_arm64_armv8-a_shared", androidMkInfo: cquery.CcAndroidMkInfo{ LocalStaticLibs: []string{"static_dep"}, LocalWholeStaticLibs: []string{"whole_static_dep"}, LocalSharedLibs: []string{"shared_dep"}, }, }, } outputBaseDir := "out/bazel" Loading @@ -3191,6 +3209,16 @@ func TestLibDepAndroidMkExportInMixedBuilds(t *testing.T) { CcAndroidMkInfo: tc.androidMkInfo, RootStaticArchives: []string{""}, }, "//:lib_headers": cquery.CcInfo{ CcAndroidMkInfo: tc.androidMkInfo, OutputFiles: []string{""}, }, "//:lib_prebuilt": cquery.CcInfo{ CcAndroidMkInfo: tc.androidMkInfo, }, "//:lib_prebuilt_bp2build_cc_library_static": cquery.CcInfo{ CcAndroidMkInfo: tc.androidMkInfo, }, }, LabelToCcBinary: map[string]cquery.CcUnstrippedInfo{ "//:test": cquery.CcUnstrippedInfo{ Loading @@ -3207,25 +3235,68 @@ func TestLibDepAndroidMkExportInMixedBuilds(t *testing.T) { module := ctx.ModuleForTests(tc.moduleName, tc.variant).Module().(*Module) entries := android.AndroidMkEntriesForTest(t, ctx, module)[0] checkStaticLibs(t, tc.androidMkInfo.LocalStaticLibs, module) missingStaticDeps := android.ListDifference(entries.EntryMap["LOCAL_STATIC_LIBRARIES"], tc.androidMkInfo.LocalStaticLibs) if len(missingStaticDeps) > 0 { t.Errorf("expected LOCAL_STATIC_LIBRARIES to be %q"+ " but was %q; difference: %q", tc.androidMkInfo.LocalStaticLibs, entries.EntryMap["LOCAL_STATIC_LIBRARIES"], missingStaticDeps) if !reflect.DeepEqual(module.Properties.AndroidMkStaticLibs, tc.androidMkInfo.LocalStaticLibs) { t.Errorf("incorrect static_libs"+ "\nactual: %v"+ "\nexpected: %v", module.Properties.AndroidMkStaticLibs, tc.androidMkInfo.LocalStaticLibs, ) } staticDepsDiffer, missingStaticDeps, additionalStaticDeps := android.ListSetDifference( entries.EntryMap["LOCAL_STATIC_LIBRARIES"], tc.androidMkInfo.LocalStaticLibs, ) if staticDepsDiffer { t.Errorf( "expected LOCAL_STATIC_LIBRARIES to be %q but was %q; missing: %q; extra %q", tc.androidMkInfo.LocalStaticLibs, entries.EntryMap["LOCAL_STATIC_LIBRARIES"], missingStaticDeps, additionalStaticDeps, ) } checkWholeStaticLibs(t, tc.androidMkInfo.LocalWholeStaticLibs, module) missingWholeStaticDeps := android.ListDifference(entries.EntryMap["LOCAL_WHOLE_STATIC_LIBRARIES"], tc.androidMkInfo.LocalWholeStaticLibs) if len(missingWholeStaticDeps) > 0 { t.Errorf("expected LOCAL_WHOLE_STATIC_LIBRARIES to be %q"+ " but was %q; difference: %q", tc.androidMkInfo.LocalWholeStaticLibs, entries.EntryMap["LOCAL_WHOLE_STATIC_LIBRARIES"], missingWholeStaticDeps) if !reflect.DeepEqual(module.Properties.AndroidMkWholeStaticLibs, tc.androidMkInfo.LocalWholeStaticLibs) { t.Errorf("expected module.Properties.AndroidMkWholeStaticLibs to be %q, but was %q", tc.androidMkInfo.LocalWholeStaticLibs, module.Properties.AndroidMkWholeStaticLibs, ) } wholeStaticDepsDiffer, missingWholeStaticDeps, additionalWholeStaticDeps := android.ListSetDifference( entries.EntryMap["LOCAL_WHOLE_STATIC_LIBRARIES"], tc.androidMkInfo.LocalWholeStaticLibs, ) if wholeStaticDepsDiffer { t.Errorf( "expected LOCAL_WHOLE_STATIC_LIBRARIES to be %q but was %q; missing: %q; extra %q", tc.androidMkInfo.LocalWholeStaticLibs, entries.EntryMap["LOCAL_WHOLE_STATIC_LIBRARIES"], missingWholeStaticDeps, additionalWholeStaticDeps, ) } checkSharedLibs(t, tc.androidMkInfo.LocalSharedLibs, module) missingSharedDeps := android.ListDifference(entries.EntryMap["LOCAL_SHARED_LIBRARIES"], tc.androidMkInfo.LocalSharedLibs) if len(missingSharedDeps) > 0 { t.Errorf("expected LOCAL_SHARED_LIBRARIES to be %q"+ " but was %q; difference: %q", tc.androidMkInfo.LocalSharedLibs, entries.EntryMap["LOCAL_SHARED_LIBRARIES"], missingSharedDeps) if !reflect.DeepEqual(module.Properties.AndroidMkSharedLibs, tc.androidMkInfo.LocalSharedLibs) { t.Errorf("incorrect shared_libs"+ "\nactual: %v"+ "\nexpected: %v", module.Properties.AndroidMkSharedLibs, tc.androidMkInfo.LocalSharedLibs, ) } sharedDepsDiffer, missingSharedDeps, additionalSharedDeps := android.ListSetDifference( entries.EntryMap["LOCAL_SHARED_LIBRARIES"], tc.androidMkInfo.LocalSharedLibs, ) if sharedDepsDiffer { t.Errorf( "expected LOCAL_SHARED_LIBRARIES to be %q but was %q; missing %q; extra %q", tc.androidMkInfo.LocalSharedLibs, entries.EntryMap["LOCAL_SHARED_LIBRARIES"], missingSharedDeps, additionalSharedDeps, ) } }) } Loading
cc/library.go +2 −0 Original line number Diff line number Diff line Loading @@ -937,6 +937,8 @@ func (handler *ccLibraryBazelHandler) ProcessBazelQueryResponse(ctx android.Modu // implementation. i.(*libraryDecorator).collectedSnapshotHeaders = android.Paths{} } handler.module.setAndroidMkVariablesFromCquery(ccInfo.CcAndroidMkInfo) } func (library *libraryDecorator) setFlagExporterInfoFromCcInfo(ctx android.ModuleContext, ccInfo cquery.CcInfo) { Loading