blob: 67aa00666c4caa7159798a710a26e24fa19ef30c [file] [log] [blame] [edit]
// Copyright 2025 The Bazel Authors. 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.
// After updating this file, create a new version of project_proto.scl with:
//
// $ blaze run
// //third_party/bazel/src/main/protobuf/project:foo_proto_scl_update
edition = "2023";
package build_project;
import "devtools/starlark/protolark/proto/protolark.proto";
import "src/main/protobuf/project/buildable_unit.proto";
import "src/main/protobuf/project/enforcement_policy.proto";
// Configuration for a Blaze project.
message Project {
string name = 1;
// Targets to be built and tested with a set of build or test flags.
// Cloned from BlueprintFile.buildable_unit.
repeated BuildableUnit buildable_units = 3
[(.protolark.used_in_blaze) = true];
// For blaze. Interactive build enforcement policy. Defaults to WARN.
EnforcementPolicy enforcement_policy = 4 [(.protolark.used_in_blaze) = true];
// The packages that make up this project. Expected syntax:
// ["//foo", "//bar/baz", ...].
//
// Blaze uses this to remove flags from build graph dependencies for flags
// that are defined as "project-only scoe".
repeated string project_directories = 5 [(.protolark.used_in_blaze) = true];
// --configs that are always allowed. Permit all flags that derive from any
// --config set here.
repeated string always_allowed_configs = 6
[(.protolark.used_in_blaze) = true];
}