Update ide_query script to new format
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
diff --git a/tools/ide_query/cc_analyzer/Android.bp b/tools/ide_query/cc_analyzer/Android.bp
index 3cbbb05..e85d445 100644
--- a/tools/ide_query/cc_analyzer/Android.bp
+++ b/tools/ide_query/cc_analyzer/Android.bp
@@ -58,7 +58,7 @@
shared_libs: ["libclang-cpp_host"],
static_libs: [
"include_scanner",
- "ide_query_proto",
+ "cc_analyzer_proto",
],
defaults: ["ide_query_cc_analyzer_defaults"],
}
@@ -72,7 +72,7 @@
"libprotobuf-cpp-full",
],
static_libs: [
- "ide_query_proto",
+ "cc_analyzer_proto",
"builtin_headers",
"include_scanner",
"analyzer",
diff --git a/tools/ide_query/cc_analyzer/analyzer.cc b/tools/ide_query/cc_analyzer/analyzer.cc
index bb7ca0b..4ccec54 100644
--- a/tools/ide_query/cc_analyzer/analyzer.cc
+++ b/tools/ide_query/cc_analyzer/analyzer.cc
@@ -20,9 +20,9 @@
#include <utility>
#include <vector>
+#include "cc_analyzer.pb.h"
#include "clang/Tooling/CompilationDatabase.h"
#include "clang/Tooling/JSONCompilationDatabase.h"
-#include "ide_query.pb.h"
#include "include_scanner.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/StringRef.h"
@@ -48,11 +48,11 @@
}
} // namespace
-::ide_query::DepsResponse GetDeps(::ide_query::RepoState state) {
- ::ide_query::DepsResponse results;
+::cc_analyzer::DepsResponse GetDeps(::cc_analyzer::RepoState state) {
+ ::cc_analyzer::DepsResponse results;
auto db = LoadCompDB(state.comp_db_path());
if (!db) {
- results.mutable_status()->set_code(::ide_query::Status::FAILURE);
+ results.mutable_status()->set_code(::cc_analyzer::Status::FAILURE);
results.mutable_status()->set_message(llvm::toString(db.takeError()));
return results;
}
@@ -63,7 +63,7 @@
llvm::sys::path::append(abs_file, active_file);
auto cmds = db->get()->getCompileCommands(active_file);
if (cmds.empty()) {
- result.mutable_status()->set_code(::ide_query::Status::FAILURE);
+ result.mutable_status()->set_code(::cc_analyzer::Status::FAILURE);
result.mutable_status()->set_message(
llvm::Twine("Can't find compile flags for file: ", abs_file).str());
continue;
@@ -80,11 +80,11 @@
return results;
}
-::ide_query::IdeAnalysis GetBuildInputs(::ide_query::RepoState state) {
+::cc_analyzer::IdeAnalysis GetBuildInputs(::cc_analyzer::RepoState state) {
auto db = LoadCompDB(state.comp_db_path());
- ::ide_query::IdeAnalysis results;
+ ::cc_analyzer::IdeAnalysis results;
if (!db) {
- results.mutable_status()->set_code(::ide_query::Status::FAILURE);
+ results.mutable_status()->set_code(::cc_analyzer::Status::FAILURE);
results.mutable_status()->set_message(llvm::toString(db.takeError()));
return results;
}
@@ -97,7 +97,6 @@
genfile_root_abs.push_back('/');
}
- results.set_build_artifact_root(state.out_dir());
for (llvm::StringRef active_file : state.active_file_path()) {
auto& result = *results.add_sources();
result.set_path(active_file.str());
@@ -106,7 +105,7 @@
llvm::sys::path::append(abs_file, active_file);
auto cmds = db->get()->getCompileCommands(abs_file);
if (cmds.empty()) {
- result.mutable_status()->set_code(::ide_query::Status::FAILURE);
+ result.mutable_status()->set_code(::cc_analyzer::Status::FAILURE);
result.mutable_status()->set_message(
llvm::Twine("Can't find compile flags for file: ", abs_file).str());
continue;
@@ -114,7 +113,7 @@
const auto& cmd = cmds.front();
llvm::StringRef working_dir = cmd.Directory;
if (!working_dir.consume_front(repo_dir)) {
- result.mutable_status()->set_code(::ide_query::Status::FAILURE);
+ result.mutable_status()->set_code(::cc_analyzer::Status::FAILURE);
result.mutable_status()->set_message("Command working dir " +
working_dir.str() +
" outside repository " + repo_dir);
@@ -127,7 +126,7 @@
auto includes =
ScanIncludes(cmds.front(), llvm::vfs::createPhysicalFileSystem());
if (!includes) {
- result.mutable_status()->set_code(::ide_query::Status::FAILURE);
+ result.mutable_status()->set_code(::cc_analyzer::Status::FAILURE);
result.mutable_status()->set_message(
llvm::toString(includes.takeError()));
continue;
diff --git a/tools/ide_query/cc_analyzer/analyzer.h b/tools/ide_query/cc_analyzer/analyzer.h
index 3133795..fd19082 100644
--- a/tools/ide_query/cc_analyzer/analyzer.h
+++ b/tools/ide_query/cc_analyzer/analyzer.h
@@ -17,17 +17,17 @@
#ifndef _TOOLS_IDE_QUERY_CC_ANALYZER_ANALYZER_H_
#define _TOOLS_IDE_QUERY_CC_ANALYZER_ANALYZER_H_
-#include "ide_query.pb.h"
+#include "cc_analyzer.pb.h"
namespace tools::ide_query::cc_analyzer {
// Scans the build graph and returns target names from the build graph to
// generate all the dependencies for the active files.
-::ide_query::DepsResponse GetDeps(::ide_query::RepoState state);
+::cc_analyzer::DepsResponse GetDeps(::cc_analyzer::RepoState state);
// Scans the sources and returns all the source files required for analyzing the
// active files.
-::ide_query::IdeAnalysis GetBuildInputs(::ide_query::RepoState state);
+::cc_analyzer::IdeAnalysis GetBuildInputs(::cc_analyzer::RepoState state);
} // namespace tools::ide_query::cc_analyzer
diff --git a/tools/ide_query/cc_analyzer/main.cc b/tools/ide_query/cc_analyzer/main.cc
index 8e00c63..d86fc8c 100644
--- a/tools/ide_query/cc_analyzer/main.cc
+++ b/tools/ide_query/cc_analyzer/main.cc
@@ -28,7 +28,7 @@
#include "analyzer.h"
#include "google/protobuf/message.h"
-#include "ide_query.pb.h"
+#include "cc_analyzer.pb.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/TargetSelect.h"
@@ -48,9 +48,9 @@
llvm::cl::desc("Print the list of headers to insert and remove"),
};
-ide_query::IdeAnalysis ReturnError(llvm::StringRef message) {
- ide_query::IdeAnalysis result;
- result.mutable_status()->set_code(ide_query::Status::FAILURE);
+cc_analyzer::IdeAnalysis ReturnError(llvm::StringRef message) {
+ cc_analyzer::IdeAnalysis result;
+ result.mutable_status()->set_code(cc_analyzer::Status::FAILURE);
result.mutable_status()->set_message(message.str());
return result;
}
@@ -61,7 +61,7 @@
llvm::InitializeAllTargetInfos();
llvm::cl::ParseCommandLineOptions(argc, argv);
- ide_query::RepoState state;
+ cc_analyzer::RepoState state;
if (!state.ParseFromFileDescriptor(STDIN_FILENO)) {
llvm::errs() << "Failed to parse input!\n";
return 1;
@@ -70,12 +70,12 @@
std::unique_ptr<google::protobuf::Message> result;
switch (mode) {
case OpMode::DEPS: {
- result = std::make_unique<ide_query::DepsResponse>(
+ result = std::make_unique<cc_analyzer::DepsResponse>(
tools::ide_query::cc_analyzer::GetDeps(std::move(state)));
break;
}
case OpMode::INPUTS: {
- result = std::make_unique<ide_query::IdeAnalysis>(
+ result = std::make_unique<cc_analyzer::IdeAnalysis>(
tools::ide_query::cc_analyzer::GetBuildInputs(std::move(state)));
break;
}