From aef629ece1f0896ab50946dcacb02b151ffe95f4 Mon Sep 17 00:00:00 2001 From: Uwe Date: Sun, 4 Dec 2022 19:45:46 -0300 Subject: [PATCH] [Build] output point release version - to Splashscreen, About, MainWindow and Console --- src/App/Application.cpp | 14 +++++++++++--- src/App/ApplicationPy.cpp | 3 +++ src/App/Metadata.cpp | 7 +++++-- src/Gui/Application.cpp | 3 ++- src/Gui/MainWindow.cpp | 3 ++- src/Gui/Splashscreen.cpp | 6 ++++-- 6 files changed, 27 insertions(+), 9 deletions(-) diff --git a/src/App/Application.cpp b/src/App/Application.cpp index fdbac649a5..1a5517d34e 100644 --- a/src/App/Application.cpp +++ b/src/App/Application.cpp @@ -2455,10 +2455,14 @@ void Application::initConfig(int argc, char ** argv) // We only set these keys if not yet defined. Therefore it suffices to search // only for 'BuildVersionMajor'. if (App::Application::Config().find("BuildVersionMajor") == App::Application::Config().end()) { - std::stringstream str; str << FCVersionMajor << "." << FCVersionMinor; + std::stringstream str; + str << FCVersionMajor + << "." << FCVersionMinor + << "." << FCVersionPoint; App::Application::Config()["ExeVersion" ] = str.str(); App::Application::Config()["BuildVersionMajor" ] = FCVersionMajor; App::Application::Config()["BuildVersionMinor" ] = FCVersionMinor; + App::Application::Config()["BuildVersionPoint" ] = FCVersionPoint; App::Application::Config()["BuildRevision" ] = FCRevision; App::Application::Config()["BuildRepositoryURL" ] = FCRepositoryURL; App::Application::Config()["BuildRevisionDate" ] = FCRevisionDate; @@ -2538,17 +2542,21 @@ void Application::initConfig(int argc, char ** argv) // Remove banner if FreeCAD is invoked via the -c command as regular // Python interpreter if (!(mConfig["Verbose"] == "Strict")) - Base::Console().Message("%s %s, Libs: %s.%sR%s\n%s",mConfig["ExeName"].c_str(), + Base::Console().Message("%s %s, Libs: %s.%s.%sR%s\n%s", + mConfig["ExeName"].c_str(), mConfig["ExeVersion"].c_str(), mConfig["BuildVersionMajor"].c_str(), mConfig["BuildVersionMinor"].c_str(), + mConfig["BuildVersionPoint"].c_str(), mConfig["BuildRevision"].c_str(), mConfig["CopyrightInfo"].c_str()); else - Base::Console().Message("%s %s, Libs: %s.%sB%s\n",mConfig["ExeName"].c_str(), + Base::Console().Message("%s %s, Libs: %s.%s.%sR%s\n", + mConfig["ExeName"].c_str(), mConfig["ExeVersion"].c_str(), mConfig["BuildVersionMajor"].c_str(), mConfig["BuildVersionMinor"].c_str(), + mConfig["BuildVersionPoint"].c_str(), mConfig["BuildRevision"].c_str()); } LoadParameters(); diff --git a/src/App/ApplicationPy.cpp b/src/App/ApplicationPy.cpp index 63d449b5af..77b1f981f0 100644 --- a/src/App/ApplicationPy.cpp +++ b/src/App/ApplicationPy.cpp @@ -469,6 +469,9 @@ PyObject* Application::sGetVersion(PyObject * /*self*/, PyObject *args) it = cfg.find("BuildVersionMinor"); list.append(Py::String(it != cfg.end() ? it->second : "")); + it = cfg.find("BuildVersionPoint"); + list.append(Py::String(it != cfg.end() ? it->second : "")); + it = cfg.find("BuildRevision"); list.append(Py::String(it != cfg.end() ? it->second : "")); diff --git a/src/App/Metadata.cpp b/src/App/Metadata.cpp index 2d900baeb6..8c575ed788 100644 --- a/src/App/Metadata.cpp +++ b/src/App/Metadata.cpp @@ -459,6 +459,7 @@ bool Metadata::satisfies(const Meta::Dependency &dep) std::map &config = App::Application::Config(); replacements.insert(std::make_pair("$BuildVersionMajor", config["BuildVersionMajor"])); replacements.insert(std::make_pair("$BuildVersionMinor", config["BuildVersionMinor"])); + replacements.insert(std::make_pair("$BuildVersionMinor", config["BuildVersionPoint"])); replacements.insert(std::make_pair("$BuildRevision", config["BuildRevision"])); for (const auto &replacement : replacements) { auto pos = injectedString.find(replacement.first); @@ -497,8 +498,10 @@ bool Metadata::supportsCurrentFreeCAD() const if (fcVersion == Meta::Version()) { std::map &config = App::Application::Config(); std::stringstream ss; - ss << config["BuildVersionMajor"] << "." << config["BuildVersionMinor"] << "." - << (config["BuildRevision"].empty() ? "0" : config["BuildRevision"]); + ss << config["BuildVersionMajor"] + << "." << config["BuildVersionMinor"] + << "." << config["BuildVersionPoint"] + << "." << (config["BuildRevision"].empty() ? "0" : config["BuildRevision"]); fcVersion = Meta::Version(ss.str()); } diff --git a/src/Gui/Application.cpp b/src/Gui/Application.cpp index fbc9083e71..bbcd71eab6 100644 --- a/src/Gui/Application.cpp +++ b/src/Gui/Application.cpp @@ -2024,7 +2024,8 @@ void Application::runApplication() std::map& config = App::Application::Config(); QString major = QString::fromLatin1(config["BuildVersionMajor"].c_str()); QString minor = QString::fromLatin1(config["BuildVersionMinor"].c_str()); - QString title = QString::fromLatin1("%1 %2.%3").arg(mainApp.applicationName(), major, minor); + QString point = QString::fromLatin1(config["BuildVersionPoint"].c_str()); + QString title = QString::fromLatin1("%1 %2.%3.%4").arg(mainApp.applicationName(), major, minor, point); mw.setWindowTitle(title); } else { mw.setWindowTitle(mainApp.applicationName()); diff --git a/src/Gui/MainWindow.cpp b/src/Gui/MainWindow.cpp index 6d2d59be25..6eb4a37cd8 100644 --- a/src/Gui/MainWindow.cpp +++ b/src/Gui/MainWindow.cpp @@ -1587,7 +1587,8 @@ QPixmap MainWindow::splashImage() const QString title = qApp->applicationName(); QString major = QString::fromLatin1(App::Application::Config()["BuildVersionMajor"].c_str()); QString minor = QString::fromLatin1(App::Application::Config()["BuildVersionMinor"].c_str()); - QString version = QString::fromLatin1("%1.%2").arg(major, minor); + QString point = QString::fromLatin1(App::Application::Config()["BuildVersionPoint"].c_str()); + QString version = QString::fromLatin1("%1.%2.%3").arg(major, minor, point); QString position, fontFamily; std::map::const_iterator te = App::Application::Config().find("SplashInfoExeName"); diff --git a/src/Gui/Splashscreen.cpp b/src/Gui/Splashscreen.cpp index 3e982a4bac..cd09d2b701 100644 --- a/src/Gui/Splashscreen.cpp +++ b/src/Gui/Splashscreen.cpp @@ -314,6 +314,7 @@ void AboutDialog::setupLabels() banner = banner.left( banner.indexOf(QLatin1Char('\n')) ); QString major = QString::fromLatin1(config["BuildVersionMajor"].c_str()); QString minor = QString::fromLatin1(config["BuildVersionMinor"].c_str()); + QString point = QString::fromLatin1(config["BuildVersionPoint"].c_str()); QString build = QString::fromLatin1(config["BuildRevision"].c_str()); QString disda = QString::fromLatin1(config["BuildRevisionDate"].c_str()); QString mturl = QString::fromLatin1(config["MaintainerUrl"].c_str()); @@ -332,7 +333,7 @@ void AboutDialog::setupLabels() } QString version = ui->labelBuildVersion->text(); - version.replace(QString::fromLatin1("Unknown"), QString::fromLatin1("%1.%2").arg(major, minor)); + version.replace(QString::fromLatin1("Unknown"), QString::fromLatin1("%1.%2.%3").arg(major, minor, point)); ui->labelBuildVersion->setText(version); QString revision = ui->labelBuildRevision->text(); @@ -725,6 +726,7 @@ void AboutDialog::on_copyButton_clicked() QString major = QString::fromLatin1(config["BuildVersionMajor"].c_str()); QString minor = QString::fromLatin1(config["BuildVersionMinor"].c_str()); + QString point = QString::fromLatin1(config["BuildVersionPoint"].c_str()); QString build = QString::fromLatin1(config["BuildRevision"].c_str()); QString deskEnv = QProcessEnvironment::systemEnvironment().value(QStringLiteral("XDG_CURRENT_DESKTOP"), QString()); @@ -741,7 +743,7 @@ void AboutDialog::on_copyButton_clicked() str << "[code]\n"; str << "OS: " << QSysInfo::prettyProductName() << deskInfo << '\n'; str << "Word size of " << exe << ": " << QSysInfo::WordSize << "-bit\n"; - str << "Version: " << major << "." << minor << "." << build; + str << "Version: " << major << "." << minor << "." << point << "." << build; char *appimage = getenv("APPIMAGE"); if (appimage) str << " AppImage";