forked from qt-creator/qt-creator
Add ICore::cacheResourcePath()
We need some directory where we save the index database and the precompiled headers. This files should be persistent but the user can delete them if he wants because we will rebuild them. Task-number: QTCREATORBUG-22012 Change-Id: I9f25eb48a9992d6385a96427ef9c10bc739a3567 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -62,7 +62,9 @@ QString backendProcessPath()
|
|||||||
class ClangPchManagerPluginData
|
class ClangPchManagerPluginData
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Sqlite::Database database{Utils::PathString{Core::ICore::userResourcePath() + "/symbol-experimental-v1.db"}, 1000ms};
|
Sqlite::Database database{Utils::PathString{Core::ICore::cacheResourcePath()
|
||||||
|
+ "/symbol-experimental-v1.db"},
|
||||||
|
1000ms};
|
||||||
ClangBackEnd::RefactoringDatabaseInitializer<Sqlite::Database> databaseInitializer{database};
|
ClangBackEnd::RefactoringDatabaseInitializer<Sqlite::Database> databaseInitializer{database};
|
||||||
ClangBackEnd::FilePathCaching filePathCache{database};
|
ClangBackEnd::FilePathCaching filePathCache{database};
|
||||||
ClangPchManager::ProgressManager pchCreationProgressManager{[](QFutureInterface<void> &promise) {
|
ClangPchManager::ProgressManager pchCreationProgressManager{[](QFutureInterface<void> &promise) {
|
||||||
|
@@ -51,11 +51,11 @@ ClangPchManager::PchManagerConnectionClient::PchManagerConnectionClient(
|
|||||||
{
|
{
|
||||||
m_processCreator.setTemporaryDirectoryPattern("clangpchmanagerbackend-XXXXXX");
|
m_processCreator.setTemporaryDirectoryPattern("clangpchmanagerbackend-XXXXXX");
|
||||||
|
|
||||||
QDir pchsDirectory(Core::ICore::userResourcePath());
|
QDir pchsDirectory(Core::ICore::cacheResourcePath());
|
||||||
pchsDirectory.mkdir("pchs");
|
pchsDirectory.mkdir("pchs");
|
||||||
pchsDirectory.cd("pchs");
|
pchsDirectory.cd("pchs");
|
||||||
m_processCreator.setArguments({connectionName(),
|
m_processCreator.setArguments({connectionName(),
|
||||||
Core::ICore::userResourcePath() + "/symbol-experimental-v1.db",
|
Core::ICore::cacheResourcePath() + "/symbol-experimental-v1.db",
|
||||||
pchsDirectory.absolutePath()});
|
pchsDirectory.absolutePath()});
|
||||||
|
|
||||||
stdErrPrefixer().setPrefix("PchManagerConnectionClient.stderr: ");
|
stdErrPrefixer().setPrefix("PchManagerConnectionClient.stderr: ");
|
||||||
|
@@ -77,7 +77,9 @@ class ClangRefactoringPluginData
|
|||||||
public:
|
public:
|
||||||
using QuerySqliteReadStatementFactory = QuerySqliteStatementFactory<Sqlite::Database,
|
using QuerySqliteReadStatementFactory = QuerySqliteStatementFactory<Sqlite::Database,
|
||||||
Sqlite::ReadStatement>;
|
Sqlite::ReadStatement>;
|
||||||
Sqlite::Database database{Utils::PathString{Core::ICore::userResourcePath() + "/symbol-experimental-v1.db"}, 1000ms};
|
Sqlite::Database database{Utils::PathString{Core::ICore::cacheResourcePath()
|
||||||
|
+ "/symbol-experimental-v1.db"},
|
||||||
|
1000ms};
|
||||||
ClangBackEnd::RefactoringDatabaseInitializer<Sqlite::Database> databaseInitializer{database};
|
ClangBackEnd::RefactoringDatabaseInitializer<Sqlite::Database> databaseInitializer{database};
|
||||||
ClangBackEnd::FilePathCaching filePathCache{database};
|
ClangBackEnd::FilePathCaching filePathCache{database};
|
||||||
ClangPchManager::ProgressManager progressManager{
|
ClangPchManager::ProgressManager progressManager{
|
||||||
|
@@ -48,8 +48,8 @@ RefactoringConnectionClient::RefactoringConnectionClient(RefactoringClientInterf
|
|||||||
, m_serverProxy(client)
|
, m_serverProxy(client)
|
||||||
{
|
{
|
||||||
m_processCreator.setTemporaryDirectoryPattern("clangrefactoringbackend-XXXXXX");
|
m_processCreator.setTemporaryDirectoryPattern("clangrefactoringbackend-XXXXXX");
|
||||||
m_processCreator.setArguments({connectionName(),
|
m_processCreator.setArguments(
|
||||||
Core::ICore::userResourcePath() + "/symbol-experimental-v1.db"});
|
{connectionName(), Core::ICore::cacheResourcePath() + "/symbol-experimental-v1.db"});
|
||||||
|
|
||||||
stdErrPrefixer().setPrefix("RefactoringConnectionClient.stderr: ");
|
stdErrPrefixer().setPrefix("RefactoringConnectionClient.stderr: ");
|
||||||
stdOutPrefixer().setPrefix("RefactoringConnectionClient.stdout: ");
|
stdOutPrefixer().setPrefix("RefactoringConnectionClient.stdout: ");
|
||||||
|
@@ -35,6 +35,7 @@
|
|||||||
|
|
||||||
#include <QSysInfo>
|
#include <QSysInfo>
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
|
#include <QStandardPaths>
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\namespace Core
|
\namespace Core
|
||||||
@@ -439,6 +440,11 @@ QString ICore::userResourcePath()
|
|||||||
return urp;
|
return urp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString ICore::cacheResourcePath()
|
||||||
|
{
|
||||||
|
return QStandardPaths::writableLocation(QStandardPaths::CacheLocation);
|
||||||
|
}
|
||||||
|
|
||||||
QString ICore::installerResourcePath()
|
QString ICore::installerResourcePath()
|
||||||
{
|
{
|
||||||
return QFileInfo(settings(QSettings::SystemScope)->fileName()).path() + '/'
|
return QFileInfo(settings(QSettings::SystemScope)->fileName()).path() + '/'
|
||||||
|
@@ -94,6 +94,7 @@ public:
|
|||||||
|
|
||||||
static QString resourcePath();
|
static QString resourcePath();
|
||||||
static QString userResourcePath();
|
static QString userResourcePath();
|
||||||
|
static QString cacheResourcePath();
|
||||||
static QString installerResourcePath();
|
static QString installerResourcePath();
|
||||||
static QString libexecPath();
|
static QString libexecPath();
|
||||||
static QString clangExecutable(const QString &clangBinDirectory);
|
static QString clangExecutable(const QString &clangBinDirectory);
|
||||||
|
@@ -6,5 +6,11 @@ inline static QString userResourcePath()
|
|||||||
{
|
{
|
||||||
return QDir::tempPath();
|
return QDir::tempPath();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline static QString cacheResourcePath()
|
||||||
|
{
|
||||||
|
return QDir::tempPath();
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace ICore
|
} // namespace ICore
|
||||||
} // namespace Core
|
} // namespace Core
|
||||||
|
Reference in New Issue
Block a user