Merge changes from topic "libbinder_ndk-remove-cpp-headers" into main
* changes: ndk_library: limit exports Reland "Truely re-export export_header_libs from ndk_library" ndk_library depends on the correct arch variant of cc_library_headers
This commit is contained in:
@@ -60,6 +60,7 @@ func init() {
|
|||||||
AddNeverAllowRules(createCcStubsRule())
|
AddNeverAllowRules(createCcStubsRule())
|
||||||
AddNeverAllowRules(createJavaExcludeStaticLibsRule())
|
AddNeverAllowRules(createJavaExcludeStaticLibsRule())
|
||||||
AddNeverAllowRules(createProhibitHeaderOnlyRule())
|
AddNeverAllowRules(createProhibitHeaderOnlyRule())
|
||||||
|
AddNeverAllowRules(createLimitNdkExportRule()...)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add a NeverAllow rule to the set of rules to apply.
|
// Add a NeverAllow rule to the set of rules to apply.
|
||||||
@@ -267,6 +268,22 @@ func createProhibitHeaderOnlyRule() Rule {
|
|||||||
Because("headers_only can only be used for generating framework-minus-apex headers for non-updatable modules")
|
Because("headers_only can only be used for generating framework-minus-apex headers for non-updatable modules")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func createLimitNdkExportRule() []Rule {
|
||||||
|
reason := "If the headers you're trying to export are meant to be a part of the NDK, they should be exposed by an ndk_headers module. If the headers shouldn't be a part of the NDK, the headers should instead be exposed from a separate `cc_library_headers` which consumers depend on."
|
||||||
|
// DO NOT ADD HERE - please consult danalbert@
|
||||||
|
// b/357711733
|
||||||
|
return []Rule{
|
||||||
|
NeverAllow().
|
||||||
|
NotIn("frameworks/native/libs/binder/ndk").
|
||||||
|
ModuleType("ndk_library").
|
||||||
|
WithMatcher("export_header_libs", isSetMatcherInstance).Because(reason),
|
||||||
|
NeverAllow().ModuleType("ndk_library").WithMatcher("export_generated_headers", isSetMatcherInstance).Because(reason),
|
||||||
|
NeverAllow().ModuleType("ndk_library").WithMatcher("export_include_dirs", isSetMatcherInstance).Because(reason),
|
||||||
|
NeverAllow().ModuleType("ndk_library").WithMatcher("export_shared_lib_headers", isSetMatcherInstance).Because(reason),
|
||||||
|
NeverAllow().ModuleType("ndk_library").WithMatcher("export_static_lib_headers", isSetMatcherInstance).Because(reason),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func neverallowMutator(ctx BottomUpMutatorContext) {
|
func neverallowMutator(ctx BottomUpMutatorContext) {
|
||||||
m, ok := ctx.Module().(Module)
|
m, ok := ctx.Module().(Module)
|
||||||
if !ok {
|
if !ok {
|
||||||
|
10
cc/cc.go
10
cc/cc.go
@@ -2507,8 +2507,14 @@ func (c *Module) DepsMutator(actx android.BottomUpMutatorContext) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if c.isNDKStubLibrary() {
|
if c.isNDKStubLibrary() {
|
||||||
// ndk_headers do not have any variations
|
variationExists := actx.OtherModuleDependencyVariantExists(nil, lib)
|
||||||
actx.AddFarVariationDependencies([]blueprint.Variation{}, depTag, lib)
|
if variationExists {
|
||||||
|
actx.AddVariationDependencies(nil, depTag, lib)
|
||||||
|
} else {
|
||||||
|
// dependencies to ndk_headers fall here as ndk_headers do not have
|
||||||
|
// any variants.
|
||||||
|
actx.AddFarVariationDependencies([]blueprint.Variation{}, depTag, lib)
|
||||||
|
}
|
||||||
} else if c.IsStubs() && !c.isImportedApiLibrary() {
|
} else if c.IsStubs() && !c.isImportedApiLibrary() {
|
||||||
actx.AddFarVariationDependencies(append(ctx.Target().Variations(), c.ImageVariation()),
|
actx.AddFarVariationDependencies(append(ctx.Target().Variations(), c.ImageVariation()),
|
||||||
depTag, lib)
|
depTag, lib)
|
||||||
|
@@ -493,7 +493,8 @@ func (c *stubDecorator) compile(ctx ModuleContext, flags Flags, deps PathDeps) O
|
|||||||
// Add a dependency on the header modules of this ndk_library
|
// Add a dependency on the header modules of this ndk_library
|
||||||
func (linker *stubDecorator) linkerDeps(ctx DepsContext, deps Deps) Deps {
|
func (linker *stubDecorator) linkerDeps(ctx DepsContext, deps Deps) Deps {
|
||||||
return Deps{
|
return Deps{
|
||||||
HeaderLibs: linker.properties.Export_header_libs,
|
ReexportHeaderLibHeaders: linker.properties.Export_header_libs,
|
||||||
|
HeaderLibs: linker.properties.Export_header_libs,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user