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();
|
QString cmakeBuildType = buildConfiguration()->aspect<BuildTypeAspect>()->value();
|
||||||
|
|
||||||
const Utils::FilePath cmakeCacheTxt = buildConfiguration()->buildDirectory().pathAppended("CMakeCache.txt");
|
const Utils::FilePath cmakeCacheTxt = buildConfiguration()->buildDirectory().pathAppended("CMakeCache.txt");
|
||||||
const bool hasCMakeCache = QFile::exists(cmakeCacheTxt.toString());
|
const bool hasCMakeCache = cmakeCacheTxt.exists();
|
||||||
CMakeConfig config;
|
CMakeConfig config;
|
||||||
|
|
||||||
if (cmakeBuildType == "Unknown") {
|
if (cmakeBuildType == "Unknown") {
|
||||||
@@ -1673,7 +1673,7 @@ QString CMakeBuildSystem::cmakeBuildType() const
|
|||||||
// that doesn't have the "CMake.Build.Type" aspect saved
|
// that doesn't have the "CMake.Build.Type" aspect saved
|
||||||
if (hasCMakeCache) {
|
if (hasCMakeCache) {
|
||||||
QString errorMessage;
|
QString errorMessage;
|
||||||
config = CMakeBuildSystem::parseCMakeCacheDotTxt(cmakeCacheTxt, &errorMessage);
|
config = CMakeConfig::fromFile(cmakeCacheTxt, &errorMessage);
|
||||||
} else {
|
} else {
|
||||||
config = initialCMakeConfiguration();
|
config = initialCMakeConfiguration();
|
||||||
}
|
}
|
||||||
|
@@ -830,14 +830,14 @@ void CMakeBuildSystem::wireUpConnections()
|
|||||||
qCDebug(cmakeBuildSystemLog) << "Requesting parse due to build directory change";
|
qCDebug(cmakeBuildSystemLog) << "Requesting parse due to build directory change";
|
||||||
const BuildDirParameters parameters(this);
|
const BuildDirParameters parameters(this);
|
||||||
const FilePath cmakeCacheTxt = parameters.buildDirectory.pathAppended("CMakeCache.txt");
|
const FilePath cmakeCacheTxt = parameters.buildDirectory.pathAppended("CMakeCache.txt");
|
||||||
const bool hasCMakeCache = QFile::exists(cmakeCacheTxt.toString());
|
const bool hasCMakeCache = cmakeCacheTxt.exists();
|
||||||
const auto options = ReparseParameters(
|
const auto options = ReparseParameters(
|
||||||
hasCMakeCache
|
hasCMakeCache
|
||||||
? REPARSE_DEFAULT
|
? REPARSE_DEFAULT
|
||||||
: (REPARSE_FORCE_INITIAL_CONFIGURATION | REPARSE_FORCE_CMAKE_RUN));
|
: (REPARSE_FORCE_INITIAL_CONFIGURATION | REPARSE_FORCE_CMAKE_RUN));
|
||||||
if (hasCMakeCache) {
|
if (hasCMakeCache) {
|
||||||
QString errorMessage;
|
QString errorMessage;
|
||||||
const CMakeConfig config = CMakeBuildSystem::parseCMakeCacheDotTxt(cmakeCacheTxt, &errorMessage);
|
const CMakeConfig config = CMakeConfig::fromFile(cmakeCacheTxt, &errorMessage);
|
||||||
if (!config.isEmpty() && errorMessage.isEmpty()) {
|
if (!config.isEmpty() && errorMessage.isEmpty()) {
|
||||||
QString cmakeBuildTypeName = config.stringValueOf("CMAKE_BUILD_TYPE");
|
QString cmakeBuildTypeName = config.stringValueOf("CMAKE_BUILD_TYPE");
|
||||||
setCMakeBuildType(cmakeBuildTypeName, true);
|
setCMakeBuildType(cmakeBuildTypeName, true);
|
||||||
@@ -1039,20 +1039,6 @@ const QList<CMakeBuildTarget> &CMakeBuildSystem::buildTargets() const
|
|||||||
return m_buildTargets;
|
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)
|
bool CMakeBuildSystem::filteredOutTarget(const CMakeBuildTarget &target)
|
||||||
{
|
{
|
||||||
return target.title.endsWith("_autogen") ||
|
return target.title.endsWith("_autogen") ||
|
||||||
|
@@ -98,10 +98,6 @@ public:
|
|||||||
Utils::CommandLine commandLineForTests(const QList<QString> &tests,
|
Utils::CommandLine commandLineForTests(const QList<QString> &tests,
|
||||||
const QStringList &options) const final;
|
const QStringList &options) const final;
|
||||||
|
|
||||||
// Generic CMake helper functions:
|
|
||||||
static CMakeConfig parseCMakeCacheDotTxt(const Utils::FilePath &cacheFile,
|
|
||||||
QString *errorMessage);
|
|
||||||
|
|
||||||
static bool filteredOutTarget(const CMakeBuildTarget &target);
|
static bool filteredOutTarget(const CMakeBuildTarget &target);
|
||||||
|
|
||||||
bool isMultiConfig() const;
|
bool isMultiConfig() const;
|
||||||
|
@@ -413,7 +413,6 @@ CMakeConfig CMakeConfig::fromFile(const Utils::FilePath &cacheFile, QString *err
|
|||||||
Utils::sort(result, &CMakeConfigItem::less);
|
Utils::sort(result, &CMakeConfigItem::less);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QString CMakeConfigItem::toString(const Utils::MacroExpander *expander) const
|
QString CMakeConfigItem::toString(const Utils::MacroExpander *expander) const
|
||||||
|
@@ -304,7 +304,7 @@ QList<void *> CMakeProjectImporter::examineDirectory(const FilePath &importPath,
|
|||||||
}
|
}
|
||||||
|
|
||||||
QString errorMessage;
|
QString errorMessage;
|
||||||
const CMakeConfig config = CMakeBuildSystem::parseCMakeCacheDotTxt(cacheFile, &errorMessage);
|
const CMakeConfig config = CMakeConfig::fromFile(cacheFile, &errorMessage);
|
||||||
if (config.isEmpty() || !errorMessage.isEmpty()) {
|
if (config.isEmpty() || !errorMessage.isEmpty()) {
|
||||||
qCDebug(cmInputLog) << "Failed to read configuration from" << cacheFile << errorMessage;
|
qCDebug(cmInputLog) << "Failed to read configuration from" << cacheFile << errorMessage;
|
||||||
return { };
|
return { };
|
||||||
|
Reference in New Issue
Block a user