blob: 42354cab6d98df735121c77682006f1f702a3199 [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;
// Whether to skip building the basic images needed to boot and test on
// Fuchsia.
bool exclude_images = 4;
// Extra args to pass to gn gen.
repeated string gn_args = 5;
// Extra targets to pass to Ninja.
repeated string ninja_targets = 6;
// Fuchsia packages to build and include in the base set.
repeated string base_packages = 7;
// Fuchsia packages to build and include in the cache set.
repeated string cache_packages = 8;
// Fuchsia packages to build and include in the universe set.
repeated string universe_packages = 9;
// Whether to build host tests.
bool include_host_tests = 10;
enum Arch {
ARCH_UNSPECIFIED = 0; // See OPTIMIZE_UNSPECIFIED for rationale.
ARM64 = 1;
X64 = 2;
}
// The target CPU architecture.
Arch target_arch = 11;
// Values of select_variant GN argument.
repeated string variants = 12;
// Whether to include archives in the build.
bool include_archives = 13;
// 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 = 14;
// The path within the checkout of a file containing historical test duration
// data specific to the current build config.
string test_durations_file = 15;
// 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 = 16;
// 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 = 17;
// Whether to generate a listing of the commands run during the build.
bool generate_compdb = 18;
// Whether to generate an IDE project.json file containing target information.
bool generate_ide = 19;
}