Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Android/build/build/soong/cc/   (Android Betriebssystem Version 17©)  Datei vom 26.5.2026 mit Größe 2 kB image not shown  

Quelle  fdo_profile.go   Sprache: unbekannt

 
Spracherkennung für: .go vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

// Copyright 2023 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 cc

import (
 "android/soong/android"
 "github.com/google/blueprint"

 "github.com/google/blueprint/proptools"
)

//go:generate go run ../../blueprint/gobtools/codegen

func init() {
 RegisterFdoProfileBuildComponents(android.InitRegistrationContext)
}

func RegisterFdoProfileBuildComponents(ctx android.RegistrationContext) {
 ctx.RegisterModuleType("fdo_profile", FdoProfileFactory)
}

type fdoProfile struct {
 android.ModuleBase

 properties fdoProfileProperties
}

type fdoProfileProperties struct {
 Profile proptools.Configurable[string] `android:"arch_variant,replace_instead_of_append"`

 // If set to true, do not add -fprofile-sample-accurate to the module.
 Incomplete_coverage *bool
}

// FdoProfileInfo is provided by FdoProfileProvider
// @auto-generate: gob
type FdoProfileInfo struct {
 Path               android.Path
 IncompleteCoverage bool
}

// FdoProfileProvider is used to provide path to an fdo profile
var FdoProfileProvider = blueprint.NewProvider[FdoProfileInfo]()

// GenerateAndroidBuildActions of fdo_profile does not have any build actions
func (fp *fdoProfile) GenerateAndroidBuildActions(ctx android.ModuleContext) {
 profile := fp.properties.Profile.GetOrDefault(ctx, "")
 if profile != "" {
  path := android.PathForModuleSrc(ctx, profile)
  android.SetProvider(ctx, FdoProfileProvider, FdoProfileInfo{
   Path:               path,
   IncompleteCoverage: proptools.Bool(fp.properties.Incomplete_coverage),
  })
 }
}

func FdoProfileFactory() android.Module {
 m := &fdoProfile{}
 m.AddProperties(&m.properties)
 android.InitAndroidMultiTargetsArchModule(m, android.DeviceSupported, android.MultilibBoth)
 return m
}

[Dauer der Verarbeitung: 0.19 Sekunden, vorverarbeitet 2026-06-28]