forked from qt-creator/qt-creator
Qmake: Use FilePath in QtVersion::reportIssues
Change-Id: Ia848248525238c316d6f6f120d915b9bdb28b8fe Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -643,8 +643,8 @@ BuildConfigurationFactory::~BuildConfigurationFactory()
|
||||
g_buildConfigurationFactories.removeOne(this);
|
||||
}
|
||||
|
||||
const Tasks BuildConfigurationFactory::reportIssues(ProjectExplorer::Kit *kit, const QString &projectPath,
|
||||
const QString &buildDir) const
|
||||
const Tasks BuildConfigurationFactory::reportIssues(Kit *kit, const FilePath &projectPath,
|
||||
const FilePath &buildDir) const
|
||||
{
|
||||
if (m_issueReporter)
|
||||
return m_issueReporter(kit, projectPath, buildDir);
|
||||
|
@@ -155,10 +155,12 @@ public:
|
||||
static BuildConfigurationFactory *find(const Kit *k, const Utils::FilePath &projectPath);
|
||||
static BuildConfigurationFactory *find(Target *parent);
|
||||
|
||||
using IssueReporter = std::function<Tasks(Kit *, const QString &, const QString &)>;
|
||||
using IssueReporter
|
||||
= std::function<Tasks(Kit *, const Utils::FilePath &, const Utils::FilePath &)>;
|
||||
void setIssueReporter(const IssueReporter &issueReporter);
|
||||
const Tasks reportIssues(ProjectExplorer::Kit *kit,
|
||||
const QString &projectPath, const QString &buildDir) const;
|
||||
const Utils::FilePath &projectPath,
|
||||
const Utils::FilePath &buildDir) const;
|
||||
|
||||
protected:
|
||||
using BuildGenerator
|
||||
|
@@ -340,10 +340,9 @@ QPair<Task::TaskType, QString> TargetSetupWidget::findIssues(const BuildInfo &in
|
||||
if (m_projectPath.isEmpty() || !info.factory)
|
||||
return {Task::Unknown, {}};
|
||||
|
||||
QString buildDir = info.buildDirectory.toString();
|
||||
Tasks issues;
|
||||
if (info.factory)
|
||||
issues = info.factory->reportIssues(m_kit, m_projectPath.toString(), buildDir);
|
||||
issues = info.factory->reportIssues(m_kit, m_projectPath, info.buildDirectory);
|
||||
|
||||
QString text;
|
||||
Task::TaskType highestType = Task::Unknown;
|
||||
|
@@ -324,10 +324,9 @@ QbsBuildConfigurationFactory::QbsBuildConfigurationFactory()
|
||||
registerBuildConfiguration<QbsBuildConfiguration>(Constants::QBS_BC_ID);
|
||||
setSupportedProjectType(Constants::PROJECT_ID);
|
||||
setSupportedProjectMimeTypeName(Constants::MIME_TYPE);
|
||||
setIssueReporter([](Kit *k, const QString &projectPath, const QString &buildDir) -> Tasks {
|
||||
setIssueReporter([](Kit *k, const FilePath &projectPath, const FilePath &buildDir) -> Tasks {
|
||||
const QtSupport::QtVersion * const version = QtSupport::QtKitAspect::qtVersion(k);
|
||||
return version ? version->reportIssues(projectPath, buildDir)
|
||||
: Tasks();
|
||||
return version ? version->reportIssues(projectPath, buildDir) : Tasks();
|
||||
});
|
||||
|
||||
setBuildGenerator([this](const Kit *k, const FilePath &projectPath, bool forSetup) {
|
||||
|
@@ -226,7 +226,6 @@ void QmakeBuildConfiguration::kitChanged()
|
||||
void QmakeBuildConfiguration::updateProblemLabel()
|
||||
{
|
||||
ProjectExplorer::Kit * const k = kit();
|
||||
const QString proFileName = project()->projectFilePath().toString();
|
||||
|
||||
// Check for Qt version:
|
||||
QtSupport::QtVersion *version = QtSupport::QtKitAspect::qtVersion(k);
|
||||
@@ -274,7 +273,7 @@ void QmakeBuildConfiguration::updateProblemLabel()
|
||||
|
||||
if (allGood) {
|
||||
const Tasks issues = Utils::sorted(
|
||||
version->reportIssues(proFileName, buildDirectory().toString()));
|
||||
version->reportIssues(project()->projectFilePath(), buildDirectory()));
|
||||
if (!issues.isEmpty()) {
|
||||
QString text = QLatin1String("<nobr>");
|
||||
for (const ProjectExplorer::Task &task : issues) {
|
||||
@@ -376,16 +375,15 @@ QString QmakeBuildConfiguration::unalignedBuildDirWarning()
|
||||
return Tr::tr("The build directory should be at the same level as the source directory.");
|
||||
}
|
||||
|
||||
bool QmakeBuildConfiguration::isBuildDirAtSafeLocation(const QString &sourceDir,
|
||||
const QString &buildDir)
|
||||
bool QmakeBuildConfiguration::isBuildDirAtSafeLocation(const FilePath &sourceDir,
|
||||
const FilePath &buildDir)
|
||||
{
|
||||
return buildDir.count('/') == sourceDir.count('/');
|
||||
return buildDir.path().count('/') == sourceDir.path().count('/');
|
||||
}
|
||||
|
||||
bool QmakeBuildConfiguration::isBuildDirAtSafeLocation() const
|
||||
{
|
||||
return isBuildDirAtSafeLocation(project()->projectDirectory().toString(),
|
||||
buildDirectory().toString());
|
||||
return isBuildDirAtSafeLocation(project()->projectDirectory(), buildDirectory());
|
||||
}
|
||||
|
||||
TriState QmakeBuildConfiguration::separateDebugInfo() const
|
||||
@@ -749,14 +747,14 @@ QmakeBuildConfigurationFactory::QmakeBuildConfigurationFactory()
|
||||
registerBuildConfiguration<QmakeBuildConfiguration>(Constants::QMAKE_BC_ID);
|
||||
setSupportedProjectType(Constants::QMAKEPROJECT_ID);
|
||||
setSupportedProjectMimeTypeName(Constants::PROFILE_MIMETYPE);
|
||||
setIssueReporter([](Kit *k, const QString &projectPath, const QString &buildDir) {
|
||||
setIssueReporter([](Kit *k, const FilePath &projectPath, const FilePath &buildDir) {
|
||||
QtSupport::QtVersion *version = QtSupport::QtKitAspect::qtVersion(k);
|
||||
Tasks issues;
|
||||
if (version)
|
||||
issues << version->reportIssues(projectPath, buildDir);
|
||||
if (QmakeSettings::warnAgainstUnalignedBuildDir()
|
||||
&& !QmakeBuildConfiguration::isBuildDirAtSafeLocation(
|
||||
QFileInfo(projectPath).absoluteDir().path(), QDir(buildDir).absolutePath())) {
|
||||
projectPath.absolutePath(), buildDir.absoluteFilePath())) {
|
||||
issues.append(BuildSystemTask(Task::Warning,
|
||||
QmakeBuildConfiguration::unalignedBuildDirWarning()));
|
||||
}
|
||||
|
@@ -72,7 +72,8 @@ public:
|
||||
void addToEnvironment(Utils::Environment &env) const override;
|
||||
|
||||
static QString unalignedBuildDirWarning();
|
||||
static bool isBuildDirAtSafeLocation(const QString &sourceDir, const QString &buildDir);
|
||||
static bool isBuildDirAtSafeLocation(const Utils::FilePath &sourceDir,
|
||||
const Utils::FilePath &buildDir);
|
||||
bool isBuildDirAtSafeLocation() const;
|
||||
|
||||
Utils::TriState separateDebugInfo() const;
|
||||
|
@@ -240,10 +240,8 @@ bool QMakeStep::init()
|
||||
if (qmakeBc->subNodeBuild())
|
||||
node = qmakeBc->subNodeBuild();
|
||||
QTC_ASSERT(node, return false);
|
||||
QString proFile = node->filePath().toString();
|
||||
|
||||
const Tasks tasks = Utils::sorted(
|
||||
qtVersion->reportIssues(proFile, workingDirectory.toString()));
|
||||
const Tasks tasks = Utils::sorted(qtVersion->reportIssues(node->filePath(), workingDirectory));
|
||||
if (!tasks.isEmpty()) {
|
||||
bool canContinue = true;
|
||||
for (const Task &t : tasks) {
|
||||
|
@@ -1637,7 +1637,7 @@ bool QtVersion::hasQmlDumpWithRelocatableFlag() const
|
||||
|| qtVersion() >= QVersionNumber(5, 1, 0));
|
||||
}
|
||||
|
||||
Tasks QtVersion::reportIssuesImpl(const QString &proFile, const QString &buildDir) const
|
||||
Tasks QtVersion::reportIssuesImpl(const FilePath &proFile, const FilePath &buildDir) const
|
||||
{
|
||||
Q_UNUSED(proFile)
|
||||
Q_UNUSED(buildDir)
|
||||
@@ -1665,7 +1665,7 @@ bool QtVersion::supportsMultipleQtAbis() const
|
||||
return false;
|
||||
}
|
||||
|
||||
Tasks QtVersion::reportIssues(const QString &proFile, const QString &buildDir) const
|
||||
Tasks QtVersion::reportIssues(const FilePath &proFile, const FilePath &buildDir) const
|
||||
{
|
||||
return Utils::sorted(reportIssuesImpl(proFile, buildDir));
|
||||
}
|
||||
|
@@ -131,7 +131,7 @@ public:
|
||||
/// Check a .pro-file/Qt version combination on possible issues
|
||||
/// @return a list of tasks, ordered on severity (errors first, then
|
||||
/// warnings and finally info items.
|
||||
ProjectExplorer::Tasks reportIssues(const QString &proFile, const QString &buildDir) const;
|
||||
ProjectExplorer::Tasks reportIssues(const Utils::FilePath &proFile, const Utils::FilePath &buildDir) const;
|
||||
|
||||
static bool isQmlDebuggingSupported(const ProjectExplorer::Kit *k, QString *reason = nullptr);
|
||||
bool isQmlDebuggingSupported(QString *reason = nullptr) const;
|
||||
@@ -198,7 +198,8 @@ protected:
|
||||
QtVersion(const QtVersion &other) = delete;
|
||||
|
||||
virtual QSet<Utils::Id> availableFeatures() const;
|
||||
virtual ProjectExplorer::Tasks reportIssuesImpl(const QString &proFile, const QString &buildDir) const;
|
||||
virtual ProjectExplorer::Tasks reportIssuesImpl(const Utils::FilePath &proFile,
|
||||
const Utils::FilePath &buildDir) const;
|
||||
|
||||
virtual ProjectExplorer::Abis detectQtAbis() const;
|
||||
|
||||
|
Reference in New Issue
Block a user