blob: d046ab251d1960654b36d79ff757ce6a0048d62e [file] [log] [blame]
// Copyright 2020 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
syntax = "proto3";
package fint;
option go_package = "go.fuchsia.dev/fuchsia/tools/integration/fint/proto";
// Static contains all of the non-dynamic configuration values for building
// Fuchsia. These values are "static" in the sense that they don't vary
// depending on things like git history or local environment, so they can be
// checked into version control.
message Static {
enum Optimize {
// If new values are added to an enum, a client using an old version of the
// protobuf definition will have all new values mapped to the enum's zero
// value. So it's important that the zero value be "special" rather than a
// regular value so the client can easily detect that something is wrong.
// See http://go/totw-4 for more info.
// TODO(olivernewman): Link to a public explanation if and when it becomes
// available.
OPTIMIZE_UNSPECIFIED = 0;
DEBUG = 1;
RELEASE = 2;
}
// The optimization level for the build.
Optimize optimize = 1;
// The board to build.
string board = 2;
// The product file to build.
string product = 3;
// Extra args to pass to gn gen.
repeated string gn_args = 4;
// Extra targets to pass to Ninja.
repeated string ninja_targets = 5;
// Fuchsia packages to build and include in the base set.
repeated string base_packages = 6;
// Fuchsia packages to build and include in the cache set.
repeated string cache_packages = 7;
// Fuchsia packages to build and include in the universe set.
repeated string universe_packages = 8;
// Host-only targets to build.
repeated string host_labels = 9;
enum Arch {
ARCH_UNSPECIFIED = 0; // See OPTIMIZE_UNSPECIFIED for rationale.
ARM64 = 1;
X64 = 2;
}
// The target CPU architecture.
Arch target_arch = 10;
// Values of select_variant GN argument.
repeated string variants = 11;
// Whether to build images for paving (rather than netbooting). Ignored if
// `exclude_images` is true.
bool pave = 12;
// Whether to build the basic images needed to boot and test on Fuchsia.
bool include_images = 13;
// Whether to build manifests of prebuilt binaries.
bool include_prebuilt_binary_manifests = 14;
// Whether to build generated source files specified in the generated sources manifest.
bool include_generated_sources = 15;
// Whether to build ZBI tests.
bool include_zbi_tests = 16;
// Whether to build host tests.
bool include_host_tests = 17;
// Whether to include archives in the build.
bool include_archives = 18;
// Names of tools referenced in tool_paths.json that we should build with
// Ninja. We assume that we should build each tool for the current OS and CPU.
repeated string tools = 19;
// Whether to skip the ninja build if we're running in CQ and none of the
// changed files affect the build.
bool skip_if_unaffected = 20;
// The path within the checkout of a file containing historical test duration
// data specific to the current build config.
string test_durations_file = 21;
// If `test_durations_file` doesn't exist within the checkout, use this file
// instead. It's not specific to the current build config, but it can be
// assumed to always exist.
string default_test_durations_file = 22;
// Whether to use goma for running ninja. Will be ignored (and goma will not
// be used) when building with some experimental toolchain versions.
bool use_goma = 23;
// Whether to generate a listing of the commands run during the build.
bool generate_compdb = 24;
// Compile commands should be generated for these targets (and all their
// dependencies). If `generate_compdb` is set and `compdb_targets` is empty,
// GN will generate compile commands for all targets in the graph.
repeated string compdb_targets = 25;
// Whether to use a go cache when building.
bool enable_go_cache = 26;
// Whether to use a rust cache when building.
bool enable_rust_cache = 27;
// Which IDE files to generate.
repeated string ide_files = 28;
// Passed to --json-ide-script GN flag; GN will execute each of these scripts
// after regenerating the project.json IDE file.
repeated string json_ide_scripts = 29;
// Whether to set --export-rust-project GN flag.
bool export_rust_project = 30;
}