API txt files are dist artifacts
API txt files from a java_sdk_library are automatically registered as dist artifacts for sdk and win_sdk targets. They are installed under $(DIST_DIR)/apistubs/<apiscope>/api/<name>.txt where <apiscope> can be public, system and test. Bug: 77577799 Test: m -j Change-Id: I38cd8ee000445ce843ac01ead38001e509228738
This commit is contained in:
@@ -304,6 +304,12 @@ type Droiddoc struct {
|
|||||||
checkLastReleasedApiTimestamp android.WritablePath
|
checkLastReleasedApiTimestamp android.WritablePath
|
||||||
|
|
||||||
annotationsZip android.WritablePath
|
annotationsZip android.WritablePath
|
||||||
|
|
||||||
|
apiFilePath android.Path
|
||||||
|
}
|
||||||
|
|
||||||
|
type ApiFilePath interface {
|
||||||
|
ApiFilePath() android.Path
|
||||||
}
|
}
|
||||||
|
|
||||||
func InitDroiddocModule(module android.DefaultableModule, hod android.HostOrDeviceSupported) {
|
func InitDroiddocModule(module android.DefaultableModule, hod android.HostOrDeviceSupported) {
|
||||||
@@ -813,6 +819,7 @@ func (d *Droiddoc) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
|||||||
args = args + " -api " + d.apiFile.String()
|
args = args + " -api " + d.apiFile.String()
|
||||||
metalavaArgs = metalavaArgs + " --api " + d.apiFile.String()
|
metalavaArgs = metalavaArgs + " --api " + d.apiFile.String()
|
||||||
implicitOutputs = append(implicitOutputs, d.apiFile)
|
implicitOutputs = append(implicitOutputs, d.apiFile)
|
||||||
|
d.apiFilePath = d.apiFile
|
||||||
}
|
}
|
||||||
|
|
||||||
if d.checkCurrentApi() || d.checkLastReleasedApi() || String(d.properties.Removed_api_filename) != "" {
|
if d.checkCurrentApi() || d.checkLastReleasedApi() || String(d.properties.Removed_api_filename) != "" {
|
||||||
@@ -1091,6 +1098,10 @@ func (d *Droiddoc) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (d *Droiddoc) ApiFilePath() android.Path {
|
||||||
|
return d.apiFilePath
|
||||||
|
}
|
||||||
|
|
||||||
var droiddocTemplateTag = dependencyTag{name: "droiddoc-template"}
|
var droiddocTemplateTag = dependencyTag{name: "droiddoc-template"}
|
||||||
|
|
||||||
type DroiddocTemplateProperties struct {
|
type DroiddocTemplateProperties struct {
|
||||||
|
@@ -47,6 +47,9 @@ var (
|
|||||||
systemApiStubsTag = dependencyTag{name: "system"}
|
systemApiStubsTag = dependencyTag{name: "system"}
|
||||||
testApiStubsTag = dependencyTag{name: "test"}
|
testApiStubsTag = dependencyTag{name: "test"}
|
||||||
implLibTag = dependencyTag{name: "platform"}
|
implLibTag = dependencyTag{name: "platform"}
|
||||||
|
publicApiFileTag = dependencyTag{name: "publicApi"}
|
||||||
|
systemApiFileTag = dependencyTag{name: "systemApi"}
|
||||||
|
testApiFileTag = dependencyTag{name: "testApi"}
|
||||||
)
|
)
|
||||||
|
|
||||||
type apiScope int
|
type apiScope int
|
||||||
@@ -134,6 +137,10 @@ type sdkLibrary struct {
|
|||||||
systemApiStubsImplPath android.Paths
|
systemApiStubsImplPath android.Paths
|
||||||
testApiStubsImplPath android.Paths
|
testApiStubsImplPath android.Paths
|
||||||
implLibImplPath android.Paths
|
implLibImplPath android.Paths
|
||||||
|
|
||||||
|
publicApiFilePath android.Path
|
||||||
|
systemApiFilePath android.Path
|
||||||
|
testApiFilePath android.Path
|
||||||
}
|
}
|
||||||
|
|
||||||
func (module *sdkLibrary) DepsMutator(ctx android.BottomUpMutatorContext) {
|
func (module *sdkLibrary) DepsMutator(ctx android.BottomUpMutatorContext) {
|
||||||
@@ -142,6 +149,10 @@ func (module *sdkLibrary) DepsMutator(ctx android.BottomUpMutatorContext) {
|
|||||||
ctx.AddDependency(ctx.Module(), systemApiStubsTag, module.stubsName(apiScopeSystem))
|
ctx.AddDependency(ctx.Module(), systemApiStubsTag, module.stubsName(apiScopeSystem))
|
||||||
ctx.AddDependency(ctx.Module(), testApiStubsTag, module.stubsName(apiScopeTest))
|
ctx.AddDependency(ctx.Module(), testApiStubsTag, module.stubsName(apiScopeTest))
|
||||||
ctx.AddDependency(ctx.Module(), implLibTag, module.implName())
|
ctx.AddDependency(ctx.Module(), implLibTag, module.implName())
|
||||||
|
|
||||||
|
ctx.AddDependency(ctx.Module(), publicApiFileTag, module.docsName(apiScopePublic))
|
||||||
|
ctx.AddDependency(ctx.Module(), systemApiFileTag, module.docsName(apiScopeSystem))
|
||||||
|
ctx.AddDependency(ctx.Module(), testApiFileTag, module.docsName(apiScopeTest))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (module *sdkLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
func (module *sdkLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||||
@@ -170,6 +181,18 @@ func (module *sdkLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext)
|
|||||||
ctx.ModuleErrorf("depends on module %q of unknown tag %q", otherName, tag)
|
ctx.ModuleErrorf("depends on module %q of unknown tag %q", otherName, tag)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if doc, ok := to.(ApiFilePath); ok {
|
||||||
|
switch tag {
|
||||||
|
case publicApiFileTag:
|
||||||
|
module.publicApiFilePath = doc.ApiFilePath()
|
||||||
|
case systemApiFileTag:
|
||||||
|
module.systemApiFilePath = doc.ApiFilePath()
|
||||||
|
case testApiFileTag:
|
||||||
|
module.testApiFilePath = doc.ApiFilePath()
|
||||||
|
default:
|
||||||
|
ctx.ModuleErrorf("depends on module %q of unknown tag %q", otherName, tag)
|
||||||
|
}
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -199,6 +222,24 @@ func (module *sdkLibrary) AndroidMk() android.AndroidMkData {
|
|||||||
module.testApiStubsPath.Strings()[0]+
|
module.testApiStubsPath.Strings()[0]+
|
||||||
":"+path.Join("apistubs", "test", module.BaseModuleName()+".jar")+")")
|
":"+path.Join("apistubs", "test", module.BaseModuleName()+".jar")+")")
|
||||||
}
|
}
|
||||||
|
if module.publicApiFilePath != nil {
|
||||||
|
fmt.Fprintln(w, "$(call dist-for-goals,sdk win_sdk,"+
|
||||||
|
module.publicApiFilePath.String()+
|
||||||
|
":"+path.Join("apistubs", "public", "api",
|
||||||
|
module.BaseModuleName()+".txt")+")")
|
||||||
|
}
|
||||||
|
if module.systemApiFilePath != nil {
|
||||||
|
fmt.Fprintln(w, "$(call dist-for-goals,sdk win_sdk,"+
|
||||||
|
module.systemApiFilePath.String()+
|
||||||
|
":"+path.Join("apistubs", "system", "api",
|
||||||
|
module.BaseModuleName()+".txt")+")")
|
||||||
|
}
|
||||||
|
if module.testApiFilePath != nil {
|
||||||
|
fmt.Fprintln(w, "$(call dist-for-goals,sdk win_sdk,"+
|
||||||
|
module.testApiFilePath.String()+
|
||||||
|
":"+path.Join("apistubs", "test", "api",
|
||||||
|
module.BaseModuleName()+".txt")+")")
|
||||||
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user