Revert "java_sdk_library: Control shared library use"
This reverts commit e6428b4892c0229290fa3ba71dde5311bc21c0be.
Reason for revert: Broke presubmit: b/157231582
Change-Id: I176f9940dfa7bef74cdb450774c7d09c2f6b4007
diff --git a/java/sdk_library.go b/java/sdk_library.go
index 2bdfe0d..0334f80 100644
--- a/java/sdk_library.go
+++ b/java/sdk_library.go
@@ -372,10 +372,7 @@
// Defaults to "api".
Api_dir *string
- // Determines whether a runtime implementation library is built; defaults to false.
- //
- // If true then it also prevents the module from being used as a shared module, i.e.
- // it is as is shared_library: false, was set.
+ // If set to true there is no runtime library.
Api_only *bool
// local files that are used within user customized droiddoc options.
@@ -535,13 +532,6 @@
//
// TODO(b/155480189) - Remove once naming inconsistencies have been resolved.
Naming_scheme *string
-
- // Specifies whether this module can be used as an Android shared library; defaults
- // to true.
- //
- // An Android shared library is one that can be referenced in a <uses-library> element
- // in an AndroidManifest.xml.
- Shared_library *bool
}
// Common code between sdk library and sdk library import
@@ -552,7 +542,7 @@
namingScheme sdkLibraryComponentNamingScheme
- commonSdkLibraryProperties commonToSdkLibraryAndImportProperties
+ commonProperties commonToSdkLibraryAndImportProperties
// Functionality related to this being used as a component of a java_sdk_library.
EmbeddableSdkLibraryComponent
@@ -561,14 +551,14 @@
func (c *commonToSdkLibraryAndImport) initCommon(moduleBase *android.ModuleBase) {
c.moduleBase = moduleBase
- moduleBase.AddProperties(&c.commonSdkLibraryProperties)
+ moduleBase.AddProperties(&c.commonProperties)
// Initialize this as an sdk library component.
c.initSdkLibraryComponent(moduleBase)
}
func (c *commonToSdkLibraryAndImport) initCommonAfterDefaultsApplied(ctx android.DefaultableHookContext) bool {
- schemeProperty := proptools.StringDefault(c.commonSdkLibraryProperties.Naming_scheme, "default")
+ schemeProperty := proptools.StringDefault(c.commonProperties.Naming_scheme, "default")
switch schemeProperty {
case "default":
c.namingScheme = &defaultNamingScheme{}
@@ -579,11 +569,8 @@
return false
}
- // Only track this sdk library if this can be used as a shared library.
- if c.sharedLibrary() {
- // Use the name specified in the module definition as the owner.
- c.sdkLibraryComponentProperties.SdkLibraryToImplicitlyTrack = proptools.StringPtr(c.moduleBase.BaseModuleName())
- }
+ // Use the name specified in the module definition as the owner.
+ c.sdkLibraryComponentProperties.SdkLibraryToImplicitlyTrack = proptools.StringPtr(c.moduleBase.BaseModuleName())
return true
}
@@ -753,24 +740,17 @@
func (c *commonToSdkLibraryAndImport) sdkComponentPropertiesForChildLibrary() interface{} {
componentProps := &struct {
SdkLibraryToImplicitlyTrack *string
- }{}
-
- if c.sharedLibrary() {
+ }{
// Mark the stubs library as being components of this java_sdk_library so that
// any app that includes code which depends (directly or indirectly) on the stubs
// library will have the appropriate <uses-library> invocation inserted into its
// manifest if necessary.
- componentProps.SdkLibraryToImplicitlyTrack = proptools.StringPtr(c.moduleBase.BaseModuleName())
+ SdkLibraryToImplicitlyTrack: proptools.StringPtr(c.moduleBase.BaseModuleName()),
}
return componentProps
}
-// Check if this can be used as a shared library.
-func (c *commonToSdkLibraryAndImport) sharedLibrary() bool {
- return proptools.BoolDefault(c.commonSdkLibraryProperties.Shared_library, true)
-}
-
// Properties related to the use of a module as an component of a java_sdk_library.
type SdkLibraryComponentProperties struct {
@@ -927,15 +907,12 @@
}
}
- if module.requiresRuntimeImplementationLibrary() {
- if module.sharedLibrary() {
- // Add dependency to the rule for generating the xml permissions file
- ctx.AddDependency(module, xmlPermissionsFileTag, module.xmlFileName())
- }
-
- // Only add the deps for the library if it is actually going to be built.
- module.Library.deps(ctx)
+ if !proptools.Bool(module.sdkLibraryProperties.Api_only) {
+ // Add dependency to the rule for generating the xml permissions file
+ ctx.AddDependency(module, xmlPermissionsFileTag, module.xmlFileName())
}
+
+ module.Library.deps(ctx)
}
func (module *SdkLibrary) OutputFiles(tag string) (android.Paths, error) {
@@ -948,8 +925,8 @@
}
func (module *SdkLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext) {
- // Only build an implementation library if required.
- if module.requiresRuntimeImplementationLibrary() {
+ // Don't build an implementation library if this is api only.
+ if !proptools.Bool(module.sdkLibraryProperties.Api_only) {
module.Library.GenerateAndroidBuildActions(ctx)
}
@@ -972,7 +949,7 @@
}
func (module *SdkLibrary) AndroidMkEntries() []android.AndroidMkEntries {
- if !module.requiresRuntimeImplementationLibrary() {
+ if proptools.Bool(module.sdkLibraryProperties.Api_only) {
return nil
}
entriesList := module.Library.AndroidMkEntries()
@@ -1410,12 +1387,9 @@
module.createStubsLibrary(mctx, scope)
}
- if module.requiresRuntimeImplementationLibrary() {
- // Only create an XML permissions file that declares the library as being usable
- // as a shared library if required.
- if module.sharedLibrary() {
- module.createXmlFile(mctx)
- }
+ if !proptools.Bool(module.sdkLibraryProperties.Api_only) {
+ // for runtime
+ module.createXmlFile(mctx)
// record java_sdk_library modules so that they are exported to make
javaSdkLibraries := javaSdkLibraries(mctx.Config())
@@ -1440,10 +1414,6 @@
module.deviceProperties.IsSDKLibrary = true
}
-func (module *SdkLibrary) requiresRuntimeImplementationLibrary() bool {
- return !proptools.Bool(module.sdkLibraryProperties.Api_only)
-}
-
// Defines how to name the individual component modules the sdk library creates.
type sdkLibraryComponentNamingScheme interface {
stubsLibraryModuleName(scope *apiScope, baseName string) string
@@ -1522,18 +1492,6 @@
android.AddVisibilityProperty(module, "stubs_source_visibility", &module.sdkLibraryProperties.Stubs_source_visibility)
module.SetDefaultableHook(func(ctx android.DefaultableHookContext) {
- // If no implementation is required then it cannot be used as a shared library
- // either.
- if !module.requiresRuntimeImplementationLibrary() {
- // If shared_library has been explicitly set to true then it is incompatible
- // with api_only: true.
- if proptools.Bool(module.commonSdkLibraryProperties.Shared_library) {
- ctx.PropertyErrorf("api_only/shared_library", "inconsistent settings, shared_library and api_only cannot both be true")
- }
- // Set shared_library: false.
- module.commonSdkLibraryProperties.Shared_library = proptools.BoolPtr(false)
- }
-
if module.initCommonAfterDefaultsApplied(ctx) {
module.CreateInternalModules(ctx)
}
@@ -1958,7 +1916,7 @@
}
s.Libs = sdk.properties.Libs
- s.Naming_scheme = sdk.commonSdkLibraryProperties.Naming_scheme
+ s.Naming_scheme = sdk.commonProperties.Naming_scheme
}
func (s *sdkLibrarySdkMemberProperties) AddToPropertySet(ctx android.SdkMemberContext, propertySet android.BpPropertySet) {