From eaf8d2692e5104258c2f5861f5e8f8dd200b18cc Mon Sep 17 00:00:00 2001 From: kh1 Date: Mon, 28 Jun 2010 11:59:36 +0200 Subject: [PATCH] Allow the user to set the version number used for the build deb package. Task-number: QTCREATORBUG-1670 Reviewed-by: ck --- .../qt-maemo/maemopackagecreationstep.cpp | 39 ++- .../qt-maemo/maemopackagecreationstep.h | 5 +- .../qt-maemo/maemopackagecreationwidget.cpp | 13 + .../qt-maemo/maemopackagecreationwidget.h | 1 + .../qt-maemo/maemopackagecreationwidget.ui | 232 +++++++++++++++++- 5 files changed, 271 insertions(+), 19 deletions(-) diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp index fdd0ad07108..53b0af71c1b 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp @@ -59,7 +59,11 @@ #include #include -namespace { const QLatin1String PackagingEnabledKey("Packaging Enabled"); } +namespace { + const QLatin1String PackagingEnabledKey("Packaging Enabled"); + const QLatin1String DefaultVersionNumber("0.0.1"); + const QLatin1String VersionNumberKey("Version Number"); +} using namespace ProjectExplorer::Constants; using ProjectExplorer::BuildConfiguration; @@ -72,7 +76,8 @@ namespace Internal { MaemoPackageCreationStep::MaemoPackageCreationStep(BuildConfiguration *buildConfig) : ProjectExplorer::BuildStep(buildConfig, CreatePackageId), m_packageContents(new MaemoPackageContents(this)), - m_packagingEnabled(true) + m_packagingEnabled(true), + m_versionString(DefaultVersionNumber) { } @@ -80,10 +85,9 @@ MaemoPackageCreationStep::MaemoPackageCreationStep(BuildConfiguration *buildConf MaemoPackageCreationStep *other) : BuildStep(buildConfig, other), m_packageContents(new MaemoPackageContents(this)), - m_packagingEnabled(other->m_packagingEnabled) - + m_packagingEnabled(other->m_packagingEnabled), + m_versionString(other->m_versionString) { - } bool MaemoPackageCreationStep::init() @@ -95,6 +99,7 @@ QVariantMap MaemoPackageCreationStep::toMap() const { QVariantMap map(ProjectExplorer::BuildStep::toMap()); map.insert(PackagingEnabledKey, m_packagingEnabled); + map.insert(VersionNumberKey, m_versionString); return map.unite(m_packageContents->toMap()); } @@ -102,6 +107,7 @@ bool MaemoPackageCreationStep::fromMap(const QVariantMap &map) { m_packageContents->fromMap(map); m_packagingEnabled = map.value(PackagingEnabledKey, true).toBool(); + m_versionString = map.value(VersionNumberKey, DefaultVersionNumber).toString(); return ProjectExplorer::BuildStep::fromMap(map); } @@ -159,9 +165,10 @@ bool MaemoPackageCreationStep::createPackage() if (!QFileInfo(buildDir + QLatin1String("/debian")).exists()) { const QString command = QLatin1String("dh_make -s -n -p ") - % executableFileName().toLower() % versionString(); + % executableFileName().toLower() % QLatin1Char('_') % versionString(); if (!runCommand(buildProc, command)) return false; + QFile rulesFile(buildDir + QLatin1String("/debian/rules")); if (!rulesFile.open(QIODevice::ReadWrite)) { raiseError(tr("Packaging Error: Cannot open file '%1'.") @@ -180,6 +187,17 @@ bool MaemoPackageCreationStep::createPackage() } } + { + QFile changeLog(buildDir + QLatin1String("/debian/changelog")); + if (changeLog.open(QIODevice::ReadWrite)) { + QString content = QString::fromUtf8(changeLog.readAll()); + content.replace(QRegExp("\\([a-zA-Z0-9_\\.]+\\)"), + QLatin1Char('(') % versionString() % QLatin1Char(')')); + changeLog.resize(0); + changeLog.write(content.toUtf8()); + } + } + if (!runCommand(buildProc, QLatin1String("dh_installdirs"))) return false; @@ -310,12 +328,17 @@ QString MaemoPackageCreationStep::packageFilePath() const { QFileInfo execInfo(localExecutableFilePath()); return execInfo.path() % QDir::separator() % execInfo.fileName().toLower() - % versionString() % QLatin1String("_armel.deb"); + % QLatin1Char('_') % versionString() % QLatin1String("_armel.deb"); } QString MaemoPackageCreationStep::versionString() const { - return QLatin1String("_0.1"); + return m_versionString; +} + +void MaemoPackageCreationStep::setVersionString(const QString &version) +{ + m_versionString = version; } QString MaemoPackageCreationStep::nativePath(const QFile &file) const diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.h b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.h index 255fb1d5cff..8a250aad430 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.h @@ -71,6 +71,9 @@ public: bool isPackagingEnabled() const { return m_packagingEnabled; } void setPackagingEnabled(bool enabled) { m_packagingEnabled = enabled; } + QString versionString() const; + void setVersionString(const QString &version); + private: MaemoPackageCreationStep(ProjectExplorer::BuildConfiguration *buildConfig, MaemoPackageCreationStep *other); @@ -90,7 +93,6 @@ private: QString targetRoot() const; QString nativePath(const QFile &file) const; bool packagingNeeded() const; - QString versionString() const; void raiseError(const QString &shortMsg, const QString &detailedMsg = QString()); @@ -98,6 +100,7 @@ private: MaemoPackageContents *const m_packageContents; bool m_packagingEnabled; + QString m_versionString; }; } // namespace Internal diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.cpp index 6306e910cec..901c746c160 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.cpp @@ -77,6 +77,12 @@ MaemoPackageCreationWidget::MaemoPackageCreationWidget(MaemoPackageCreationStep m_ui->packageContentsView->resizeColumnsToContents(); m_ui->packageContentsView->horizontalHeader()->setStretchLastSection(true); enableOrDisableRemoveButton(); + + const QStringList list = m_step->versionString().split(QLatin1Char('.'), + QString::SkipEmptyParts); + m_ui->major->setValue(list.value(0, QLatin1String("0")).toInt()); + m_ui->minor->setValue(list.value(1, QLatin1String("0")).toInt()); + m_ui->patch->setValue(list.value(2, QLatin1String("0")).toInt()); } void MaemoPackageCreationWidget::init() @@ -141,5 +147,12 @@ void MaemoPackageCreationWidget::handleSkipButtonToggled(bool checked) m_step->setPackagingEnabled(!checked); } +void MaemoPackageCreationWidget::versionInfoChanged() +{ + m_step->setVersionString(m_ui->major->text() + QLatin1Char('.') + + m_ui->minor->text() + QLatin1Char('.') + m_ui->patch->text()); + emit updateSummary(); +} + } // namespace Internal } // namespace Qt4ProjectManager diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.h b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.h index ead07fac55f..a341880517e 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.h @@ -68,6 +68,7 @@ private slots: void removeFile(); void enableOrDisableRemoveButton(); void handleSkipButtonToggled(bool checked); + void versionInfoChanged(); private: MaemoPackageCreationStep * const m_step; diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.ui b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.ui index 6d72b7433b3..3b5101e448b 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.ui +++ b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.ui @@ -6,8 +6,8 @@ 0 0 - 741 - 574 + 470 + 325 @@ -16,10 +16,7 @@ 1 - - - 6 - + @@ -30,6 +27,156 @@ + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 5 + + + + + + + + + + + 0 + 0 + + + + + 75 + true + + + + Version number: + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 13 + 13 + + + + + + + + + 0 + 0 + + + + Major: + + + + + + + + 0 + 0 + + + + 99 + + + + + + + + 0 + 0 + + + + Minor: + + + + + + + + 0 + 0 + + + + 99 + + + + + + + + 0 + 0 + + + + Patch: + + + + + + + + 0 + 0 + + + + 99 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + @@ -45,6 +192,22 @@ + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 13 + 13 + + + + @@ -139,8 +302,8 @@ addFile() - 729 - 88 + 458 + 134 732 @@ -155,8 +318,8 @@ removeFile() - 729 - 124 + 458 + 162 735 @@ -180,10 +343,59 @@ + + major + valueChanged(int) + MaemoPackageCreationWidget + versionInfoChanged() + + + 83 + 73 + + + 461 + 32 + + + + + minor + valueChanged(int) + MaemoPackageCreationWidget + versionInfoChanged() + + + 154 + 68 + + + 5 + 15 + + + + + patch + valueChanged(int) + MaemoPackageCreationWidget + versionInfoChanged() + + + 249 + 68 + + + 466 + -7 + + + addFile() removeFile() handleSkipButtonToggled(bool) + versionInfoChanged()