Spracherkennung für: .go vermutete Sprache: Abap {ABAP[70] SPS[69] Corba[46]} [Methode: maximale Elemente, drei Dimensionen]
// Copyright
2021 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 genrule
import (
"strings"
"android/soong/android"
)
// location
is used
to service $(location)
and $(locations) entries
in genrule commands.
type location
interface {
Paths(cmd
*android.RuleBuilderCommand) []string
String()
string
}
// inputLocation
is a $(location) result
for an entry
in the srcs
property.
type inputLocation struct {
paths android.Paths
}
func (l inputLocation)
String()
string {
return strings.
Join(l.paths.Strings(),
" ")
}
func (l inputLocation) Paths(cmd
*android.RuleBuilderCommand) []string {
return cmd.PathsForInputs(l.paths)
}
var _ location = inputLocation{}
// outputLocation
is a $(location) result
for an entry
in the out
property.
type outputLocation struct {
path android.WritablePath
}
func (l outputLocation)
String()
string {
return l.path.
String()
}
func (l outputLocation) Paths(cmd
*android.RuleBuilderCommand) []string {
return []
string{cmd.PathForOutput(l.path)}
}
var _ location = outputLocation{}
// toolLocation
is a $(location) result
for an entry
in the tools
or tool_files
property.
type toolLocation struct {
paths android.Paths
}
func (l toolLocation)
String()
string {
return strings.
Join(l.paths.Strings(),
" ")
}
func (l toolLocation) Paths(cmd
*android.RuleBuilderCommand) []string {
return cmd.PathsForTools(l.paths)
}
var _ location = toolLocation{}
// packagedToolLocation
is a $(location) result
for an entry
in the tools
or tool_files
property
// that has PackagingSpecs.
type packagedToolLocation struct {
spec android.PackagingSpec
}
func (l packagedToolLocation)
String()
string {
return l.spec.FileName()
}
func (l packagedToolLocation) Paths(cmd
*android.RuleBuilderCommand) []string {
return []
string{cmd.PathForPackagedTool(l.spec)}
}
var _ location = packagedToolLocation{}
// errorLocation
is a placeholder
for a $(location) result that returns garbage
to break the co
mmand
// when error reporting is delayed by ALLOW_MISSING_DEPENDENCIES=true.
type errorLocation struct {
err string
}
func (l errorLocation) String() string {
return l.err
}
func (l errorLocation) Paths(cmd *android.RuleBuilderCommand) []string {
return []string{l.err}
}
var _ location = errorLocation{}