package bp2build import ( "android/soong/bazel" "fmt" ) // Data from the code generation process that is used to improve compatibility // between build systems. type CodegenCompatLayer struct { // A map from the original module name to the generated/handcrafted Bazel // label for legacy build systems to be able to build a fully-qualified // Bazel target from an unique module name. NameToLabelMap map[string]string } // Log an entry of module name -> Bazel target label. func (compatLayer CodegenCompatLayer) AddNameToLabelEntry(name, label string) { // The module name may be prefixed with bazel.BazelTargetModuleNamePrefix if // generated from bp2build. name = bazel.StripNamePrefix(name) if existingLabel, ok := compatLayer.NameToLabelMap[name]; ok { panic(fmt.Errorf( "Module '%s' maps to more than one Bazel target label: %s, %s. "+ "This shouldn't happen. It probably indicates a bug with the bp2build internals.", name, existingLabel, label)) } compatLayer.NameToLabelMap[name] = label }