Merge "java_sdk_library: Allow creation of impl shared library to be disabled"
am: bcb6041b2a

Change-Id: Iaab845ed1b6fc1982b73dbb318fa3fb9b0db89d4
diff --git a/java/sdk_library.go b/java/sdk_library.go
index c68a3d1..057586f 100644
--- a/java/sdk_library.go
+++ b/java/sdk_library.go
@@ -110,6 +110,9 @@
 	// Defaults to "api".
 	Api_dir *string
 
+	// If set to true there is no runtime library.
+	Api_only *bool
+
 	// local files that are used within user customized droiddoc options.
 	Droiddoc_option_files []string
 
@@ -183,7 +186,10 @@
 }
 
 func (module *SdkLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext) {
-	module.Library.GenerateAndroidBuildActions(ctx)
+	// Don't build an implementation library if this is api only.
+	if !proptools.Bool(module.sdkLibraryProperties.Api_only) {
+		module.Library.GenerateAndroidBuildActions(ctx)
+	}
 
 	module.buildPermissionsFile(ctx)
 
@@ -247,6 +253,9 @@
 }
 
 func (module *SdkLibrary) AndroidMkEntries() []android.AndroidMkEntries {
+	if proptools.Bool(module.sdkLibraryProperties.Api_only) {
+		return nil
+	}
 	entriesList := module.Library.AndroidMkEntries()
 	entries := &entriesList[0]
 	entries.Required = append(entries.Required, module.xmlFileName())
@@ -773,16 +782,18 @@
 		// for test API stubs
 		module.createStubsLibrary(mctx, apiScopeTest)
 		module.createStubsSources(mctx, apiScopeTest)
-
-		// for runtime
-		module.createXmlFile(mctx)
 	}
 
-	// record java_sdk_library modules so that they are exported to make
-	javaSdkLibraries := javaSdkLibraries(mctx.Config())
-	javaSdkLibrariesLock.Lock()
-	defer javaSdkLibrariesLock.Unlock()
-	*javaSdkLibraries = append(*javaSdkLibraries, module.BaseModuleName())
+	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())
+		javaSdkLibrariesLock.Lock()
+		defer javaSdkLibrariesLock.Unlock()
+		*javaSdkLibraries = append(*javaSdkLibraries, module.BaseModuleName())
+	}
 }
 
 func (module *SdkLibrary) InitSdkLibraryProperties() {