forked from qt-creator/qt-creator
Clang: Store the database in user resources
We used temporary directories but this can be different paths. Task-number: QTCREATORBUG-19372 Change-Id: Id6ac18e6eecdc5bb354bda3741e16cb87c552ba6 Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
@@ -35,6 +35,8 @@
|
||||
#include <refactoringdatabaseinitializer.h>
|
||||
#include <sqlitedatabase.h>
|
||||
|
||||
#include <coreplugin/icore.h>
|
||||
|
||||
#include <QCommandLineParser>
|
||||
#include <QCoreApplication>
|
||||
#include <QFileSystemWatcher>
|
||||
@@ -76,20 +78,21 @@ private:
|
||||
QTemporaryDir temporaryDirectory;
|
||||
};
|
||||
|
||||
QString processArguments(QCoreApplication &application)
|
||||
QStringList processArguments(QCoreApplication &application)
|
||||
{
|
||||
QCommandLineParser parser;
|
||||
parser.setApplicationDescription(QStringLiteral("Qt Creator Clang PchManager Backend"));
|
||||
parser.addHelpOption();
|
||||
parser.addVersionOption();
|
||||
parser.addPositionalArgument(QStringLiteral("connection"), QStringLiteral("Connection"));
|
||||
parser.addPositionalArgument(QStringLiteral("databasepath"), QStringLiteral("Database path"));
|
||||
|
||||
parser.process(application);
|
||||
|
||||
if (parser.positionalArguments().isEmpty())
|
||||
parser.showHelp(1);
|
||||
|
||||
return parser.positionalArguments().first();
|
||||
return parser.positionalArguments();
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
@@ -103,9 +106,11 @@ int main(int argc, char *argv[])
|
||||
|
||||
QCoreApplication application(argc, argv);
|
||||
|
||||
const QString connectionName = processArguments(application);
|
||||
const QStringList arguments = processArguments(application);
|
||||
const QString connectionName = arguments[0];
|
||||
const QString databasePath = arguments[1];
|
||||
|
||||
Sqlite::Database database{Utils::PathString{QDir::tempPath() + "/symbol.db"}};
|
||||
Sqlite::Database database{Utils::PathString{databasePath}};
|
||||
ClangBackEnd::RefactoringDatabaseInitializer<Sqlite::Database> databaseInitializer{database};
|
||||
ClangBackEnd::FilePathCaching filePathCache{database};
|
||||
ClangPathWatcher<QFileSystemWatcher, QTimer> includeWatcher(filePathCache);
|
||||
|
||||
Reference in New Issue
Block a user