logic : Fixed no indexed information saved for compilation database referencing certain compiler (issue #531)

* changed order of compiler flags for CDB indexer commands so that manually added flags are appended to the flags form the compile command.
* removed usage of clang::tooling::FixedCompilationDatabase and used CompilationDatabaseSingle for empty and cdb indexer commands.
* removed reference to a specific clang tool (e.g. "cl" or "cl.exe") from compile command and prepended "clang-tool" before running the indexer.
This commit is contained in:
mlangkabel
2018-01-15 09:58:38 +01:00
parent 417f8d2286
commit c569f921a2
13 changed files with 52 additions and 78 deletions
@@ -27,6 +27,7 @@ void SharedIndexerCommand::fromLocal(IndexerCommand* indexerCommand)
IndexerCommandCxxEmpty* cmd = dynamic_cast<IndexerCommandCxxEmpty*>(indexerCommand);
setType(CXX_EMPTY);
setWorkingDirectory(cmd->getWorkingDirectory());
setLanguageStandard(cmd->getLanguageStandard());
setCompilerFlags(cmd->getCompilerFlags());
setSystemHeaderSearchPaths(cmd->getSystemHeaderSearchPaths());
@@ -69,6 +70,7 @@ std::shared_ptr<IndexerCommand> SharedIndexerCommand::fromShared(const SharedInd
indexerCommand.getSourceFilePath(),
indexerCommand.getIndexedPaths(),
indexerCommand.getExcludedPaths(),
indexerCommand.getWorkingDirectory(),
indexerCommand.getLanguageStandard(),
indexerCommand.getSystemHeaderSearchPaths(),
indexerCommand.getFrameworkSearchhPaths(),