forked from qt-creator/qt-creator
Clang: Handle generated files
We don't handled generated files so we got internal parse errors. Change-Id: If75e202f93fe3f71f43e3b1d15c0fb77e20c2248 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
@@ -58,10 +58,11 @@ void ClangTool::addFile(std::string &&directory,
|
||||
sourceFilePaths.push_back(fileContent.filePath);
|
||||
}
|
||||
|
||||
void ClangTool::addFiles(const Utils::SmallStringVector &filePaths,
|
||||
template <typename Container>
|
||||
void ClangTool::addFiles(const Container &filePaths,
|
||||
const Utils::SmallStringVector &arguments)
|
||||
{
|
||||
for (const Utils::SmallString &filePath : filePaths) {
|
||||
for (const typename Container::value_type &filePath : filePaths) {
|
||||
auto found = std::find(filePath.rbegin(), filePath.rend(), '/');
|
||||
|
||||
auto fileNameBegin = found.base();
|
||||
@@ -76,6 +77,13 @@ void ClangTool::addFiles(const Utils::SmallStringVector &filePaths,
|
||||
}
|
||||
}
|
||||
|
||||
template
|
||||
void ClangTool::addFiles<Utils::SmallStringVector>(const Utils::SmallStringVector &filePaths,
|
||||
const Utils::SmallStringVector &arguments);
|
||||
template
|
||||
void ClangTool::addFiles<Utils::PathStringVector>(const Utils::PathStringVector &filePaths,
|
||||
const Utils::SmallStringVector &arguments);
|
||||
|
||||
namespace {
|
||||
Utils::SmallString toNativeFilePath(const FilePath &filePath)
|
||||
{
|
||||
@@ -87,13 +95,13 @@ Utils::SmallString toNativeFilePath(const FilePath &filePath)
|
||||
}
|
||||
}
|
||||
|
||||
void ClangTool::addUnsavedFiles(std::vector<V2::FileContainer> &&unsavedFiles)
|
||||
void ClangTool::addUnsavedFiles(const V2::FileContainers &unsavedFiles)
|
||||
{
|
||||
unsavedFileContents.reserve(unsavedFileContents.size() + unsavedFiles.size());
|
||||
|
||||
auto convertToUnsavedFileContent = [] (V2::FileContainer &unsavedFile) {
|
||||
auto convertToUnsavedFileContent = [] (const V2::FileContainer &unsavedFile) {
|
||||
return UnsavedFileContent{toNativeFilePath(unsavedFile.filePath()),
|
||||
unsavedFile.takeUnsavedFileContent()};
|
||||
unsavedFile.unsavedFileContent().clone()};
|
||||
};
|
||||
|
||||
std::transform(unsavedFiles.begin(),
|
||||
|
||||
@@ -94,10 +94,12 @@ public:
|
||||
std::string &&fileName,
|
||||
std::string &&content,
|
||||
std::vector<std::string> &&commandLine);
|
||||
void addFiles(const Utils::SmallStringVector &filePaths,
|
||||
|
||||
template <typename Container>
|
||||
void addFiles(const Container &filePaths,
|
||||
const Utils::SmallStringVector &arguments);
|
||||
|
||||
void addUnsavedFiles(std::vector<V2::FileContainer> &&unsavedFiles);
|
||||
void addUnsavedFiles(const V2::FileContainers &unsavedFiles);
|
||||
|
||||
clang::tooling::ClangTool createTool() const;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user