CppTools: Allow to limit the files to process by file size

...with the environment variable QTC_CPP_FILE_SIZE_LIMIT_MB.

Task-number: QTCREATORBUG-14390
Change-Id: Iaefaa1a3db023b58f9351b96e1b9e2139797e280
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
This commit is contained in:
Nikolai Kosjar
2015-05-12 14:20:32 +02:00
parent f52170737e
commit 1960503ae9
4 changed files with 65 additions and 3 deletions

View File

@@ -38,6 +38,7 @@
#include <cplusplus/LookupContext.h>
#include <utils/qtcassert.h>
#include <QDebug>
#include <QSet>
#include <QStringRef>
#include <QTextCursor>
@@ -250,4 +251,33 @@ TextEditor::TextEditorWidget::Link linkToSymbol(Symbol *symbol)
return Link(filename, line, column);
}
int fileSizeLimit()
{
static const QByteArray fileSizeLimitAsByteArray = qgetenv("QTC_CPP_FILE_SIZE_LIMIT_MB");
static int fileSizeLimitAsInt = -1;
if (fileSizeLimitAsInt == -1) {
bool ok;
const int limit = fileSizeLimitAsByteArray.toInt(&ok);
fileSizeLimitAsInt = ok && limit >= 0 ? limit : 0;
}
return fileSizeLimitAsInt;
}
bool skipFileDueToSizeLimit(const QFileInfo &fileInfo, int limitInMB)
{
if (limitInMB == 0) // unlimited
return false;
const int fileSizeInMB = fileInfo.size() * 1000 * 1000;
if (fileSizeInMB > limitInMB) {
qWarning() << "Files to process limited by QTC_CPP_FILE_SIZE_LIMIT_MB, skipping"
<< fileInfo.absoluteFilePath();
return true;
}
return false;
}
} // CppTools