build: merge Coati app and Trial to single executable
* removed trial target * updated deploy scripts to exclude trial * cleanup CMakeLists * removed Eigen dependencies * split parser lib into lib_cxx and lib_java * added ProjectFactory and ProjectFactoryModules * removed old installer projects * updated wix installer * updated readme for wix setup * updated to use obfuscated exe * added qt.conf * added indexing dialog images * added jars * added coatidb files of sample projects * added source code of javaparser sample * removed auto-refresh image * intermediate files of windows installer are created in build folder * preselected desktop shortcut * build bat is executed from deploy_windows script
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
#include "utility/CompilationDatabase.h"
|
||||
|
||||
#include <set>
|
||||
#include "utility/utility.h"
|
||||
#include "clang/Tooling/JSONCompilationDatabase.h"
|
||||
|
||||
utility::CompilationDatabase::CompilationDatabase(std::string filename)
|
||||
: m_filename(filename)
|
||||
{
|
||||
getHeaders();
|
||||
}
|
||||
|
||||
std::vector<FilePath> utility::CompilationDatabase::getAllHeaderPaths()
|
||||
{
|
||||
std::vector<FilePath> paths = utility::concat(m_headers, m_systemHeaders);
|
||||
paths = utility::concat(paths, m_frameworkHeaders);
|
||||
paths = utility::unique(paths);
|
||||
return paths;
|
||||
}
|
||||
|
||||
std::vector<FilePath> utility::CompilationDatabase::getHeaderPaths()
|
||||
{
|
||||
return m_headers;
|
||||
}
|
||||
|
||||
std::vector<FilePath> utility::CompilationDatabase::getSystemHeaderPaths()
|
||||
{
|
||||
return m_systemHeaders;
|
||||
}
|
||||
|
||||
std::vector<FilePath> utility::CompilationDatabase::getFrameworkHeaderPaths()
|
||||
{
|
||||
return m_frameworkHeaders;
|
||||
}
|
||||
|
||||
void utility::CompilationDatabase::getHeaders()
|
||||
{
|
||||
std::string error;
|
||||
std::shared_ptr<clang::tooling::JSONCompilationDatabase> cdb = std::shared_ptr<clang::tooling::JSONCompilationDatabase>
|
||||
(clang::tooling::JSONCompilationDatabase::loadFromFile(m_filename, error));
|
||||
|
||||
std::vector<clang::tooling::CompileCommand> commands = cdb->getAllCompileCommands();
|
||||
std::set<FilePath> frameworkHeaders;
|
||||
std::set<FilePath> systemHeaders;
|
||||
std::set<FilePath> headers;
|
||||
|
||||
for (clang::tooling::CompileCommand command : commands)
|
||||
{
|
||||
for( size_t i = 0; i < command.CommandLine.size(); i++)
|
||||
{
|
||||
if( command.CommandLine[i] == "-iframework" )
|
||||
{
|
||||
frameworkHeaders.insert(FilePath(command.CommandLine[++i], command.Directory));
|
||||
}
|
||||
if( command.CommandLine[i] == "-isystem" )
|
||||
{
|
||||
systemHeaders.insert(FilePath(command.CommandLine[++i], command.Directory));
|
||||
}
|
||||
if( command.CommandLine[i].substr(0,2) == "-I" )
|
||||
{
|
||||
headers.insert(FilePath(command.CommandLine[i].substr(2), command.Directory));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
m_headers = utility::toVector(headers);
|
||||
m_frameworkHeaders = utility::toVector(frameworkHeaders);
|
||||
m_systemHeaders = utility::toVector(systemHeaders);
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
#ifndef UTILITY_COMPLIATION_DATABASE_H
|
||||
#define UTILITY_COMPLIATION_DATABASE_H
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "utility/file/FilePath.h"
|
||||
|
||||
namespace utility
|
||||
{
|
||||
class CompilationDatabase
|
||||
{
|
||||
public:
|
||||
CompilationDatabase(std::string filename);
|
||||
|
||||
std::vector<FilePath> getAllHeaderPaths();
|
||||
std::vector<FilePath> getHeaderPaths();
|
||||
std::vector<FilePath> getSystemHeaderPaths();
|
||||
std::vector<FilePath> getFrameworkHeaderPaths();
|
||||
|
||||
private:
|
||||
std::string m_filename;
|
||||
std::vector<FilePath> m_headers;
|
||||
std::vector<FilePath> m_systemHeaders;
|
||||
std::vector<FilePath> m_frameworkHeaders;
|
||||
|
||||
void getHeaders();
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // UTILITY_COMPLIATION_DATABASE_H
|
||||
Reference in New Issue
Block a user