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