diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2019-12-09 18:52:46 +0100 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2019-12-10 13:07:52 +0100 |
commit | f807de3be0017fe460f68241fb2dad6d89926234 (patch) | |
tree | ae118d0d23891c4883ebf9fde2826b07ef17294b /src/qml/jsruntime/qv4executablecompilationunit.cpp | |
parent | 2fd6d810e3fd94c8e5a8cffb584957675ab105ce (diff) |
Allow custom disk cache paths
Fixes: QTBUG-58858
Change-Id: I973a4b9f3ca618bda1943ff3fd0f8c9343b8f57d
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/qml/jsruntime/qv4executablecompilationunit.cpp')
-rw-r--r-- | src/qml/jsruntime/qv4executablecompilationunit.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/qml/jsruntime/qv4executablecompilationunit.cpp b/src/qml/jsruntime/qv4executablecompilationunit.cpp index 9c7609ee8d..569f736e75 100644 --- a/src/qml/jsruntime/qv4executablecompilationunit.cpp +++ b/src/qml/jsruntime/qv4executablecompilationunit.cpp @@ -94,11 +94,15 @@ ExecutableCompilationUnit::~ExecutableCompilationUnit() QString ExecutableCompilationUnit::localCacheFilePath(const QUrl &url) { + static const QByteArray envCachePath = qgetenv("QML_DISK_CACHE_PATH"); + const QString localSourcePath = QQmlFile::urlToLocalFileOrQrc(url); const QString cacheFileSuffix = QFileInfo(localSourcePath + QLatin1Char('c')).completeSuffix(); QCryptographicHash fileNameHash(QCryptographicHash::Sha1); fileNameHash.addData(localSourcePath.toUtf8()); - QString directory = QStandardPaths::writableLocation(QStandardPaths::CacheLocation) + QLatin1String("/qmlcache/"); + QString directory = envCachePath.isEmpty() + ? QStandardPaths::writableLocation(QStandardPaths::CacheLocation) + QLatin1String("/qmlcache/") + : QString::fromLocal8Bit(envCachePath) + QLatin1String("/"); QDir::root().mkpath(directory); return directory + QString::fromUtf8(fileNameHash.result().toHex()) + QLatin1Char('.') + cacheFileSuffix; } |