Merge "Allow NDK APIs to be marked as drafts."
This commit is contained in:
@@ -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)
|
||||||
}
|
}
|
||||||
|
@@ -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"`
|
||||||
}
|
}
|
||||||
|
@@ -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 {
|
||||||
|
@@ -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 {
|
||||||
|
@@ -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)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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
|
||||||
|
Reference in New Issue
Block a user