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 3 kB image not shown  

Quelle  misc_disted_files.go   Sprache: unbekannt

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

// Copyright 2025 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 (
 "strings"

 "android/soong/android"
)

func init() {
 android.InitRegistrationContext.RegisterParallelSingletonType("cc_misc_disted_files", ccMiscDistedFilesSingletonFactory)
}

func ccMiscDistedFilesSingletonFactory() android.Singleton {
 return &ccMiscDistedFilesSingleton{}
}

type ccMiscDistedFilesSingleton struct {
 warningsAllowed []string
 usingWnoErrors  []string
}

func (s *ccMiscDistedFilesSingleton) GenerateBuildActions(ctx android.SingletonContext) {
 var warningsAllowed []string
 var usingWnoErrors []string
 var missingProfiles []string
 ctx.VisitAllModuleProxies(func(module android.ModuleProxy) {
  if v, ok := android.OtherModuleProvider(ctx, module, CcMakeVarsInfoProvider); ok {
   warningsAllowed = android.AppendIfNotZero(warningsAllowed, v.WarningsAllowed)
   usingWnoErrors = android.AppendIfNotZero(usingWnoErrors, v.UsingWnoError)
   missingProfiles = android.AppendIfNotZero(missingProfiles, v.MissingProfile)
  }
 })

 warningsAllowed = android.SortedUniqueStrings(warningsAllowed)
 usingWnoErrors = android.SortedUniqueStrings(usingWnoErrors)
 missingProfiles = android.SortedUniqueStrings(missingProfiles)

 s.warningsAllowed = warningsAllowed
 s.usingWnoErrors = usingWnoErrors

 var sb strings.Builder
 sb.WriteString("# Modules using -Wno-error\n")
 for _, nwe := range usingWnoErrors {
  sb.WriteString(nwe)
  sb.WriteString("\n")
 }
 sb.WriteString("# Modules that allow warnings\n")
 for _, wa := range warningsAllowed {
  sb.WriteString(wa)
  sb.WriteString("\n")
 }
 wallWerrFile := android.PathForOutput(ctx, "wall_werror.txt")
 android.WriteFileRuleVerbatim(ctx, wallWerrFile, sb.String())

 // Only dist this file in soong-only builds. In soong+make builds, it contains information
 // from make modules, so we'll still rely on make to build and dist it.
 if !ctx.Config().KatiEnabled() {
  ctx.DistForGoal("droidcore-unbundled", wallWerrFile)
 }

 var sb2 strings.Builder
 sb2.WriteString("# Modules missing PGO profile files\n")
 for _, mp := range missingProfiles {
  sb2.WriteString(mp)
  sb2.WriteString("\n")
 }
 profileMissingFile := android.PathForOutput(ctx, "pgo_profile_file_missing.txt")
 android.WriteFileRuleVerbatim(ctx, profileMissingFile, sb2.String())

 ctx.DistForGoal("droidcore-unbundled", profileMissingFile)
}

func (s *ccMiscDistedFilesSingleton) MakeVars(ctx android.MakeVarsContext) {
 ctx.Strict("SOONG_MODULES_WARNINGS_ALLOWED", strings.Join(s.warningsAllowed, " "))
 ctx.Strict("SOONG_MODULES_USING_WNO_ERROR", strings.Join(s.usingWnoErrors, " "))
}

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