summaryrefslogtreecommitdiff
path: root/sdk/sdk.go
diff options
context:
space:
mode:
author Paul Duffin <paulduffin@google.com> 2019-12-16 17:43:48 +0000
committer Paul Duffin <paulduffin@google.com> 2019-12-31 15:08:59 +0000
commite602918294cdfdb50dd2e9f246808adae932b5ce (patch)
tree44323e23685ac774986b42dc3e88bce5c19d27ab /sdk/sdk.go
parent28aa5448843923619cc1295065869477dab5a323 (diff)
Restrict SdkMemberTypes that can be used with sdk/sdk_snapshot
By default SdkMemberTypes are only supported on module_exports module type. Support for sdk module type has to be explicitly specified. The java_header_libs, native_shared_libs and stubs_sources are supported on sdk. The latter is required to provide the stubs source for an API specified in java_header_libs as they should be kept in sync. Bug: 146341462 Test: m nothing Change-Id: I19b9e60792780a797458d4a9e489506602b13144
Diffstat (limited to 'sdk/sdk.go')
-rw-r--r--sdk/sdk.go16
1 files changed, 12 insertions, 4 deletions
diff --git a/sdk/sdk.go b/sdk/sdk.go
index 42f5503ed..44e5cbbe4 100644
--- a/sdk/sdk.go
+++ b/sdk/sdk.go
@@ -133,6 +133,7 @@ func getDynamicSdkMemberTypes(registry *android.SdkMemberTypesRegistry) *dynamic
// * a dependency tag that identifies the member type of a resolved dependency.
//
func createDynamicSdkMemberTypes(sdkMemberTypes []android.SdkMemberType) *dynamicSdkMemberTypes {
+
var listProperties []*sdkMemberListProperty
var fields []reflect.StructField
@@ -186,13 +187,20 @@ func createDynamicSdkMemberTypes(sdkMemberTypes []android.SdkMemberType) *dynami
// sdk defines an SDK which is a logical group of modules (e.g. native libs, headers, java libs, etc.)
// which Mainline modules like APEX can choose to build with.
func SdkModuleFactory() android.Module {
- return newSdkModule()
+ return newSdkModule(false)
}
-func newSdkModule() *sdk {
+func newSdkModule(moduleExports bool) *sdk {
s := &sdk{}
+ s.properties.Module_exports = moduleExports
// Get the dynamic sdk member type data for the currently registered sdk member types.
- s.dynamicSdkMemberTypes = getDynamicSdkMemberTypes(android.SdkMemberTypes)
+ var registry *android.SdkMemberTypesRegistry
+ if moduleExports {
+ registry = android.ModuleExportsMemberTypes
+ } else {
+ registry = android.SdkMemberTypes
+ }
+ s.dynamicSdkMemberTypes = getDynamicSdkMemberTypes(registry)
// Create an instance of the dynamically created struct that contains all the
// properties for the member type specific list properties.
s.dynamicMemberTypeListProperties = s.dynamicSdkMemberTypes.createMemberListProperties()
@@ -211,7 +219,7 @@ func newSdkModule() *sdk {
// sdk_snapshot is a versioned snapshot of an SDK. This is an auto-generated module.
func SnapshotModuleFactory() android.Module {
- s := newSdkModule()
+ s := newSdkModule(false)
s.properties.Snapshot = true
return s
}