CMake: Fall back to reading CMakeCache.txt

Allows the user to select cache settings even if configuring failed.

Change-Id: I821c28f386e0c249b4c4d9c6561a377cb48b3f2d
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
Marcus Tillmanns
2023-12-14 15:15:58 +01:00
parent 16b40c5bb6
commit 690d6a6c8f
3 changed files with 9 additions and 1 deletions

View File

@@ -838,6 +838,7 @@ static QStringList uniqueTargetFiles(const Configuration &config)
FileApiData FileApiParser::parseData(QPromise<std::shared_ptr<FileApiQtcData>> &promise,
const FilePath &replyFilePath,
const Utils::FilePath &buildDir,
const QString &cmakeBuildType,
QString &errorMessage)
{
@@ -857,7 +858,11 @@ FileApiData FileApiParser::parseData(QPromise<std::shared_ptr<FileApiQtcData>> &
result.replyFile = readReplyFile(replyFilePath, errorMessage);
if (cancelCheck())
return {};
result.cache = readCacheFile(result.replyFile.jsonFile("cache", replyDir), errorMessage);
const FilePath cachePathFromReply = result.replyFile.jsonFile("cache", replyDir);
if (cachePathFromReply.isEmpty())
result.cache = CMakeConfig::fromFile(buildDir / "CMakeCache.txt", &errorMessage);
else
result.cache = readCacheFile(cachePathFromReply, errorMessage);
if (cancelCheck())
return {};
result.cmakeFiles = readCMakeFilesFile(result.replyFile.jsonFile("cmakeFiles", replyDir),