forked from qt-creator/qt-creator
CMake: Replace parseCMakeCacheDotTxt() function
... by direct use of CMakeConfig::fromFile(). It was only duplicating checks that are done on the user side already. Change-Id: Iaf5e89c924c2b0a9080db9fe160970bbf6e33154 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
@@ -1665,7 +1665,7 @@ QString CMakeBuildSystem::cmakeBuildType() const
|
||||
QString cmakeBuildType = buildConfiguration()->aspect<BuildTypeAspect>()->value();
|
||||
|
||||
const Utils::FilePath cmakeCacheTxt = buildConfiguration()->buildDirectory().pathAppended("CMakeCache.txt");
|
||||
const bool hasCMakeCache = QFile::exists(cmakeCacheTxt.toString());
|
||||
const bool hasCMakeCache = cmakeCacheTxt.exists();
|
||||
CMakeConfig config;
|
||||
|
||||
if (cmakeBuildType == "Unknown") {
|
||||
@@ -1673,7 +1673,7 @@ QString CMakeBuildSystem::cmakeBuildType() const
|
||||
// that doesn't have the "CMake.Build.Type" aspect saved
|
||||
if (hasCMakeCache) {
|
||||
QString errorMessage;
|
||||
config = CMakeBuildSystem::parseCMakeCacheDotTxt(cmakeCacheTxt, &errorMessage);
|
||||
config = CMakeConfig::fromFile(cmakeCacheTxt, &errorMessage);
|
||||
} else {
|
||||
config = initialCMakeConfiguration();
|
||||
}
|
||||
|
@@ -830,14 +830,14 @@ void CMakeBuildSystem::wireUpConnections()
|
||||
qCDebug(cmakeBuildSystemLog) << "Requesting parse due to build directory change";
|
||||
const BuildDirParameters parameters(this);
|
||||
const FilePath cmakeCacheTxt = parameters.buildDirectory.pathAppended("CMakeCache.txt");
|
||||
const bool hasCMakeCache = QFile::exists(cmakeCacheTxt.toString());
|
||||
const bool hasCMakeCache = cmakeCacheTxt.exists();
|
||||
const auto options = ReparseParameters(
|
||||
hasCMakeCache
|
||||
? REPARSE_DEFAULT
|
||||
: (REPARSE_FORCE_INITIAL_CONFIGURATION | REPARSE_FORCE_CMAKE_RUN));
|
||||
if (hasCMakeCache) {
|
||||
QString errorMessage;
|
||||
const CMakeConfig config = CMakeBuildSystem::parseCMakeCacheDotTxt(cmakeCacheTxt, &errorMessage);
|
||||
const CMakeConfig config = CMakeConfig::fromFile(cmakeCacheTxt, &errorMessage);
|
||||
if (!config.isEmpty() && errorMessage.isEmpty()) {
|
||||
QString cmakeBuildTypeName = config.stringValueOf("CMAKE_BUILD_TYPE");
|
||||
setCMakeBuildType(cmakeBuildTypeName, true);
|
||||
@@ -1039,20 +1039,6 @@ const QList<CMakeBuildTarget> &CMakeBuildSystem::buildTargets() const
|
||||
return m_buildTargets;
|
||||
}
|
||||
|
||||
CMakeConfig CMakeBuildSystem::parseCMakeCacheDotTxt(const Utils::FilePath &cacheFile,
|
||||
QString *errorMessage)
|
||||
{
|
||||
if (!cacheFile.exists()) {
|
||||
if (errorMessage)
|
||||
*errorMessage = tr("CMakeCache.txt file not found.");
|
||||
return {};
|
||||
}
|
||||
CMakeConfig result = CMakeConfig::fromFile(cacheFile, errorMessage);
|
||||
if (!errorMessage->isEmpty())
|
||||
return {};
|
||||
return result;
|
||||
}
|
||||
|
||||
bool CMakeBuildSystem::filteredOutTarget(const CMakeBuildTarget &target)
|
||||
{
|
||||
return target.title.endsWith("_autogen") ||
|
||||
|
@@ -98,10 +98,6 @@ public:
|
||||
Utils::CommandLine commandLineForTests(const QList<QString> &tests,
|
||||
const QStringList &options) const final;
|
||||
|
||||
// Generic CMake helper functions:
|
||||
static CMakeConfig parseCMakeCacheDotTxt(const Utils::FilePath &cacheFile,
|
||||
QString *errorMessage);
|
||||
|
||||
static bool filteredOutTarget(const CMakeBuildTarget &target);
|
||||
|
||||
bool isMultiConfig() const;
|
||||
|
@@ -413,7 +413,6 @@ CMakeConfig CMakeConfig::fromFile(const Utils::FilePath &cacheFile, QString *err
|
||||
Utils::sort(result, &CMakeConfigItem::less);
|
||||
|
||||
return result;
|
||||
|
||||
}
|
||||
|
||||
QString CMakeConfigItem::toString(const Utils::MacroExpander *expander) const
|
||||
|
@@ -304,7 +304,7 @@ QList<void *> CMakeProjectImporter::examineDirectory(const FilePath &importPath,
|
||||
}
|
||||
|
||||
QString errorMessage;
|
||||
const CMakeConfig config = CMakeBuildSystem::parseCMakeCacheDotTxt(cacheFile, &errorMessage);
|
||||
const CMakeConfig config = CMakeConfig::fromFile(cacheFile, &errorMessage);
|
||||
if (config.isEmpty() || !errorMessage.isEmpty()) {
|
||||
qCDebug(cmInputLog) << "Failed to read configuration from" << cacheFile << errorMessage;
|
||||
return { };
|
||||
|
Reference in New Issue
Block a user