Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit aae7c4a3 authored by LaMont Jones's avatar LaMont Jones Committed by Gerrit Code Review
Browse files

Merge "Generate specific message for build flag declarations artifact" into main

parents b07e7fd5 6d9ff256
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -73,7 +73,7 @@ func main() {
		(*flagArtifacts)[*fa.FlagDeclaration.Name] = fa
	}

	message := flagArtifacts.GenerateFlagArtifacts()
	message := flagArtifacts.GenerateFlagDeclarationArtifacts()
	err = rc_lib.WriteFormattedMessage(flags.output, flags.format, message)
	if err != nil {
		errorExit(err)
+20 −11
Original line number Diff line number Diff line
@@ -82,24 +82,33 @@ func FlagArtifactsFactory(artifactsPath string) *FlagArtifacts {
	return &ret
}

func (fa *FlagArtifact) GenerateFlagArtifact() *rc_proto.FlagArtifact {
	ret := &rc_proto.FlagArtifact{FlagDeclaration: fa.FlagDeclaration}
	if fa.Value != nil {
		ret.Value = fa.Value
func (fa *FlagArtifact) GenerateFlagDeclarationArtifact() *rc_proto.FlagDeclarationArtifact {
	ret := &rc_proto.FlagDeclarationArtifact{
		Name:            fa.FlagDeclaration.Name,
		DeclarationPath: fa.Traces[0].Source,
	}
	if len(fa.Traces) > 0 {
		ret.Traces = fa.Traces
	if namespace := fa.FlagDeclaration.GetNamespace(); namespace != "" {
		ret.Namespace = proto.String(namespace)
	}
	if description := fa.FlagDeclaration.GetDescription(); description != "" {
		ret.Description = proto.String(description)
	}
	if workflow := fa.FlagDeclaration.GetWorkflow(); workflow != rc_proto.Workflow_Workflow_Unspecified {
		ret.Workflow = &workflow
	}
	if containers := fa.FlagDeclaration.GetContainers(); containers != nil {
		ret.Containers = containers
	}
	return ret
}

func (fas *FlagArtifacts) GenerateFlagArtifacts() *rc_proto.FlagArtifacts {
	ret := &rc_proto.FlagArtifacts{FlagArtifacts: []*rc_proto.FlagArtifact{}}
func (fas *FlagArtifacts) GenerateFlagDeclarationArtifacts() *rc_proto.FlagDeclarationArtifacts {
	ret := &rc_proto.FlagDeclarationArtifacts{FlagDeclarationArtifacts: []*rc_proto.FlagDeclarationArtifact{}}
	for _, fa := range *fas {
		ret.FlagArtifacts = append(ret.FlagArtifacts, fa.GenerateFlagArtifact())
		ret.FlagDeclarationArtifacts = append(ret.FlagDeclarationArtifacts, fa.GenerateFlagDeclarationArtifact())
	}
	slices.SortFunc(ret.FlagArtifacts, func(a, b *rc_proto.FlagArtifact) int {
		return cmp.Compare(*a.FlagDeclaration.Name, *b.FlagDeclaration.Name)
	slices.SortFunc(ret.FlagDeclarationArtifacts, func(a, b *rc_proto.FlagDeclarationArtifact) int {
		return cmp.Compare(*a.Name, *b.Name)
	})
	return ret
}
+2 −0
Original line number Diff line number Diff line
@@ -24,6 +24,8 @@ bootstrap_go_package {
        "golang-protobuf-runtime-protoimpl",
    ],
    srcs: [
        "build_flags_common.pb.go",
        "build_flags_declarations.pb.go",
        "build_flags_src.pb.go",
        "build_flags_out.pb.go",
    ],
+169 −0
Original line number Diff line number Diff line
//
// Copyright (C) 2024 The Android Open-Source Project
//
// 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.

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.30.0
// 	protoc        v3.21.12
// source: build_flags_common.proto

package release_config_proto

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type Workflow int32

const (
	Workflow_Workflow_Unspecified Workflow = 0
	// Boolean value flags that progress from false to true.
	Workflow_LAUNCH Workflow = 1
	// String value flags that get updated with new version strings to control
	// prebuilt inclusion.
	Workflow_PREBUILT Workflow = 2
	// Manually managed outside flags.  These are likely to be found in a
	// different directory than flags with other workflows.
	Workflow_MANUAL Workflow = 3
)

// Enum value maps for Workflow.
var (
	Workflow_name = map[int32]string{
		0: "Workflow_Unspecified",
		1: "LAUNCH",
		2: "PREBUILT",
		3: "MANUAL",
	}
	Workflow_value = map[string]int32{
		"Workflow_Unspecified": 0,
		"LAUNCH":               1,
		"PREBUILT":             2,
		"MANUAL":               3,
	}
)

func (x Workflow) Enum() *Workflow {
	p := new(Workflow)
	*p = x
	return p
}

func (x Workflow) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Workflow) Descriptor() protoreflect.EnumDescriptor {
	return file_build_flags_common_proto_enumTypes[0].Descriptor()
}

func (Workflow) Type() protoreflect.EnumType {
	return &file_build_flags_common_proto_enumTypes[0]
}

func (x Workflow) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Do not use.
func (x *Workflow) UnmarshalJSON(b []byte) error {
	num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
	if err != nil {
		return err
	}
	*x = Workflow(num)
	return nil
}

// Deprecated: Use Workflow.Descriptor instead.
func (Workflow) EnumDescriptor() ([]byte, []int) {
	return file_build_flags_common_proto_rawDescGZIP(), []int{0}
}

var File_build_flags_common_proto protoreflect.FileDescriptor

var file_build_flags_common_proto_rawDesc = []byte{
	0x0a, 0x18, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x5f, 0x63, 0x6f,
	0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1c, 0x61, 0x6e, 0x64, 0x72,
	0x6f, 0x69, 0x64, 0x2e, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2a, 0x4a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b,
	0x66, 0x6c, 0x6f, 0x77, 0x12, 0x18, 0x0a, 0x14, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77,
	0x5f, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a,
	0x0a, 0x06, 0x4c, 0x41, 0x55, 0x4e, 0x43, 0x48, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x52,
	0x45, 0x42, 0x55, 0x49, 0x4c, 0x54, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x41, 0x4e, 0x55,
	0x41, 0x4c, 0x10, 0x03, 0x42, 0x33, 0x5a, 0x31, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x2f,
	0x73, 0x6f, 0x6f, 0x6e, 0x67, 0x2f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x63, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x2f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
}

var (
	file_build_flags_common_proto_rawDescOnce sync.Once
	file_build_flags_common_proto_rawDescData = file_build_flags_common_proto_rawDesc
)

func file_build_flags_common_proto_rawDescGZIP() []byte {
	file_build_flags_common_proto_rawDescOnce.Do(func() {
		file_build_flags_common_proto_rawDescData = protoimpl.X.CompressGZIP(file_build_flags_common_proto_rawDescData)
	})
	return file_build_flags_common_proto_rawDescData
}

var file_build_flags_common_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_build_flags_common_proto_goTypes = []interface{}{
	(Workflow)(0), // 0: android.release_config_proto.workflow
}
var file_build_flags_common_proto_depIdxs = []int32{
	0, // [0:0] is the sub-list for method output_type
	0, // [0:0] is the sub-list for method input_type
	0, // [0:0] is the sub-list for extension type_name
	0, // [0:0] is the sub-list for extension extendee
	0, // [0:0] is the sub-list for field type_name
}

func init() { file_build_flags_common_proto_init() }
func file_build_flags_common_proto_init() {
	if File_build_flags_common_proto != nil {
		return
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_build_flags_common_proto_rawDesc,
			NumEnums:      1,
			NumMessages:   0,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_build_flags_common_proto_goTypes,
		DependencyIndexes: file_build_flags_common_proto_depIdxs,
		EnumInfos:         file_build_flags_common_proto_enumTypes,
	}.Build()
	File_build_flags_common_proto = out.File
	file_build_flags_common_proto_rawDesc = nil
	file_build_flags_common_proto_goTypes = nil
	file_build_flags_common_proto_depIdxs = nil
}
+36 −0
Original line number Diff line number Diff line
//
// Copyright (C) 2024 The Android Open-Source Project
//
// 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.

syntax = "proto2";
package android.release_config_proto;
option go_package = "android/soong/release_config/release_config_proto";

// This protobuf file defines common messages used in the rest of the build flag
// protos.

enum workflow {
  Workflow_Unspecified = 0;

  // Boolean value flags that progress from false to true.
  LAUNCH = 1;

  // String value flags that get updated with new version strings to control
  // prebuilt inclusion.
  PREBUILT = 2;

  // Manually managed outside flags.  These are likely to be found in a
  // different directory than flags with other workflows.
  MANUAL = 3;
}
Loading