This includes using a separate (but backward compatible) proto for the cc_analyzer since some of the fields/messages were removed in the new ide_query format. Tested the ide_query.go with the old and the new cc_analyzer to ensure backward compatibility. Change-Id: If149f5f9dd88a8f50c184274e8b258dfce117498
110 lines
3.3 KiB
Protocol Buffer
110 lines
3.3 KiB
Protocol Buffer
/*
|
|
* Copyright (C) 2024 The Android Open Source Project
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
syntax = "proto3";
|
|
|
|
package cc_analyzer;
|
|
|
|
option go_package = "ide_query/cc_analyzer_proto";
|
|
|
|
// Indicates the success/failure for analysis.
|
|
message Status {
|
|
enum Code {
|
|
OK = 0;
|
|
FAILURE = 1;
|
|
}
|
|
Code code = 1;
|
|
// Details about the status, might be displayed to user.
|
|
optional string message = 2;
|
|
}
|
|
|
|
// Represents an Android checkout on user's workstation.
|
|
message RepoState {
|
|
// Absolute path for the checkout in the workstation.
|
|
// e.g. /home/user/work/android/
|
|
string repo_dir = 1;
|
|
// Relative to repo_dir.
|
|
repeated string active_file_path = 2;
|
|
// Repository relative path to output directory in workstation.
|
|
string out_dir = 3;
|
|
// Repository relative path to compile_commands.json in workstation.
|
|
string comp_db_path = 4;
|
|
}
|
|
|
|
// Provides all the targets that are pre-requisities for running language
|
|
// services on active_file_paths.
|
|
message DepsResponse {
|
|
// Build dependencies of a source file for providing language services.
|
|
message Deps {
|
|
// Relative to repo_dir.
|
|
string source_file = 1;
|
|
// Build target to execute for generating dep.
|
|
repeated string build_target = 2;
|
|
optional Status status = 3;
|
|
}
|
|
repeated Deps deps = 1;
|
|
optional Status status = 2;
|
|
}
|
|
|
|
// Returns all the information necessary for providing language services for the
|
|
// active files.
|
|
message GeneratedFile {
|
|
// Path to the file relative to repository root.
|
|
string path = 1;
|
|
|
|
// The text of the generated file, if not provided contents will be read
|
|
// from the path above in user's workstation.
|
|
optional bytes contents = 2;
|
|
}
|
|
|
|
message SourceFile {
|
|
// Path to the source file relative to repository root.
|
|
string path = 1;
|
|
|
|
// Working directory used by the build system. All the relative
|
|
// paths in compiler_arguments should be relative to this path.
|
|
// Relative to repository root.
|
|
string working_dir = 2;
|
|
|
|
// Compiler arguments to compile the source file. If multiple variants
|
|
// of the module being compiled are possible, the query script will choose
|
|
// one.
|
|
repeated string compiler_arguments = 3;
|
|
|
|
// Any generated files that are used in compiling the file.
|
|
repeated GeneratedFile generated = 4;
|
|
|
|
// Paths to all of the sources, like build files, code generators,
|
|
// proto files etc. that were used during analysis. Used to figure
|
|
// out when a set of build artifacts are stale and the query tool
|
|
// must be re-run.
|
|
// Relative to repository root.
|
|
repeated string deps = 5;
|
|
|
|
// Represents analysis status for this particular file. e.g. not part
|
|
// of the build graph.
|
|
optional Status status = 6;
|
|
}
|
|
|
|
message IdeAnalysis {
|
|
repeated SourceFile sources = 2;
|
|
|
|
// Status representing overall analysis.
|
|
// Should fail only when no analysis can be performed.
|
|
optional Status status = 3;
|
|
|
|
reserved 1;
|
|
}
|