Loading cc/Android.bp +2 −0 Original line number Diff line number Diff line Loading @@ -99,10 +99,12 @@ bootstrap_go_package { "library_headers_test.go", "library_stub_test.go", "library_test.go", "ndk_test.go", "object_test.go", "prebuilt_test.go", "proto_test.go", "sanitize_test.go", "sdk_test.go", "test_data_test.go", "tidy_test.go", "vendor_public_library_test.go", Loading cc/cc.go +4 −1 Original line number Diff line number Diff line Loading @@ -2350,7 +2350,10 @@ func (c *Module) DepsMutator(actx android.BottomUpMutatorContext) { lib = GetReplaceModuleName(lib, GetSnapshot(c, &snapshotInfo, actx).HeaderLibs) if c.IsStubs() { if c.isNDKStubLibrary() { // ndk_headers do not have any variations actx.AddFarVariationDependencies([]blueprint.Variation{}, depTag, lib) } else if c.IsStubs() { actx.AddFarVariationDependencies(append(ctx.Target().Variations(), c.ImageVariation()), depTag, lib) } else { Loading cc/ndk_library.go +14 −6 Original line number Diff line number Diff line Loading @@ -85,9 +85,11 @@ var ( // Example: // // ndk_library { // // name: "libfoo", // symbol_file: "libfoo.map.txt", // first_version: "9", // // } type libraryProperties struct { // Relative path to the symbol map. Loading @@ -109,6 +111,9 @@ type libraryProperties struct { // where it is enabled pending a fix for http://b/190554910 (no debug info // for asm implemented symbols). Allow_untyped_symbols *bool // Headers presented by this library to the Public API Surface Export_header_libs []string } type stubDecorator struct { Loading Loading @@ -483,8 +488,11 @@ func (c *stubDecorator) compile(ctx ModuleContext, flags Flags, deps PathDeps) O return objs } // Add a dependency on the header modules of this ndk_library func (linker *stubDecorator) linkerDeps(ctx DepsContext, deps Deps) Deps { return Deps{} return Deps{ HeaderLibs: linker.properties.Export_header_libs, } } func (linker *stubDecorator) Name(name string) string { Loading cc/ndk_test.go 0 → 100644 +56 −0 Original line number Diff line number Diff line // Copyright 2022 Google Inc. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package cc import ( "testing" "github.com/google/blueprint" "android/soong/android" ) func TestNdkHeaderDependency(t *testing.T) { isDep := func(ctx *android.TestResult, from, toExpected android.Module) bool { foundDep := false ctx.VisitDirectDeps(from, func(toActual blueprint.Module) { if toExpected.Name() == toActual.Name() { foundDep = true } }) return foundDep } bp := ` ndk_library { name: "libfoo", first_version: "29", symbol_file: "libfoo.map.txt", export_header_libs: ["libfoo_headers"], } ndk_headers { name: "libfoo_headers", srcs: ["foo.h"], license: "NOTICE", } //This module is needed since Soong creates a dep edge on source cc_library { name: "libfoo", } ` ctx := prepareForCcTest.RunTestWithBp(t, bp) libfoo := ctx.ModuleForTests("libfoo.ndk", "android_arm64_armv8-a_sdk_shared") libfoo_headers := ctx.ModuleForTests("libfoo_headers", "") android.AssertBoolEquals(t, "Could not find headers of ndk_library", true, isDep(ctx, libfoo.Module(), libfoo_headers.Module())) } cc/testing.go +1 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ func RegisterRequiredBuildComponentsForTest(ctx android.RegistrationContext) { ctx.RegisterModuleType("ndk_prebuilt_static_stl", NdkPrebuiltStaticStlFactory) ctx.RegisterModuleType("ndk_prebuilt_object", NdkPrebuiltObjectFactory) ctx.RegisterModuleType("ndk_library", NdkLibraryFactory) ctx.RegisterModuleType("ndk_headers", ndkHeadersFactory) } func GatherRequiredDepsForTest(oses ...android.OsType) string { Loading Loading
cc/Android.bp +2 −0 Original line number Diff line number Diff line Loading @@ -99,10 +99,12 @@ bootstrap_go_package { "library_headers_test.go", "library_stub_test.go", "library_test.go", "ndk_test.go", "object_test.go", "prebuilt_test.go", "proto_test.go", "sanitize_test.go", "sdk_test.go", "test_data_test.go", "tidy_test.go", "vendor_public_library_test.go", Loading
cc/cc.go +4 −1 Original line number Diff line number Diff line Loading @@ -2350,7 +2350,10 @@ func (c *Module) DepsMutator(actx android.BottomUpMutatorContext) { lib = GetReplaceModuleName(lib, GetSnapshot(c, &snapshotInfo, actx).HeaderLibs) if c.IsStubs() { if c.isNDKStubLibrary() { // ndk_headers do not have any variations actx.AddFarVariationDependencies([]blueprint.Variation{}, depTag, lib) } else if c.IsStubs() { actx.AddFarVariationDependencies(append(ctx.Target().Variations(), c.ImageVariation()), depTag, lib) } else { Loading
cc/ndk_library.go +14 −6 Original line number Diff line number Diff line Loading @@ -85,9 +85,11 @@ var ( // Example: // // ndk_library { // // name: "libfoo", // symbol_file: "libfoo.map.txt", // first_version: "9", // // } type libraryProperties struct { // Relative path to the symbol map. Loading @@ -109,6 +111,9 @@ type libraryProperties struct { // where it is enabled pending a fix for http://b/190554910 (no debug info // for asm implemented symbols). Allow_untyped_symbols *bool // Headers presented by this library to the Public API Surface Export_header_libs []string } type stubDecorator struct { Loading Loading @@ -483,8 +488,11 @@ func (c *stubDecorator) compile(ctx ModuleContext, flags Flags, deps PathDeps) O return objs } // Add a dependency on the header modules of this ndk_library func (linker *stubDecorator) linkerDeps(ctx DepsContext, deps Deps) Deps { return Deps{} return Deps{ HeaderLibs: linker.properties.Export_header_libs, } } func (linker *stubDecorator) Name(name string) string { Loading
cc/ndk_test.go 0 → 100644 +56 −0 Original line number Diff line number Diff line // Copyright 2022 Google Inc. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package cc import ( "testing" "github.com/google/blueprint" "android/soong/android" ) func TestNdkHeaderDependency(t *testing.T) { isDep := func(ctx *android.TestResult, from, toExpected android.Module) bool { foundDep := false ctx.VisitDirectDeps(from, func(toActual blueprint.Module) { if toExpected.Name() == toActual.Name() { foundDep = true } }) return foundDep } bp := ` ndk_library { name: "libfoo", first_version: "29", symbol_file: "libfoo.map.txt", export_header_libs: ["libfoo_headers"], } ndk_headers { name: "libfoo_headers", srcs: ["foo.h"], license: "NOTICE", } //This module is needed since Soong creates a dep edge on source cc_library { name: "libfoo", } ` ctx := prepareForCcTest.RunTestWithBp(t, bp) libfoo := ctx.ModuleForTests("libfoo.ndk", "android_arm64_armv8-a_sdk_shared") libfoo_headers := ctx.ModuleForTests("libfoo_headers", "") android.AssertBoolEquals(t, "Could not find headers of ndk_library", true, isDep(ctx, libfoo.Module(), libfoo_headers.Module())) }
cc/testing.go +1 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ func RegisterRequiredBuildComponentsForTest(ctx android.RegistrationContext) { ctx.RegisterModuleType("ndk_prebuilt_static_stl", NdkPrebuiltStaticStlFactory) ctx.RegisterModuleType("ndk_prebuilt_object", NdkPrebuiltObjectFactory) ctx.RegisterModuleType("ndk_library", NdkLibraryFactory) ctx.RegisterModuleType("ndk_headers", ndkHeadersFactory) } func GatherRequiredDepsForTest(oses ...android.OsType) string { Loading