Spracherkennung für: .go vermutete Sprache: Abap {ABAP[32] Fortran[26] C[23]} [Methode: maximale Elemente, drei Dimensionen]
// Copyright
2019 Google Inc. All rights reserved.
//
// Licensed
under the Apache License, Version
2.
0 (the
"License");
// you may not use this
file except
in compliance with the License.
// You may obtain a
copy of the License
at
//
//
http://www.apache.org/licenses/LICENSE-2.
0
//
// Unless required
by applicable law
or agreed
to in writing, software
// distributed
under the License
is distributed
on an
"AS IS" BASIS,
// WITHOUT WARRANTIES
OR CONDITIONS
OF ANY KIND, either express
or implied.
// See the License
for the specific
language governing permissions
and
// limitations
under the License.
package java
import (
"android/soong/android"
"github.com/google/blueprint"
)
//go:
generate go
run ../../blueprint/gobtools/codegen
// @auto-
generate: gob
type JavaPluginInfo struct {
ProcessorClass
*string
GeneratesApi bool
}
var JavaPluginInfoProvider = blueprint.NewProvider[JavaPluginInfo]()
// @auto-
generate: gob
type KotlinPluginInfo struct {
}
var KotlinPluginInfoProvider = blueprint.NewProvider[KotlinPluginInfo]()
func init() {
registerJavaPluginBuildComponents(android.InitRegistrationContext)
}
func registerJavaPluginBuildComponents(ctx android.RegistrationContext) {
ctx.RegisterModuleType(
"java_plugin", PluginFactory)
ctx.RegisterModuleType(
"kotlin_plugin", KotlinPluginFactory)
}
func PluginFactory() android.
Module {
module := &Plugin{}
module.addHostProperties()
module.AddProperties(&
module.pluginProperties)
InitJavaModule(
module, android.HostSupported)
return
module
}
func KotlinPluginFactory() android.
Module {
module := &KotlinPlugin{}
module.addHostProperties()
InitJavaModule(
module, android.HostSupported)
return
module
}
// Plugin describes a java_plugin
module, a host java library that will be used
by javac
as an ann
otation processor.
type Plugin struct {
Library
pluginProperties PluginProperties
}
type PluginProperties struct {
// The optional name of the class that javac will use to run the annotation processor.
Processor_class *string
// If true, assume the annotation processor will generate classes that are referenced from outside the module.
// This necessitates disabling the turbine optimization on modules that use this plugin, which will reduce
// parallelism and cause more recompilation for modules that depend on modules that use this plugin.
Generates_api *bool
}
func (p *Plugin) GenerateAndroidBuildActions(ctx android.ModuleContext) {
p.Library.GenerateAndroidBuildActions(ctx)
android.SetProvider(ctx, JavaPluginInfoProvider, JavaPluginInfo{
ProcessorClass: p.pluginProperties.Processor_class,
GeneratesApi: Bool(p.pluginProperties.Generates_api),
})
}
// Plugin describes a kotlin_plugin module, a host java/kotlin library that will be used by kotlinc as a compiler plugin.
type KotlinPlugin struct {
Library
}
func (p *KotlinPlugin) GenerateAndroidBuildActions(ctx android.ModuleContext) {
p.Library.GenerateAndroidBuildActions(ctx)
android.SetProvider(ctx, KotlinPluginInfoProvider, KotlinPluginInfo{})
}