logic: compilationdatabase parsing

* compilationdatabase cleaned
* add SolutionparserCompliationDatabase
* added cmake_build_type_init as release for better autocomplition on linux
* external source handling for different linux versions
* clean script remove windows symbolic links only on windows
* linux external lib handling for different build easier
This commit is contained in:
Andreas Stallinger
2016-02-18 17:20:27 +01:00
parent 59232bda69
commit a8f5fd02f1
11 changed files with 265 additions and 72 deletions
@@ -0,0 +1,37 @@
#ifndef COATI_SOLUTIONPARSERCOMPILATIONDATABASE_H
#define COATI_SOLUTIONPARSERCOMPILATIONDATABASE_H
#include "utility/solution/ISolutionParser.h"
#include <memory>
#include <string>
class FilePath;
namespace clang
{
namespace tooling
{
class JSONCompilationDatabase;
}
}
class SolutionParserCompilationDatabase : public ISolutionParser
{
public:
SolutionParserCompilationDatabase();
~SolutionParserCompilationDatabase();
virtual std::string getSolutionName();
virtual std::vector<std::string> getProjects();
virtual std::vector<std::string> getProjectFiles();
virtual std::vector<std::string> getProjectItems();
virtual std::vector<std::string> getIncludePaths();
private:
std::shared_ptr<clang::tooling::JSONCompilationDatabase> m_database;
clang::tooling::JSONCompilationDatabase* getDatabase();
std::string getIncludePath(const std::string& argument, const std::string& dir);
};
#endif //COATI_SOLUTIONPARSERCOMPILATIONDATABASE_H