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)
|
static QJsonDocument readJsonFile(const FilePath &filePath)
|
||||||
{
|
{
|
||||||
qCDebug(cmakeFileApi) << "readJsonFile:" << filePath;
|
qCDebug(cmakeFileApi) << "readJsonFile:" << filePath;
|
||||||
|
QTC_ASSERT(!filePath.isEmpty(), return {});
|
||||||
|
|
||||||
QTC_CHECK(!filePath.needsDevice());
|
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)
|
bool FileApiParser::setupCMakeFileApi(const FilePath &buildDirectory, Utils::FileSystemWatcher &watcher)
|
||||||
{
|
{
|
||||||
const QDir buildDir = QDir(buildDirectory.toString());
|
// So that we have a directory to watch.
|
||||||
buildDir.mkpath(
|
buildDirectory.pathAppended(CMAKE_RELATIVE_REPLY_PATH).ensureWritableDir();
|
||||||
QString::fromLatin1(CMAKE_RELATIVE_REPLY_PATH)); // So that we have a directory to watch!
|
|
||||||
|
|
||||||
const QString relativeQueryPath = QString::fromLatin1(CMAKE_RELATIVE_QUERY_PATH);
|
FilePath queryDir = buildDirectory.pathAppended(CMAKE_RELATIVE_QUERY_PATH);
|
||||||
buildDir.mkpath(relativeQueryPath);
|
queryDir.ensureWritableDir();
|
||||||
|
|
||||||
QDir queryDir = buildDir;
|
|
||||||
queryDir.cd(relativeQueryPath);
|
|
||||||
|
|
||||||
if (!queryDir.exists()) {
|
if (!queryDir.exists()) {
|
||||||
reportFileApiSetupFailure();
|
reportFileApiSetupFailure();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
QTC_ASSERT(queryDir.exists(), );
|
QTC_ASSERT(queryDir.exists(), return false);
|
||||||
|
|
||||||
bool failedBefore = false;
|
bool failedBefore = false;
|
||||||
for (const FilePath &filePath : cmakeQueryFilePaths(buildDirectory)) {
|
for (const FilePath &filePath : cmakeQueryFilePaths(buildDirectory)) {
|
||||||
@@ -971,10 +968,9 @@ FilePath FileApiParser::scanForCMakeReplyFile(const FilePath &buildDirectory)
|
|||||||
|
|
||||||
FilePaths FileApiParser::cmakeQueryFilePaths(const FilePath &buildDirectory)
|
FilePaths FileApiParser::cmakeQueryFilePaths(const FilePath &buildDirectory)
|
||||||
{
|
{
|
||||||
QTC_CHECK(!buildDirectory.needsDevice());
|
FilePath queryDir = buildDirectory / CMAKE_RELATIVE_QUERY_PATH;
|
||||||
QDir queryDir(QDir::cleanPath(buildDirectory.pathAppended(CMAKE_RELATIVE_QUERY_PATH).path()));
|
|
||||||
return transform(CMAKE_QUERY_FILENAMES, [&queryDir](const QString &name) {
|
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/algorithm.h>
|
||||||
#include <utils/runextensions.h>
|
#include <utils/runextensions.h>
|
||||||
|
|
||||||
#include <QDateTime>
|
|
||||||
#include <QLoggingCategory>
|
#include <QLoggingCategory>
|
||||||
|
|
||||||
using namespace ProjectExplorer;
|
using namespace ProjectExplorer;
|
||||||
@@ -332,11 +331,7 @@ void FileApiReader::makeBackupConfiguration(bool store)
|
|||||||
void FileApiReader::writeConfigurationIntoBuildDirectory(const QStringList &configurationArguments)
|
void FileApiReader::writeConfigurationIntoBuildDirectory(const QStringList &configurationArguments)
|
||||||
{
|
{
|
||||||
const FilePath buildDir = m_parameters.buildDirectory;
|
const FilePath buildDir = m_parameters.buildDirectory;
|
||||||
QTC_ASSERT(buildDir.exists(), buildDir.ensureWritableDir());
|
QTC_CHECK(buildDir.ensureWritableDir());
|
||||||
if (!buildDir.exists())
|
|
||||||
buildDir.ensureWritableDir();
|
|
||||||
|
|
||||||
const FilePath settingsFile = buildDir.pathAppended("qtcsettings.cmake");
|
|
||||||
|
|
||||||
QByteArray contents;
|
QByteArray contents;
|
||||||
contents.append("# This file is managed by Qt Creator, do not edit!\n\n");
|
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')
|
.join('\n')
|
||||||
.toUtf8());
|
.toUtf8());
|
||||||
|
|
||||||
QFile file(settingsFile.toString());
|
const FilePath settingsFile = buildDir / "qtcsettings.cmake";
|
||||||
QTC_ASSERT(file.open(QFile::WriteOnly | QFile::Truncate), return );
|
QTC_CHECK(settingsFile.writeFileContents(contents));
|
||||||
file.write(contents);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileApiReader::startCMakeState(const QStringList &configurationArguments)
|
void FileApiReader::startCMakeState(const QStringList &configurationArguments)
|
||||||
|
|||||||
Reference in New Issue
Block a user