blob: 753da15599bfc39201bf7381be399a2b9144ae6a [file] [log] [blame]
// Copyright 2024 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
syntax = "proto3";
package chromite.api;
option go_package = "go.chromium.org/chromiumos/infra/proto/go/chromite/api";
import "chromite/api/build_api.proto";
import "chromiumos/common.proto";
message GenerateMergedCompilationDBRequest {
message Flags {
// If true, the execution stops on first failed package.
bool fail_fast = 1;
// Whether to build tests alongside packages before generating.
bool with_tests = 2;
}
// The chroot to use for generating the compdb.
// The method expects that the build artifacts were generated and
// stored in out_path.
// Required.
chromiumos.Chroot chroot = 1;
// The build target to generate a compdb for.
// Required.
chromiumos.BuildTarget build_target = 2;
// Directory to store merged build artifacts.
// WARNING: existing dir if any will be completely removed.
chromiumos.Path build_dir = 3;
// Output file path for compile commands json.
chromiumos.Path compile_commands = 4;
// List of packages to process.
repeated chromiumos.PackageInfo packages = 5;
// Flag arguments.
Flags flags = 6;
}
message GenerateMergedCompilationDBResponse {}
// Service for IDE functionalities
service IdeService {
option (service_options) = {
module : "ide",
};
// Generate compilation database for ChromeOS packages and
// merge build artifacts for selected packages and their dependencies
// into a single build directory.
rpc GenerateMergedCompilationDB(GenerateMergedCompilationDBRequest)
returns (GenerateMergedCompilationDBResponse) {
option (method_options) = {
method_chroot_assert : OUTSIDE,
};
};
}