From 6346835740f0e0b5f926adf7e8b3238e75229369 Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Thu, 22 Oct 2015 16:55:17 +0200 Subject: [PATCH] BuildInfo: Add BuildConfiguration::BuildType Remove QbsBuildInfo, which only adds the same information over the normal BuildInfo. Change QmakeBuildInfo to use the buildType as provided by its base class. Change-Id: Iddb86487c85893988f78bbfaf549823a19f13b5b Reviewed-by: Alessandro Portale Reviewed-by: Tobias Hunger --- src/plugins/projectexplorer/buildinfo.h | 9 ++++ .../qbsbuildconfiguration.cpp | 14 +++-- src/plugins/qbsprojectmanager/qbsbuildinfo.h | 53 ------------------- .../qbsprojectmanager/qbsprojectmanager.pro | 1 - .../qbsprojectmanager/qbsprojectmanager.qbs | 1 - .../qmakebuildconfiguration.cpp | 4 +- .../qmakeprojectmanager/qmakebuildinfo.h | 7 +-- .../qmakeprojectimporter.cpp | 4 +- 8 files changed, 20 insertions(+), 73 deletions(-) delete mode 100644 src/plugins/qbsprojectmanager/qbsbuildinfo.h diff --git a/src/plugins/projectexplorer/buildinfo.h b/src/plugins/projectexplorer/buildinfo.h index 8175a0b5a19..6d9d959d58c 100644 --- a/src/plugins/projectexplorer/buildinfo.h +++ b/src/plugins/projectexplorer/buildinfo.h @@ -33,6 +33,7 @@ #include "projectexplorer_export.h" +#include "buildconfiguration.h" #include "task.h" #include @@ -54,6 +55,14 @@ public: QString typeName; Utils::FileName buildDirectory; Core::Id kitId; + BuildConfiguration::BuildType buildType = BuildConfiguration::Unknown; + + bool operator==(const BuildInfo &o) + { + return displayName == o.displayName && typeName == o.typeName + && buildDirectory == o.buildDirectory && kitId == o.kitId + && buildType == o.buildType; + } virtual QList reportIssues(const QString &projectPath, const QString &buildDir) const diff --git a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp index 18e8f07ade3..493b5d7ca63 100644 --- a/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp +++ b/src/plugins/qbsprojectmanager/qbsbuildconfiguration.cpp @@ -31,7 +31,6 @@ #include "qbsbuildconfiguration.h" #include "qbsbuildconfigurationwidget.h" -#include "qbsbuildinfo.h" #include "qbsbuildstep.h" #include "qbscleanstep.h" #include "qbsinstallstep.h" @@ -41,6 +40,7 @@ #include #include #include +#include #include #include #include @@ -374,10 +374,10 @@ bool QbsBuildConfigurationFactory::canHandle(const Target *t) const BuildInfo *QbsBuildConfigurationFactory::createBuildInfo(const Kit *k, BuildConfiguration::BuildType type) const { - QbsBuildInfo *info = new QbsBuildInfo(this); + auto info = new ProjectExplorer::BuildInfo(this); info->typeName = tr("Build"); info->kitId = k->id(); - info->type = type; + info->buildType = type; return info; } @@ -441,13 +441,11 @@ BuildConfiguration *QbsBuildConfigurationFactory::create(Target *parent, const B QTC_ASSERT(info->kitId == parent->kit()->id(), return 0); QTC_ASSERT(!info->displayName.isEmpty(), return 0); - const QbsBuildInfo *qbsInfo = static_cast(info); - QVariantMap configData; configData.insert(QLatin1String(Constants::QBS_CONFIG_VARIANT_KEY), - (qbsInfo->type == BuildConfiguration::Debug) - ? QLatin1String(Constants::QBS_VARIANT_DEBUG) - : QLatin1String(Constants::QBS_VARIANT_RELEASE)); + (info->buildType == BuildConfiguration::Debug) + ? QLatin1String(Constants::QBS_VARIANT_DEBUG) + : QLatin1String(Constants::QBS_VARIANT_RELEASE)); Utils::FileName buildDir = info->buildDirectory; if (buildDir.isEmpty()) diff --git a/src/plugins/qbsprojectmanager/qbsbuildinfo.h b/src/plugins/qbsprojectmanager/qbsbuildinfo.h deleted file mode 100644 index 5d0544ec15e..00000000000 --- a/src/plugins/qbsprojectmanager/qbsbuildinfo.h +++ /dev/null @@ -1,53 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms and -** conditions see http://www.qt.io/terms-conditions. For further information -** use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 or version 3 as published by the Free -** Software Foundation and appearing in the file LICENSE.LGPLv21 and -** LICENSE.LGPLv3 included in the packaging of this file. Please review the -** following information to ensure the GNU Lesser General Public License -** requirements will be met: https://www.gnu.org/licenses/lgpl.html and -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, The Qt Company gives you certain additional -** rights. These rights are described in The Qt Company LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -****************************************************************************/ - -#ifndef QBSBUILDINFO_H -#define QBSBUILDINFO_H - -#include "qbsbuildconfiguration.h" - -#include -#include - -namespace QbsProjectManager { -namespace Internal { - -class QbsBuildInfo : public ProjectExplorer::BuildInfo -{ -public: - QbsBuildInfo(const QbsBuildConfigurationFactory *f) : ProjectExplorer::BuildInfo(f) { } - - ProjectExplorer::BuildConfiguration::BuildType type; -}; - -} // namespace Internal -} // namespace QbsProjectManager - -#endif // QBSBUILDINFO_H diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanager.pro b/src/plugins/qbsprojectmanager/qbsprojectmanager.pro index ea5b7fee5d9..9a905b529a3 100644 --- a/src/plugins/qbsprojectmanager/qbsprojectmanager.pro +++ b/src/plugins/qbsprojectmanager/qbsprojectmanager.pro @@ -23,7 +23,6 @@ HEADERS = \ propertyprovider.h \ qbsbuildconfiguration.h \ qbsbuildconfigurationwidget.h \ - qbsbuildinfo.h \ qbsbuildstep.h \ qbscleanstep.h \ qbsdeployconfigurationfactory.h \ diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanager.qbs b/src/plugins/qbsprojectmanager/qbsprojectmanager.qbs index c22178c1fd8..cc353dd9d04 100644 --- a/src/plugins/qbsprojectmanager/qbsprojectmanager.qbs +++ b/src/plugins/qbsprojectmanager/qbsprojectmanager.qbs @@ -68,7 +68,6 @@ QtcPlugin { "qbsbuildconfiguration.h", "qbsbuildconfigurationwidget.cpp", "qbsbuildconfigurationwidget.h", - "qbsbuildinfo.h", "qbsbuildstep.cpp", "qbsbuildstep.h", "qbsbuildstepconfigwidget.ui", diff --git a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp index b3bf4e43c3d..aec20304076 100644 --- a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp +++ b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp @@ -599,7 +599,7 @@ QmakeBuildInfo *QmakeBuildConfigurationFactory::createBuildInfo(const Kit *k, } else { info->buildDirectory = defaultBuildDirectory(projectPath, k, suffix); } - info->type = type; + info->buildType = type; return info; } @@ -654,7 +654,7 @@ void QmakeBuildConfigurationFactory::configureBuildConfiguration(Target *parent, BaseQtVersion *version = QtSupport::QtKitInformation::qtVersion(parent->kit()); BaseQtVersion::QmakeBuildConfigs config = version->defaultBuildConfig(); - if (qmakeInfo->type == BuildConfiguration::Debug) + if (qmakeInfo->buildType == BuildConfiguration::Debug) config |= QtSupport::BaseQtVersion::DebugBuild; else config &= ~QtSupport::BaseQtVersion::DebugBuild; diff --git a/src/plugins/qmakeprojectmanager/qmakebuildinfo.h b/src/plugins/qmakeprojectmanager/qmakebuildinfo.h index fd5debe8feb..b342893ffce 100644 --- a/src/plugins/qmakeprojectmanager/qmakebuildinfo.h +++ b/src/plugins/qmakeprojectmanager/qmakebuildinfo.h @@ -46,17 +46,12 @@ class QmakeBuildInfo : public ProjectExplorer::BuildInfo public: QmakeBuildInfo(const QmakeBuildConfigurationFactory *f) : ProjectExplorer::BuildInfo(f) { } - ProjectExplorer::BuildConfiguration::BuildType type = ProjectExplorer::BuildConfiguration::Unknown; QString additionalArguments; QString makefile; QMakeStepConfig config; bool operator==(const QmakeBuildInfo &o) { - return displayName == o.displayName - && typeName == o.typeName - && buildDirectory == o.buildDirectory - && kitId == o.kitId - && type == o.type + return ProjectExplorer::BuildInfo::operator==(o) && additionalArguments == o.additionalArguments && config == o.config; } diff --git a/src/plugins/qmakeprojectmanager/qmakeprojectimporter.cpp b/src/plugins/qmakeprojectmanager/qmakeprojectimporter.cpp index f818655811c..8639f80e342 100644 --- a/src/plugins/qmakeprojectmanager/qmakeprojectimporter.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeprojectimporter.cpp @@ -220,10 +220,10 @@ QList QmakeProjectImporter::import(const FileName &importPath, bool QmakeBuildInfo *info = new QmakeBuildInfo(factory); BaseQtVersion::QmakeBuildConfigs buildConfig = parse.effectiveBuildConfig(version->defaultBuildConfig()); if (buildConfig & BaseQtVersion::DebugBuild) { - info->type = BuildConfiguration::Debug; + info->buildType = BuildConfiguration::Debug; info->displayName = QCoreApplication::translate("QmakeProjectManager::Internal::QmakeProjectImporter", "Debug"); } else { - info->type = BuildConfiguration::Release; + info->buildType = BuildConfiguration::Release; info->displayName = QCoreApplication::translate("QmakeProjectManager::Internal::QmakeProjectImporter", "Release"); } info->kitId = k->id();