forked from qt-creator/qt-creator
CMake: Use FilePath in FileApi{Reader,Parser}
Helps docker. Change-Id: I2e1eba61be983340260211bbee6c1bab8a59f883 Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
@@ -94,6 +94,7 @@ static std::pair<QString, QString> nameValue(const QJsonObject &obj)
|
||||
static QJsonDocument readJsonFile(const FilePath &filePath)
|
||||
{
|
||||
qCDebug(cmakeFileApi) << "readJsonFile:" << filePath;
|
||||
QTC_ASSERT(!filePath.isEmpty(), return {});
|
||||
|
||||
QTC_CHECK(!filePath.needsDevice());
|
||||
|
||||
@@ -824,21 +825,17 @@ FilePath FileApiDetails::ReplyFileContents::jsonFile(const QString &kind, const
|
||||
|
||||
bool FileApiParser::setupCMakeFileApi(const FilePath &buildDirectory, Utils::FileSystemWatcher &watcher)
|
||||
{
|
||||
const QDir buildDir = QDir(buildDirectory.toString());
|
||||
buildDir.mkpath(
|
||||
QString::fromLatin1(CMAKE_RELATIVE_REPLY_PATH)); // So that we have a directory to watch!
|
||||
// So that we have a directory to watch.
|
||||
buildDirectory.pathAppended(CMAKE_RELATIVE_REPLY_PATH).ensureWritableDir();
|
||||
|
||||
const QString relativeQueryPath = QString::fromLatin1(CMAKE_RELATIVE_QUERY_PATH);
|
||||
buildDir.mkpath(relativeQueryPath);
|
||||
|
||||
QDir queryDir = buildDir;
|
||||
queryDir.cd(relativeQueryPath);
|
||||
FilePath queryDir = buildDirectory.pathAppended(CMAKE_RELATIVE_QUERY_PATH);
|
||||
queryDir.ensureWritableDir();
|
||||
|
||||
if (!queryDir.exists()) {
|
||||
reportFileApiSetupFailure();
|
||||
return false;
|
||||
}
|
||||
QTC_ASSERT(queryDir.exists(), );
|
||||
QTC_ASSERT(queryDir.exists(), return false);
|
||||
|
||||
bool failedBefore = false;
|
||||
for (const FilePath &filePath : cmakeQueryFilePaths(buildDirectory)) {
|
||||
@@ -971,10 +968,9 @@ FilePath FileApiParser::scanForCMakeReplyFile(const FilePath &buildDirectory)
|
||||
|
||||
FilePaths FileApiParser::cmakeQueryFilePaths(const FilePath &buildDirectory)
|
||||
{
|
||||
QTC_CHECK(!buildDirectory.needsDevice());
|
||||
QDir queryDir(QDir::cleanPath(buildDirectory.pathAppended(CMAKE_RELATIVE_QUERY_PATH).path()));
|
||||
FilePath queryDir = buildDirectory / CMAKE_RELATIVE_QUERY_PATH;
|
||||
return transform(CMAKE_QUERY_FILENAMES, [&queryDir](const QString &name) {
|
||||
return FilePath::fromString(queryDir.absoluteFilePath(name));
|
||||
return queryDir.absoluteFilePath(FilePath::fromString(name));
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -36,7 +36,6 @@
|
||||
#include <utils/algorithm.h>
|
||||
#include <utils/runextensions.h>
|
||||
|
||||
#include <QDateTime>
|
||||
#include <QLoggingCategory>
|
||||
|
||||
using namespace ProjectExplorer;
|
||||
@@ -332,11 +331,7 @@ void FileApiReader::makeBackupConfiguration(bool store)
|
||||
void FileApiReader::writeConfigurationIntoBuildDirectory(const QStringList &configurationArguments)
|
||||
{
|
||||
const FilePath buildDir = m_parameters.buildDirectory;
|
||||
QTC_ASSERT(buildDir.exists(), buildDir.ensureWritableDir());
|
||||
if (!buildDir.exists())
|
||||
buildDir.ensureWritableDir();
|
||||
|
||||
const FilePath settingsFile = buildDir.pathAppended("qtcsettings.cmake");
|
||||
QTC_CHECK(buildDir.ensureWritableDir());
|
||||
|
||||
QByteArray contents;
|
||||
contents.append("# This file is managed by Qt Creator, do not edit!\n\n");
|
||||
@@ -348,9 +343,8 @@ void FileApiReader::writeConfigurationIntoBuildDirectory(const QStringList &conf
|
||||
.join('\n')
|
||||
.toUtf8());
|
||||
|
||||
QFile file(settingsFile.toString());
|
||||
QTC_ASSERT(file.open(QFile::WriteOnly | QFile::Truncate), return );
|
||||
file.write(contents);
|
||||
const FilePath settingsFile = buildDir / "qtcsettings.cmake";
|
||||
QTC_CHECK(settingsFile.writeFileContents(contents));
|
||||
}
|
||||
|
||||
void FileApiReader::startCMakeState(const QStringList &configurationArguments)
|
||||
|
||||
Reference in New Issue
Block a user