diff --git a/src/libs/clangsupport/clangcodemodelconnectionclient.cpp b/src/libs/clangsupport/clangcodemodelconnectionclient.cpp index 88421eb6139a5074d32eb3cfbe8e743498f3c128..7fc4395dfefaa8d8f3254ce5fcd59655f804a0c6 100644 --- a/src/libs/clangsupport/clangcodemodelconnectionclient.cpp +++ b/src/libs/clangsupport/clangcodemodelconnectionclient.cpp @@ -49,6 +49,7 @@ ClangCodeModelConnectionClient::ClangCodeModelConnectionClient( m_client(client) { m_processCreator.setTemporaryDirectoryPattern("clangbackend-XXXXXX"); + m_processCreator.setArguments({connectionName()}); stdErrPrefixer().setPrefix("clangbackend.stderr: "); stdOutPrefixer().setPrefix("clangbackend.stdout: "); diff --git a/src/libs/clangsupport/connectionclient.cpp b/src/libs/clangsupport/connectionclient.cpp index 487b754fdb45b854c88f96a0a243482dca094da3..2d7a3ee45262bf1e90bfcf03cca4bcb5e3dc43f4 100644 --- a/src/libs/clangsupport/connectionclient.cpp +++ b/src/libs/clangsupport/connectionclient.cpp @@ -41,7 +41,6 @@ namespace ClangBackEnd { ConnectionClient::ConnectionClient(const QString &connectionName) : m_connectionName(connectionName) { - m_processCreator.setArguments({connectionName}); m_processCreator.setObserver(this); listenForConnections(); diff --git a/src/plugins/clangpchmanager/pchmanagerconnectionclient.cpp b/src/plugins/clangpchmanager/pchmanagerconnectionclient.cpp index bb41391645e3388f1dcbf60d1282729264ae8858..41c17b04549928aa53ddcb1303975103977568a3 100644 --- a/src/plugins/clangpchmanager/pchmanagerconnectionclient.cpp +++ b/src/plugins/clangpchmanager/pchmanagerconnectionclient.cpp @@ -25,6 +25,8 @@ #include "pchmanagerconnectionclient.h" +#include + #include #include @@ -48,6 +50,8 @@ ClangPchManager::PchManagerConnectionClient::PchManagerConnectionClient( m_serverProxy(client, ioDevice()) { m_processCreator.setTemporaryDirectoryPattern("clangpchmanagerbackend-XXXXXX"); + m_processCreator.setArguments({connectionName(), + Core::ICore::userResourcePath() + "/symbol-experimental-v1.db"}); stdErrPrefixer().setPrefix("PchManagerConnectionClient.stderr: "); stdOutPrefixer().setPrefix("PchManagerConnectionClient.stdout: "); diff --git a/src/plugins/clangrefactoring/clangrefactoringplugin.cpp b/src/plugins/clangrefactoring/clangrefactoringplugin.cpp index c2071510c4a6ba55e9f76ae2290b237c1b720b6f..17138f0cd9fbf3018687c3a74f94c3ec2afb9aea 100644 --- a/src/plugins/clangrefactoring/clangrefactoringplugin.cpp +++ b/src/plugins/clangrefactoring/clangrefactoringplugin.cpp @@ -70,7 +70,7 @@ public: using QuerySqliteReadStatementFactory = QuerySqliteStatementFactory; - Sqlite::Database database{Utils::PathString{QDir::tempPath() + "/symbol.db"}}; + Sqlite::Database database{Utils::PathString{Core::ICore::userResourcePath() + "/symbol-experimental-v1.db"}}; ClangBackEnd::RefactoringDatabaseInitializer databaseInitializer{database}; ClangBackEnd::FilePathCaching filePathCache{database}; RefactoringClient refactoringClient; diff --git a/src/plugins/clangrefactoring/refactoringconnectionclient.cpp b/src/plugins/clangrefactoring/refactoringconnectionclient.cpp index 36d864352faa11b1c4dd277ca3805d46a92bea4b..aacbb9810fc5dffa09336205d61c9a5ad81bb43e 100644 --- a/src/plugins/clangrefactoring/refactoringconnectionclient.cpp +++ b/src/plugins/clangrefactoring/refactoringconnectionclient.cpp @@ -25,6 +25,8 @@ #include "refactoringconnectionclient.h" +#include + #include #include @@ -47,6 +49,8 @@ RefactoringConnectionClient::RefactoringConnectionClient(RefactoringClientInterf m_serverProxy(client, nullptr) { m_processCreator.setTemporaryDirectoryPattern("clangrefactoringbackend-XXXXXX"); + m_processCreator.setArguments({connectionName(), + Core::ICore::userResourcePath() + "/symbol-experimental-v1.db"}); stdErrPrefixer().setPrefix("RefactoringConnectionClient.stderr: "); stdOutPrefixer().setPrefix("RefactoringConnectionClient.stdout: "); diff --git a/src/tools/clangpchmanagerbackend/clangpchmanagerbackendmain.cpp b/src/tools/clangpchmanagerbackend/clangpchmanagerbackendmain.cpp index c143daf662e03f89d16a82f277232ebdd99ae7b7..939cbebe4e48da6c14d0ef47b9aea9770f184baf 100644 --- a/src/tools/clangpchmanagerbackend/clangpchmanagerbackendmain.cpp +++ b/src/tools/clangpchmanagerbackend/clangpchmanagerbackendmain.cpp @@ -35,6 +35,8 @@ #include #include +#include + #include #include #include @@ -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 databaseInitializer{database}; ClangBackEnd::FilePathCaching filePathCache{database}; ClangPathWatcher includeWatcher(filePathCache); diff --git a/src/tools/clangrefactoringbackend/clangrefactoringbackendmain.cpp b/src/tools/clangrefactoringbackend/clangrefactoringbackendmain.cpp index e09b892bea7b3bbe7c6c131ef0db1d314af0aa69..70fce2aa2d306a4fd59a66e0e3e43e8c2376b6c2 100644 --- a/src/tools/clangrefactoringbackend/clangrefactoringbackendmain.cpp +++ b/src/tools/clangrefactoringbackend/clangrefactoringbackendmain.cpp @@ -42,7 +42,7 @@ using ClangBackEnd::RefactoringDatabaseInitializer; using ClangBackEnd::ConnectionServer; using ClangBackEnd::SymbolIndexing; -QString processArguments(QCoreApplication &application) +QStringList processArguments(QCoreApplication &application) { QCommandLineParser parser; parser.setApplicationDescription(QStringLiteral("Qt Creator Clang Refactoring Backend")); @@ -55,7 +55,7 @@ QString processArguments(QCoreApplication &application) if (parser.positionalArguments().isEmpty()) parser.showHelp(1); - return parser.positionalArguments().first(); + return parser.positionalArguments(); } int main(int argc, char *argv[]) @@ -69,16 +69,18 @@ try { QCoreApplication application(argc, argv); - const QString connection = 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}}; RefactoringDatabaseInitializer databaseInitializer{database}; FilePathCaching filePathCache{database}; SymbolIndexing symbolIndexing{database, filePathCache}; RefactoringServer clangCodeModelServer{symbolIndexing, filePathCache}; ConnectionServer connectionServer; connectionServer.setServer(&clangCodeModelServer); - connectionServer.start(connection); + connectionServer.start(connectionName); return application.exec();