Ignore missing prebuilt_apis of java_sdk_library
Building java_sdk_library without defining prebuilt_apis has been failing with weird error messages. So one have to touch empty txt files and create prebuilt_apis module, even when the java_sdk_library is brand-new and has no previous versions. This commit fixes it so that API check against previous version is skipped, in the case of missing prebuilt_apis. Note that Current api txt files (placed under api/ directory) are still needed (make update-api) Bug: 126259114 Test: tries to build without touching empty api txt files. Change-Id: I93630f4139cbf502621693ec315dc06c0d07d1c3
This commit is contained in:
parent
afbddd8ddd
commit
38449af64f
2 changed files with 39 additions and 2 deletions
|
@ -307,6 +307,10 @@ type DroiddocProperties struct {
|
||||||
Last_released ApiToCheck
|
Last_released ApiToCheck
|
||||||
|
|
||||||
Current ApiToCheck
|
Current ApiToCheck
|
||||||
|
|
||||||
|
// do not perform API check against Last_released, in the case that both two specified API
|
||||||
|
// files by Last_released are modules which don't exist.
|
||||||
|
Ignore_missing_latest_api *bool `blueprint:"mutated"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// if set to true, generate docs through Dokka instead of Doclava.
|
// if set to true, generate docs through Dokka instead of Doclava.
|
||||||
|
@ -349,6 +353,10 @@ type DroidstubsProperties struct {
|
||||||
Last_released ApiToCheck
|
Last_released ApiToCheck
|
||||||
|
|
||||||
Current ApiToCheck
|
Current ApiToCheck
|
||||||
|
|
||||||
|
// do not perform API check against Last_released, in the case that both two specified API
|
||||||
|
// files by Last_released are modules which don't exist.
|
||||||
|
Ignore_missing_latest_api *bool `blueprint:"mutated"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// user can specify the version of previous released API file in order to do compatibility check.
|
// user can specify the version of previous released API file in order to do compatibility check.
|
||||||
|
@ -427,6 +435,25 @@ func apiCheckEnabled(apiToCheck ApiToCheck, apiVersionTag string) bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func ignoreMissingModules(ctx android.BottomUpMutatorContext, apiToCheck *ApiToCheck) {
|
||||||
|
api_file := String(apiToCheck.Api_file)
|
||||||
|
removed_api_file := String(apiToCheck.Removed_api_file)
|
||||||
|
|
||||||
|
api_module := android.SrcIsModule(api_file)
|
||||||
|
removed_api_module := android.SrcIsModule(removed_api_file)
|
||||||
|
|
||||||
|
if api_module == "" || removed_api_module == "" {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if ctx.OtherModuleExists(api_module) || ctx.OtherModuleExists(removed_api_module) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
apiToCheck.Api_file = nil
|
||||||
|
apiToCheck.Removed_api_file = nil
|
||||||
|
}
|
||||||
|
|
||||||
type ApiFilePath interface {
|
type ApiFilePath interface {
|
||||||
ApiFilePath() android.Path
|
ApiFilePath() android.Path
|
||||||
}
|
}
|
||||||
|
@ -839,6 +866,10 @@ func (d *Droiddoc) ApiFilePath() android.Path {
|
||||||
func (d *Droiddoc) DepsMutator(ctx android.BottomUpMutatorContext) {
|
func (d *Droiddoc) DepsMutator(ctx android.BottomUpMutatorContext) {
|
||||||
d.Javadoc.addDeps(ctx)
|
d.Javadoc.addDeps(ctx)
|
||||||
|
|
||||||
|
if Bool(d.properties.Check_api.Ignore_missing_latest_api) {
|
||||||
|
ignoreMissingModules(ctx, &d.properties.Check_api.Last_released)
|
||||||
|
}
|
||||||
|
|
||||||
if String(d.properties.Custom_template) != "" {
|
if String(d.properties.Custom_template) != "" {
|
||||||
ctx.AddDependency(ctx.Module(), droiddocTemplateTag, String(d.properties.Custom_template))
|
ctx.AddDependency(ctx.Module(), droiddocTemplateTag, String(d.properties.Custom_template))
|
||||||
}
|
}
|
||||||
|
@ -1283,6 +1314,10 @@ func (d *Droidstubs) ApiFilePath() android.Path {
|
||||||
func (d *Droidstubs) DepsMutator(ctx android.BottomUpMutatorContext) {
|
func (d *Droidstubs) DepsMutator(ctx android.BottomUpMutatorContext) {
|
||||||
d.Javadoc.addDeps(ctx)
|
d.Javadoc.addDeps(ctx)
|
||||||
|
|
||||||
|
if Bool(d.properties.Check_api.Ignore_missing_latest_api) {
|
||||||
|
ignoreMissingModules(ctx, &d.properties.Check_api.Last_released)
|
||||||
|
}
|
||||||
|
|
||||||
if apiCheckEnabled(d.properties.Check_api.Current, "current") {
|
if apiCheckEnabled(d.properties.Check_api.Current, "current") {
|
||||||
android.ExtractSourceDeps(ctx, d.properties.Check_api.Current.Api_file)
|
android.ExtractSourceDeps(ctx, d.properties.Check_api.Current.Api_file)
|
||||||
android.ExtractSourceDeps(ctx, d.properties.Check_api.Current.Removed_api_file)
|
android.ExtractSourceDeps(ctx, d.properties.Check_api.Current.Removed_api_file)
|
||||||
|
|
|
@ -456,6 +456,7 @@ func (module *SdkLibrary) createDocs(mctx android.TopDownMutatorContext, apiScop
|
||||||
Check_api struct {
|
Check_api struct {
|
||||||
Current ApiToCheck
|
Current ApiToCheck
|
||||||
Last_released ApiToCheck
|
Last_released ApiToCheck
|
||||||
|
Ignore_missing_latest_api *bool
|
||||||
}
|
}
|
||||||
Aidl struct {
|
Aidl struct {
|
||||||
Include_dirs []string
|
Include_dirs []string
|
||||||
|
@ -524,6 +525,7 @@ func (module *SdkLibrary) createDocs(mctx android.TopDownMutatorContext, apiScop
|
||||||
module.latestApiFilegroupName(apiScope))
|
module.latestApiFilegroupName(apiScope))
|
||||||
props.Check_api.Last_released.Removed_api_file = proptools.StringPtr(
|
props.Check_api.Last_released.Removed_api_file = proptools.StringPtr(
|
||||||
module.latestRemovedApiFilegroupName(apiScope))
|
module.latestRemovedApiFilegroupName(apiScope))
|
||||||
|
props.Check_api.Ignore_missing_latest_api = proptools.BoolPtr(true)
|
||||||
props.Srcs_lib = module.sdkLibraryProperties.Srcs_lib
|
props.Srcs_lib = module.sdkLibraryProperties.Srcs_lib
|
||||||
props.Srcs_lib_whitelist_dirs = module.sdkLibraryProperties.Srcs_lib_whitelist_dirs
|
props.Srcs_lib_whitelist_dirs = module.sdkLibraryProperties.Srcs_lib_whitelist_dirs
|
||||||
props.Srcs_lib_whitelist_pkgs = module.sdkLibraryProperties.Srcs_lib_whitelist_pkgs
|
props.Srcs_lib_whitelist_pkgs = module.sdkLibraryProperties.Srcs_lib_whitelist_pkgs
|
||||||
|
|
Loading…
Reference in a new issue