| // 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; |
| } |