Merge "Allow NDK APIs to be marked as drafts."

This commit is contained in:
Treehugger Robot
2018-11-28 23:11:06 +00:00
committed by Gerrit Code Review
6 changed files with 44 additions and 2 deletions

View File

@@ -900,6 +900,10 @@ func (c *config) NdkAbis() bool {
return Bool(c.productVariables.Ndk_abis) return Bool(c.productVariables.Ndk_abis)
} }
func (c *config) ExcludeDraftNdkApis() bool {
return Bool(c.productVariables.Exclude_draft_ndk_apis)
}
func (c *config) FlattenApex() bool { func (c *config) FlattenApex() bool {
return Bool(c.productVariables.FlattenApex) return Bool(c.productVariables.FlattenApex)
} }

View File

@@ -258,7 +258,8 @@ type productVariables struct {
VendorVars map[string]map[string]string `json:",omitempty"` VendorVars map[string]map[string]string `json:",omitempty"`
Ndk_abis *bool `json:",omitempty"` Ndk_abis *bool `json:",omitempty"`
Exclude_draft_ndk_apis *bool `json:",omitempty"`
FlattenApex *bool `json:",omitempty"` FlattenApex *bool `json:",omitempty"`
} }

View File

@@ -77,6 +77,11 @@ type headerProperties struct {
// Path to the NOTICE file associated with the headers. // Path to the NOTICE file associated with the headers.
License *string License *string
// True if this API is not yet ready to be shipped in the NDK. It will be
// available in the platform for testing, but will be excluded from the
// sysroot provided to the NDK proper.
Draft bool
} }
type headerModule struct { type headerModule struct {
@@ -182,6 +187,11 @@ type versionedHeaderProperties struct {
// Path to the NOTICE file associated with the headers. // Path to the NOTICE file associated with the headers.
License *string License *string
// True if this API is not yet ready to be shipped in the NDK. It will be
// available in the platform for testing, but will be excluded from the
// sysroot provided to the NDK proper.
Draft bool
} }
// Like ndk_headers, but preprocesses the headers with the bionic versioner: // Like ndk_headers, but preprocesses the headers with the bionic versioner:
@@ -309,6 +319,11 @@ type preprocessedHeadersProperties struct {
// Path to the NOTICE file associated with the headers. // Path to the NOTICE file associated with the headers.
License *string License *string
// True if this API is not yet ready to be shipped in the NDK. It will be
// available in the platform for testing, but will be excluded from the
// sysroot provided to the NDK proper.
Draft bool
} }
type preprocessedHeadersModule struct { type preprocessedHeadersModule struct {

View File

@@ -91,6 +91,11 @@ type libraryProperties struct {
// Private property for use by the mutator that splits per-API level. // Private property for use by the mutator that splits per-API level.
ApiLevel string `blueprint:"mutated"` ApiLevel string `blueprint:"mutated"`
// True if this API is not yet ready to be shipped in the NDK. It will be
// available in the platform for testing, but will be excluded from the
// sysroot provided to the NDK proper.
Draft bool
} }
type stubDecorator struct { type stubDecorator struct {

View File

@@ -104,22 +104,38 @@ func (n *ndkSingleton) GenerateBuildActions(ctx android.SingletonContext) {
} }
if m, ok := module.(*headerModule); ok { if m, ok := module.(*headerModule); ok {
if ctx.Config().ExcludeDraftNdkApis() && m.properties.Draft {
return
}
installPaths = append(installPaths, m.installPaths...) installPaths = append(installPaths, m.installPaths...)
licensePaths = append(licensePaths, m.licensePath) licensePaths = append(licensePaths, m.licensePath)
} }
if m, ok := module.(*versionedHeaderModule); ok { if m, ok := module.(*versionedHeaderModule); ok {
if ctx.Config().ExcludeDraftNdkApis() && m.properties.Draft {
return
}
installPaths = append(installPaths, m.installPaths...) installPaths = append(installPaths, m.installPaths...)
licensePaths = append(licensePaths, m.licensePath) licensePaths = append(licensePaths, m.licensePath)
} }
if m, ok := module.(*preprocessedHeadersModule); ok { if m, ok := module.(*preprocessedHeadersModule); ok {
if ctx.Config().ExcludeDraftNdkApis() && m.properties.Draft {
return
}
installPaths = append(installPaths, m.installPaths...) installPaths = append(installPaths, m.installPaths...)
licensePaths = append(licensePaths, m.licensePath) licensePaths = append(licensePaths, m.licensePath)
} }
if m, ok := module.(*Module); ok { if m, ok := module.(*Module); ok {
if installer, ok := m.installer.(*stubDecorator); ok { if installer, ok := m.installer.(*stubDecorator); ok {
if ctx.Config().ExcludeDraftNdkApis() &&
installer.properties.Draft {
return
}
installPaths = append(installPaths, installer.installPath) installPaths = append(installPaths, installer.installPath)
} }

View File

@@ -48,7 +48,8 @@ cat > ${SOONG_OUT}/soong.variables << EOF
"Malloc_not_svelte": false, "Malloc_not_svelte": false,
"Safestack": false, "Safestack": false,
"Ndk_abis": true "Ndk_abis": true,
"Exclude_draft_ndk_apis": true
} }
EOF EOF
m --skip-make ${SOONG_OUT}/ndk.timestamp m --skip-make ${SOONG_OUT}/ndk.timestamp