Loading java/droiddoc.go +26 −2 Original line number Diff line number Diff line Loading @@ -222,8 +222,22 @@ type DroidstubsProperties struct { 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. // The java_sdk_library module generates references to modules (i.e. filegroups) // from which information about the latest API version can be obtained. As those // modules may not exist (e.g. because a previous version has not been released) it // sets ignore_missing_latest_api=true on the droidstubs modules it creates so // that droidstubs can ignore those references if the modules do not yet exist. // // If true then this will ignore module references for modules that do not exist // in properties that supply the previous version of the API. // // There are two sets of those: // * Api_file, Removed_api_file in check_api.last_released // * New_since in check_api.api_lint.new_since // // The first two must be set as a pair, so either they should both exist or neither // should exist - in which case when this property is true they are ignored. If one // exists and the other does not then it is an error. Ignore_missing_latest_api *bool `blueprint:"mutated"` Api_lint struct { Loading Loading @@ -1200,8 +1214,18 @@ func (d *Droidstubs) StubsSrcJar() android.Path { func (d *Droidstubs) DepsMutator(ctx android.BottomUpMutatorContext) { d.Javadoc.addDeps(ctx) // If requested clear any properties that provide information about the latest version // of an API and which reference non-existent modules. if Bool(d.properties.Check_api.Ignore_missing_latest_api) { ignoreMissingModules(ctx, &d.properties.Check_api.Last_released) // If the new_since references a module, e.g. :module-latest-api and the module // does not exist then clear it. newSinceSrc := d.properties.Check_api.Api_lint.New_since newSinceSrcModule := android.SrcIsModule(proptools.String(newSinceSrc)) if newSinceSrcModule != "" && !ctx.OtherModuleExists(newSinceSrcModule) { d.properties.Check_api.Api_lint.New_since = nil } } if len(d.properties.Merge_annotations_dirs) != 0 { Loading java/sdk_library.go +33 −2 Original line number Diff line number Diff line Loading @@ -351,6 +351,12 @@ type sdkLibraryProperties struct { // disabled by default. Module_lib ApiScopeProperties // Properties related to api linting. Api_lint struct { // Enable api linting. Enabled *bool } // TODO: determines whether to create HTML doc or not //Html_doc *bool } Loading Loading @@ -677,6 +683,12 @@ func (module *SdkLibrary) createStubsSourcesAndApi(mctx android.DefaultableHookC Current ApiToCheck Last_released ApiToCheck Ignore_missing_latest_api *bool Api_lint struct { Enabled *bool New_since *string Baseline_file *string } } Aidl struct { Include_dirs []string Loading Loading @@ -759,11 +771,30 @@ func (module *SdkLibrary) createStubsSourcesAndApi(mctx android.DefaultableHookC if !apiScope.unstable { // check against the latest released API props.Check_api.Last_released.Api_file = proptools.StringPtr( module.latestApiFilegroupName(apiScope)) latestApiFilegroupName := proptools.StringPtr(module.latestApiFilegroupName(apiScope)) props.Check_api.Last_released.Api_file = latestApiFilegroupName props.Check_api.Last_released.Removed_api_file = proptools.StringPtr( module.latestRemovedApiFilegroupName(apiScope)) props.Check_api.Ignore_missing_latest_api = proptools.BoolPtr(true) if proptools.Bool(module.sdkLibraryProperties.Api_lint.Enabled) { // Enable api lint. props.Check_api.Api_lint.Enabled = proptools.BoolPtr(true) props.Check_api.Api_lint.New_since = latestApiFilegroupName // If it exists then pass a lint-baseline.txt through to droidstubs. baselinePath := path.Join(apiDir, apiScope.apiFilePrefix+"lint-baseline.txt") baselinePathRelativeToRoot := path.Join(mctx.ModuleDir(), baselinePath) paths, err := mctx.GlobWithDeps(baselinePathRelativeToRoot, nil) if err != nil { mctx.ModuleErrorf("error checking for presence of %s: %s", baselinePathRelativeToRoot, err) } if len(paths) == 1 { props.Check_api.Api_lint.Baseline_file = proptools.StringPtr(baselinePath) } else if len(paths) != 0 { mctx.ModuleErrorf("error checking for presence of %s: expected one path, found: %v", baselinePathRelativeToRoot, paths) } } } // Dist the api txt artifact for sdk builds. Loading Loading
java/droiddoc.go +26 −2 Original line number Diff line number Diff line Loading @@ -222,8 +222,22 @@ type DroidstubsProperties struct { 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. // The java_sdk_library module generates references to modules (i.e. filegroups) // from which information about the latest API version can be obtained. As those // modules may not exist (e.g. because a previous version has not been released) it // sets ignore_missing_latest_api=true on the droidstubs modules it creates so // that droidstubs can ignore those references if the modules do not yet exist. // // If true then this will ignore module references for modules that do not exist // in properties that supply the previous version of the API. // // There are two sets of those: // * Api_file, Removed_api_file in check_api.last_released // * New_since in check_api.api_lint.new_since // // The first two must be set as a pair, so either they should both exist or neither // should exist - in which case when this property is true they are ignored. If one // exists and the other does not then it is an error. Ignore_missing_latest_api *bool `blueprint:"mutated"` Api_lint struct { Loading Loading @@ -1200,8 +1214,18 @@ func (d *Droidstubs) StubsSrcJar() android.Path { func (d *Droidstubs) DepsMutator(ctx android.BottomUpMutatorContext) { d.Javadoc.addDeps(ctx) // If requested clear any properties that provide information about the latest version // of an API and which reference non-existent modules. if Bool(d.properties.Check_api.Ignore_missing_latest_api) { ignoreMissingModules(ctx, &d.properties.Check_api.Last_released) // If the new_since references a module, e.g. :module-latest-api and the module // does not exist then clear it. newSinceSrc := d.properties.Check_api.Api_lint.New_since newSinceSrcModule := android.SrcIsModule(proptools.String(newSinceSrc)) if newSinceSrcModule != "" && !ctx.OtherModuleExists(newSinceSrcModule) { d.properties.Check_api.Api_lint.New_since = nil } } if len(d.properties.Merge_annotations_dirs) != 0 { Loading
java/sdk_library.go +33 −2 Original line number Diff line number Diff line Loading @@ -351,6 +351,12 @@ type sdkLibraryProperties struct { // disabled by default. Module_lib ApiScopeProperties // Properties related to api linting. Api_lint struct { // Enable api linting. Enabled *bool } // TODO: determines whether to create HTML doc or not //Html_doc *bool } Loading Loading @@ -677,6 +683,12 @@ func (module *SdkLibrary) createStubsSourcesAndApi(mctx android.DefaultableHookC Current ApiToCheck Last_released ApiToCheck Ignore_missing_latest_api *bool Api_lint struct { Enabled *bool New_since *string Baseline_file *string } } Aidl struct { Include_dirs []string Loading Loading @@ -759,11 +771,30 @@ func (module *SdkLibrary) createStubsSourcesAndApi(mctx android.DefaultableHookC if !apiScope.unstable { // check against the latest released API props.Check_api.Last_released.Api_file = proptools.StringPtr( module.latestApiFilegroupName(apiScope)) latestApiFilegroupName := proptools.StringPtr(module.latestApiFilegroupName(apiScope)) props.Check_api.Last_released.Api_file = latestApiFilegroupName props.Check_api.Last_released.Removed_api_file = proptools.StringPtr( module.latestRemovedApiFilegroupName(apiScope)) props.Check_api.Ignore_missing_latest_api = proptools.BoolPtr(true) if proptools.Bool(module.sdkLibraryProperties.Api_lint.Enabled) { // Enable api lint. props.Check_api.Api_lint.Enabled = proptools.BoolPtr(true) props.Check_api.Api_lint.New_since = latestApiFilegroupName // If it exists then pass a lint-baseline.txt through to droidstubs. baselinePath := path.Join(apiDir, apiScope.apiFilePrefix+"lint-baseline.txt") baselinePathRelativeToRoot := path.Join(mctx.ModuleDir(), baselinePath) paths, err := mctx.GlobWithDeps(baselinePathRelativeToRoot, nil) if err != nil { mctx.ModuleErrorf("error checking for presence of %s: %s", baselinePathRelativeToRoot, err) } if len(paths) == 1 { props.Check_api.Api_lint.Baseline_file = proptools.StringPtr(baselinePath) } else if len(paths) != 0 { mctx.ModuleErrorf("error checking for presence of %s: expected one path, found: %v", baselinePathRelativeToRoot, paths) } } } // Dist the api txt artifact for sdk builds. Loading