forked from arduino/arduino-cli
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathcompile.proto
123 lines (116 loc) · 5.14 KB
/
compile.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
// This file is part of arduino-cli.
//
// Copyright 2020 ARDUINO SA (http://www.arduino.cc/)
//
// This software is released under the GNU General Public License version 3,
// which covers the main part of arduino-cli.
// The terms of this license can be found at:
// https://www.gnu.org/licenses/gpl-3.0.en.html
//
// You can be released from the requirements of the above licenses by purchasing
// a commercial license. Buying such a license is mandatory if you want to
// modify or otherwise use the software for commercial activities involving the
// Arduino software without disclosing the source code of your own applications.
// To purchase a commercial license, send an email to [email protected].
syntax = "proto3";
package cc.arduino.cli.commands.v1;
option go_package = "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1;commands";
import "google/protobuf/wrappers.proto";
import "cc/arduino/cli/commands/v1/common.proto";
import "cc/arduino/cli/commands/v1/lib.proto";
message CompileRequest {
// Arduino Core Service instance from the `Init` response.
Instance instance = 1;
// Fully Qualified Board Name, e.g.: `arduino:avr:uno`. If this field is
// not defined, the FQBN of the board attached to the sketch via the
// `BoardAttach` method is used.
string fqbn = 2;
// The path where the sketch is stored.
string sketch_path = 3;
// Just get the build properties and do not run the full compile.
bool show_properties = 4;
// Print preprocessed code to stdout instead of compiling.
bool preprocess = 5;
// Builds of 'core.a' are saved into this path to be cached and reused.
string build_cache_path = 6;
// Path to use to store the files used for the compilation. If omitted,
// a directory will be created in the operating system's default temporary
// path.
string build_path = 7;
// List of custom build properties separated by commas.
repeated string build_properties = 8;
// Used to tell gcc which warning level to use. The level names are: "none",
// "default", "more" and "all".
string warnings = 9;
// Turns on verbose mode.
bool verbose = 10;
// Suppresses almost every output.
bool quiet = 11;
// VID/PID specific build properties.
string vid_pid = 12;
// The max number of concurrent compiler instances to run (as `make -jx`).
// If jobs is set to 0, it will use the number of available CPUs as the
// maximum.
int32 jobs = 14;
// A list of paths to directories containing a collection of libraries.
repeated string libraries = 15;
// Optimize compile output for debug, not for release.
bool optimize_for_debug = 16;
// Optional: save the build artifacts in this directory, the directory must
// exist.
string export_dir = 18;
// Optional: cleanup the build folder and do not use any previously cached
// build
bool clean = 19;
// When set to `true` only the compilation database will be produced and no
// actual build will be performed.
bool create_compilation_database_only = 21;
// This map (source file -> new content) let the builder use the provided
// content instead of reading the corresponding file on disk. This is useful
// for IDE that have unsaved changes in memory. The path must be relative to
// the sketch directory. Only files from the sketch are allowed.
map<string, string> source_override = 22;
// When set to `true` the compiled binary will be copied to the export
// directory.
google.protobuf.BoolValue export_binaries = 23;
// A list of paths to single libraries root directory.
repeated string library = 24;
// The path where to search for the custom signing key name and the encrypt
// key name
string keys_keychain = 25;
// The name of the custom key to use for signing during the compile process
string sign_key = 26;
// The name of the custom key to use for encrypting during the compile process
string encrypt_key = 27;
// If set to true the build will skip the library discovery process and will
// use the same libraries of latest build. Enabling this flag may produce a
// wrong output and should not be used in regular compiles unless there is a
// very specific reason to do so. This flag is mainly provided for usage in
// language servers to optimize the build speed in some particular cases.
bool skip_libraries_discovery = 28;
}
message CompileResponse {
// The output of the compilation process (stream)
bytes out_stream = 1;
// The error output of the compilation process (stream)
bytes err_stream = 2;
// The compiler build path
string build_path = 3;
// The libraries used in the build
repeated Library used_libraries = 4;
// The size of the executable split by sections
repeated ExecutableSectionSize executable_sections_size = 5;
// The platform where the board is defined
InstalledPlatformReference board_platform = 6;
// The platform used for the build (if referenced from the board platform)
InstalledPlatformReference build_platform = 7;
// Completions reports of the compilation process (stream)
TaskProgress progress = 8;
// Build properties used for compiling
repeated string build_properties = 9;
}
message ExecutableSectionSize {
string name = 1;
int64 size = 2;
int64 max_size = 3;
}