From d379f1413346c026703a6191fdeda7b5aea31ce8 Mon Sep 17 00:00:00 2001 From: Roland Winklmeier Date: Thu, 31 Mar 2016 17:12:01 +0200 Subject: [PATCH] Introduce build config template buildconfig.h.in refs #625 --- mkspecs/features/common_pre.prf | 12 +- mkspecs/features/config.pri | 65 ++++-- mkspecs/features/defines.pri | 21 -- mkspecs/features/vatsim.pri | 4 + src/blackcore/airspacemonitor.cpp | 1 - src/blackcore/application.cpp | 34 ++-- src/blackcore/contextsimulator.h | 4 +- src/blackcore/data/globalsetup.cpp | 4 +- src/blackcore/data/updateinfo.cpp | 10 +- src/blackcore/databasewriter.cpp | 1 - src/blackcore/networkvatlib.cpp | 20 +- src/blackcore/setupreader.cpp | 4 +- src/blackcore/webdataservices.h | 1 - .../components/datainfoareacomponent.cpp | 7 +- .../components/dbdebugdatabasesetup.cpp | 1 - .../components/infobarstatuscomponent.cpp | 4 +- src/blackgui/components/logincomponent.cpp | 3 +- .../settingsnetworkserverscomponent.cpp | 4 +- src/blackgui/guiapplication.cpp | 8 +- src/blackgui/guiutility.cpp | 1 - src/blackgui/views/atcstationview.cpp | 3 +- src/blackgui/views/atcstationview.h | 1 - src/blackgui/views/simulatedaircraftview.cpp | 4 +- src/blackgui/views/viewbase.cpp | 4 +- src/blackmisc/audio/audioutils.cpp | 4 +- src/blackmisc/blackmisc.pro | 6 +- src/blackmisc/blackmiscexport.h | 12 -- .../{project.cpp => buildconfig.cpp} | 189 +++++++----------- src/blackmisc/{project.h => buildconfig.h.in} | 109 ++++++---- src/blackmisc/fileutils.cpp | 4 +- src/blackmisc/fileutils.h | 1 + src/blackmisc/icons.cpp | 4 +- .../simulation/fscommon/fscommonutil.cpp | 6 +- .../simulation/fsx/fsxsimulatorsetup.cpp | 4 +- src/blackmisc/simulation/simulatorinfo.cpp | 8 +- src/plugins/simulator/fs9/simulatorfs9.cpp | 2 - src/plugins/simulator/fsx/simulatorfsx.cpp | 1 - .../simulator/fsx/simulatorfsxfactory.cpp | 1 - src/swiftcore/swiftcore.cpp | 1 - src/swiftdata/main.cpp | 1 - src/swiftdata/swiftdata.cpp | 1 - src/swiftdata/swiftdatamenus.cpp | 4 +- src/swiftguistandard/swiftguistdinit.cpp | 4 +- src/swiftlauncher/main.cpp | 1 - src/swiftlauncher/swiftlauncher.cpp | 12 +- 45 files changed, 279 insertions(+), 317 deletions(-) delete mode 100644 mkspecs/features/defines.pri create mode 100644 mkspecs/features/vatsim.pri rename src/blackmisc/{project.cpp => buildconfig.cpp} (70%) rename src/blackmisc/{project.h => buildconfig.h.in} (64%) diff --git a/mkspecs/features/common_pre.prf b/mkspecs/features/common_pre.prf index aef08a06b..61d088895 100644 --- a/mkspecs/features/common_pre.prf +++ b/mkspecs/features/common_pre.prf @@ -98,12 +98,6 @@ linux-g++: QMAKE_LFLAGS_DEBUG *= -rdynamic include(warnings.pri) -################################ -# Preprocessor defines -################################ - -include(defines.pri) - ################################ # Path to external dependencies ################################ @@ -139,6 +133,12 @@ win32: LIBS *= -luser32 INCLUDEPATH *= $$EXTERNALDIR/common/include +################################ +# Includes +################################ + +INCLUDEPATH *= $$BuildRoot/src + ################################ # Platform extensions ################################ diff --git a/mkspecs/features/config.pri b/mkspecs/features/config.pri index 588e52277..9fc004c95 100644 --- a/mkspecs/features/config.pri +++ b/mkspecs/features/config.pri @@ -1,18 +1,47 @@ -BLACK_CONFIG += BlackCore -BLACK_CONFIG += BlackGui -BLACK_CONFIG += BlackSound -BLACK_CONFIG += BlackInput -BLACK_CONFIG += Samples -BLACK_CONFIG += Unittests -BLACK_CONFIG += SwiftData -BLACK_CONFIG += SwiftCore -BLACK_CONFIG += SwiftGui -BLACK_CONFIG += SwiftLauncher -BLACK_CONFIG += FS9 -BLACK_CONFIG += FSX -BLACK_CONFIG += XPlane -BLACK_CONFIG += ProfileRelease -BLACK_CONFIG += AssertsInRelease -BLACK_CONFIG += PackageInstaller -#BLACK_CONFIG += Static -BLACK_CONFIG += Doxygen +## Public Area ## + +BLACK_CONFIG *= BlackCore +BLACK_CONFIG *= BlackGui +BLACK_CONFIG *= BlackSound +BLACK_CONFIG *= BlackInput +BLACK_CONFIG *= Samples +BLACK_CONFIG *= Unittests +BLACK_CONFIG *= SwiftData +BLACK_CONFIG *= SwiftCore +BLACK_CONFIG *= SwiftGui +BLACK_CONFIG *= SwiftLauncher +BLACK_CONFIG *= FS9 +BLACK_CONFIG *= FSX +BLACK_CONFIG *= XPlane +BLACK_CONFIG *= ProfileRelease +BLACK_CONFIG *= AssertsInRelease +BLACK_CONFIG *= PackageInstaller +#BLACK_CONFIG *= Static +BLACK_CONFIG *= Doxygen +#BLACK_CONFIG *= SwiftBeta +#BLACK_CONFIG *= SwiftShipped + +isEmpty(BLACK_EOL): BLACK_EOL = "20170101" + +## Private Area ## + +# include vatsim client id and key +include(vatsim.pri) + +# Header based compiler macros +!contains(BLACK_CONFIG, BlackSound) { DEFINE_WITH_BLACKSOUND = "//" } +!contains(BLACK_CONFIG, BlackInput) { DEFINE_WITH_BLACKINPUT = "//" } +!contains(BLACK_CONFIG, BlackCore) { DEFINE_WITH_BLACKCORE = "//" } +!contains(BLACK_CONFIG, BlackGui) { DEFINE_WITH_BLACKGUI = "//" } +!contains(BLACK_CONFIG, SwiftData) { DEFINE_WITH_SWIFTDATA = "//" } +!contains(BLACK_CONFIG, SwiftGui) { DEFINE_WITH_SWIFTGUI = "//" } +!contains(BLACK_CONFIG, SwiftCore) { DEFINE_WITH_SWIFTCORE = "//" } +!contains(BLACK_CONFIG, FSX) { DEFINE_WITH_FSX = "//" } +!contains(BLACK_CONFIG, FS9) { DEFINE_WITH_FS9 = "//" } +!contains(BLACK_CONFIG, XPlane) { DEFINE_WITH_XPLANE = "//" } +!contains(BLACK_CONFIG, SwiftBeta) { DEFINE_SWIFT_BETA = "//" } +!contains(BLACK_CONFIG, SwiftShipped) { DEFINE_SWIFT_SHIPPED = "//" } + +# Global compiler Macros +contains(BLACK_CONFIG, Static) { DEFINES *= WITH_STATIC } +contains(BLACK_CONFIG, AssertsInRelease) { DEFINES *= QT_FORCE_ASSERTS } diff --git a/mkspecs/features/defines.pri b/mkspecs/features/defines.pri deleted file mode 100644 index 7f79e26ba..000000000 --- a/mkspecs/features/defines.pri +++ /dev/null @@ -1,21 +0,0 @@ -# some global compile options -# DEFINES += SWIFT_BETA -# DEFINES += SWIFT_SHIPPED -DEFINES += BLACK_VERSION=$$BLACK_VERSION -DEFINES += BLACK_CLIENT_PUBLIC_ID=0xb9ba -DEFINES += BLACK_CLIENT_PRIVATE_KEY=727d1efd5cb9f8d2c28372469d922bb4 -DEFINES += BLACK_EOL=20170101 - -contains(BLACK_CONFIG, BlackSound) { DEFINES += WITH_BLACKSOUND } -contains(BLACK_CONFIG, BlackInput) { DEFINES += WITH_BLACKINPUT } -contains(BLACK_CONFIG, BlackSim) { DEFINES += WITH_BLACKSIM } -contains(BLACK_CONFIG, BlackCore) { DEFINES += WITH_BLACKCORE } -contains(BLACK_CONFIG, BlackGui) { DEFINES += WITH_BLACKGUI } -contains(BLACK_CONFIG, SwiftData) { DEFINES += WITH_SWIFTDATA } -contains(BLACK_CONFIG, SwiftGui) { DEFINES += WITH_SWIFTGUI } -contains(BLACK_CONFIG, SwiftCore) { DEFINES += WITH_SWIFTCORE } -contains(BLACK_CONFIG, FSX) { DEFINES += WITH_FSX } -contains(BLACK_CONFIG, FS9) { DEFINES += WITH_FS9 } -contains(BLACK_CONFIG, XPlane) { DEFINES += WITH_XPLANE } -contains(BLACK_CONFIG, Static) { DEFINES += WITH_STATIC } -contains(BLACK_CONFIG, AssertsInRelease) { DEFINES += QT_FORCE_ASSERTS } diff --git a/mkspecs/features/vatsim.pri b/mkspecs/features/vatsim.pri new file mode 100644 index 000000000..99d7ebb24 --- /dev/null +++ b/mkspecs/features/vatsim.pri @@ -0,0 +1,4 @@ +# This is in a separate file to allow easy patching. + +VATSIM_CLIENT_ID = "0xb9ba" +VATSIM_CLIENT_PRIVATE_KEY = "727d1efd5cb9f8d2c28372469d922bb4" diff --git a/src/blackcore/airspacemonitor.cpp b/src/blackcore/airspacemonitor.cpp index f7a5e7451..e71617ca5 100644 --- a/src/blackcore/airspacemonitor.cpp +++ b/src/blackcore/airspacemonitor.cpp @@ -14,7 +14,6 @@ #include "blackcore/vatsimbookingreader.h" #include "blackcore/vatsimdatafilereader.h" #include "blackmisc/simulation/aircraftmodellist.h" -#include "blackmisc/project.h" #include "blackmisc/testing.h" #include "blackmisc/logmessage.h" #include "blackmisc/propertyindexallclasses.h" diff --git a/src/blackcore/application.cpp b/src/blackcore/application.cpp index 8989c5233..960b01d74 100644 --- a/src/blackcore/application.cpp +++ b/src/blackcore/application.cpp @@ -8,6 +8,7 @@ */ #include "application.h" +#include "blackmisc/buildconfig.h" #include "blackcore/corefacade.h" #include "blackcore/setupreader.h" #include "blackcore/networkvatlib.h" @@ -16,7 +17,6 @@ #include "blackcore/registermetadata.h" #include "blackcore/cookiemanager.h" #include "blackmisc/logmessage.h" -#include "blackmisc/project.h" #include "blackmisc/dbusserver.h" #include "blackmisc/registermetadata.h" #include "blackmisc/threadutils.h" @@ -52,7 +52,7 @@ namespace BlackCore { CApplication::initEnvironment(); QCoreApplication::setApplicationName(applicationName); - QCoreApplication::setApplicationVersion(CProject::version()); + QCoreApplication::setApplicationVersion(CVersion::version()); this->setObjectName(applicationName); this->initParser(); this->initLogging(); @@ -103,7 +103,7 @@ namespace BlackCore const QString &CApplication::getApplicationNameAndVersion() const { - static const QString s(QCoreApplication::instance()->applicationName() + " " + CProject::version()); + static const QString s(QCoreApplication::instance()->applicationName() + " " + CVersion::version()); return s; } @@ -210,22 +210,22 @@ namespace BlackCore const QString &CApplication::versionStringDevBetaInfo() const { - if (isRunningInDeveloperEnvironment() && CProject::isBetaTest()) + if (isRunningInDeveloperEnvironment() && CBuildConfig::isBetaTest()) { - static const QString s(CProject::version() + " [DEV, BETA]"); + static const QString s(CVersion::version() + " [DEV, BETA]"); return s; } if (isRunningInDeveloperEnvironment()) { - static const QString s(CProject::version() + " [DEV]"); + static const QString s(CVersion::version() + " [DEV]"); return s; } - if (CProject::isBetaTest()) + if (CBuildConfig::isBetaTest()) { - static const QString s(CProject::version() + " [BETA]"); + static const QString s(CVersion::version() + " [BETA]"); return s; } - return CProject::version(); + return CVersion::version(); } const QString &CApplication::swiftVersionString() const @@ -242,7 +242,7 @@ namespace BlackCore bool CApplication::isRunningInDeveloperEnvironment() const { - if (!CProject::canRunInDeveloperEnvironment()) { return false; } + if (!CBuildConfig::canRunInDeveloperEnvironment()) { return false; } if (!this->m_parser.value(this->m_cmdDevelopment).isEmpty()) { // explicit value @@ -265,21 +265,21 @@ namespace BlackCore QString CApplication::getEnvironmentInfoString(const QString &separator) const { QString env("Beta: "); - env.append(boolToYesNo(CProject::isBetaTest())); + env.append(boolToYesNo(CBuildConfig::isBetaTest())); env = env.append(" dev.env,: ").append(boolToYesNo(isRunningInDeveloperEnvironment())); env = env.append(separator); - env.append("Windows: ").append(boolToYesNo(CProject::isRunningOnWindowsNtPlatform())); + env.append("Windows: ").append(boolToYesNo(CBuildConfig::isRunningOnWindowsNtPlatform())); return env; } QString CApplication::getInfoString(const QString &separator) const { - QString str(CProject::version()); - str = str.append(" ").append(CProject::isReleaseBuild() ? "Release build" : "Debug build"); + QString str(CVersion::version()); + str = str.append(" ").append(CBuildConfig::isReleaseBuild() ? "Release build" : "Debug build"); str = str.append(separator); str = str.append(getEnvironmentInfoString(separator)); str = str.append(separator); - str.append(CProject::compiledWithInfo(false)); + str.append(CBuildConfig::compiledWithInfo(false)); return str; } @@ -661,9 +661,9 @@ namespace BlackCore bool CApplication::parse() { if (this->m_parsed) { return m_parsed; } - if (CProject::isLifetimeExpired()) + if (CBuildConfig::isLifetimeExpired()) { - this->cmdLineErrorMessage("Program exired " + CProject::getEol().toString()); + this->cmdLineErrorMessage("Program exired " + CBuildConfig::getEol().toString()); return false; } diff --git a/src/blackcore/contextsimulator.h b/src/blackcore/contextsimulator.h index d9d794438..080ff814d 100644 --- a/src/blackcore/contextsimulator.h +++ b/src/blackcore/contextsimulator.h @@ -33,7 +33,7 @@ #include "blackmisc/simulation/simulatorplugininfolist.h" #include "blackmisc/simulation/simulatedaircraftlist.h" #include "blackmisc/aviation/airportlist.h" -#include "blackmisc/project.h" +#include "blackmisc/buildconfig.h" #include "blackmisc/pixmap.h" #include "blackmisc/pq/time.h" #include @@ -165,7 +165,7 @@ namespace BlackCore virtual BlackMisc::PhysicalQuantities::CTime getTimeSynchronizationOffset() const = 0; //! Simulator avialable (driver available)? - bool isSimulatorAvailable() const { return BlackMisc::CProject::isCompiledWithFlightSimulatorSupport() && !getSimulatorPluginInfo().isUnspecified(); } + bool isSimulatorAvailable() const { return BlackMisc::CBuildConfig::isCompiledWithFlightSimulatorSupport() && !getSimulatorPluginInfo().isUnspecified(); } //! Icon representing the model virtual BlackMisc::CPixmap iconForModel(const QString &modelString) const = 0; diff --git a/src/blackcore/data/globalsetup.cpp b/src/blackcore/data/globalsetup.cpp index 633f0b960..111e82efd 100644 --- a/src/blackcore/data/globalsetup.cpp +++ b/src/blackcore/data/globalsetup.cpp @@ -8,7 +8,7 @@ */ #include "globalsetup.h" -#include "blackmisc/project.h" +#include "blackmisc/buildconfig.h" #include "blackmisc/math/mathutils.h" #include "blackmisc/stringutils.h" #include @@ -29,7 +29,7 @@ namespace BlackCore m_vatsimMetarsUrls( {"http://metar.vatsim.net/metar.php"}), m_vatsimStatusFileUrls({ "https://status.vatsim.net" }), m_vatsimDataFileUrls({ "http://info.vroute.net/vatsim-data.txt" }), - m_sharedUrls(CProject::swiftTeamDefaultServers()), + m_sharedUrls(CBuildConfig::swiftTeamDefaultServers()), m_newsUrls(QStringList({ "http://swift-project.org/" })) { } diff --git a/src/blackcore/data/updateinfo.cpp b/src/blackcore/data/updateinfo.cpp index eaf734d63..daa727fce 100644 --- a/src/blackcore/data/updateinfo.cpp +++ b/src/blackcore/data/updateinfo.cpp @@ -8,7 +8,7 @@ */ #include "updateinfo.h" -#include "blackmisc/project.h" +#include "blackmisc/buildconfig.h" #include using namespace BlackMisc; @@ -22,20 +22,20 @@ namespace BlackCore ITimestampBased(0), m_downloadsStableUrls(QStringList {"http://swift-project.org/"}), m_downloadsBetaUrls(QStringList {"http://swift-project.org/"}), - m_latestVersionStable(CProject::version()), + m_latestVersionStable(CVersion::version()), m_lastSupportedVersionStable("0.6"), - m_latestVersionBeta(CProject::version()), + m_latestVersionBeta(CVersion::version()), m_lastSupportedVersionBeta("0.6") { } CUrlList CUpdateInfo::getDownloadUrls() const { - return CProject::isBetaTest() ? getDownloadUrlsBeta() : getDownloadUrlsStable(); + return CBuildConfig::isBetaTest() ? getDownloadUrlsBeta() : getDownloadUrlsStable(); } QString CUpdateInfo::getLatestVersion() const { - return CProject::isBetaTest() ? getLatestVersionBeta() : getLatestVersionStable(); + return CBuildConfig::isBetaTest() ? getLatestVersionBeta() : getLatestVersionStable(); } bool CUpdateInfo::hasSameType(const CUpdateInfo &otherDownload) const diff --git a/src/blackcore/databasewriter.cpp b/src/blackcore/databasewriter.cpp index a6b68a6fa..7e3fb2eaf 100644 --- a/src/blackcore/databasewriter.cpp +++ b/src/blackcore/databasewriter.cpp @@ -12,7 +12,6 @@ #include "blackmisc/logmessage.h" #include "blackmisc/datastoreutility.h" #include "blackmisc/network/networkutils.h" -#include "blackmisc/project.h" #include #include #include diff --git a/src/blackcore/networkvatlib.cpp b/src/blackcore/networkvatlib.cpp index 00e89003d..431d94776 100644 --- a/src/blackcore/networkvatlib.cpp +++ b/src/blackcore/networkvatlib.cpp @@ -11,8 +11,9 @@ #include "networkvatlib.h" #include "application.h" -#include "blackmisc/project.h" +#include "blackmisc/buildconfig.h" #include "blackmisc/logmessage.h" +#include "blackmisc/buildconfig.h" #include #include #include @@ -20,14 +21,6 @@ static_assert(! std::is_abstract::value, "Must implement all pure virtuals"); static_assert(VAT_LIBVATLIB_VERSION == 905, "Wrong vatlib header installed"); -#if !defined(BLACK_CLIENT_PUBLIC_ID) -#error Missing definition of id -#endif - -#if !defined(BLACK_CLIENT_PRIVATE_KEY) -#error Missing definition of pk -#endif - using namespace BlackMisc; using namespace BlackMisc::Aviation; using namespace BlackMisc::Geo; @@ -71,11 +64,10 @@ namespace BlackCore clientCapabilities |= vatCapsStealth; } - static const QString pkDef(BLACK_STRINGIFY(BLACK_CLIENT_PRIVATE_KEY)); - static const QByteArray pk(this->getCmdLineFsdKey().isEmpty() ? pkDef.toLocal8Bit() : this->getCmdLineFsdKey().toLocal8Bit()); + static const QByteArray pk(this->getCmdLineFsdKey().isEmpty() ? CBuildConfig::vatsimPrivateKey().toLocal8Bit() : this->getCmdLineFsdKey().toLocal8Bit()); m_net.reset(Vat_CreateNetworkSession(vatServerLegacyFsd, sApp->swiftVersionChar(), - CProject::versionMajor(), CProject::versionMinor(), - "None", BLACK_CLIENT_PUBLIC_ID, pk.constData(), + CVersion::versionMajor(), CVersion::versionMinor(), + "None", CBuildConfig::vatsimClientId(), pk.constData(), clientCapabilities)); Vat_SetStateChangeHandler(m_net.data(), onConnectionStatusChanged, this); @@ -599,7 +591,7 @@ namespace BlackCore }; // only in not officially shipped versions - return (CProject::isShippedVersion() && !CProject::isBetaTest()) ? e : opts; + return (CBuildConfig::isShippedVersion() && !CBuildConfig::isBetaTest()) ? e : opts; } QString CNetworkVatlib::getCmdLineFsdKey() const diff --git a/src/blackcore/setupreader.cpp b/src/blackcore/setupreader.cpp index cc30f6072..e9c098b35 100644 --- a/src/blackcore/setupreader.cpp +++ b/src/blackcore/setupreader.cpp @@ -13,7 +13,7 @@ #include "blackmisc/logmessage.h" #include "blackmisc/logcategory.h" #include "blackmisc/json.h" -#include "blackmisc/project.h" +#include "blackmisc/buildconfig.h" #include "blackmisc/fileutils.h" #include "blackmisc/logmessage.h" #include "setupreader.h" @@ -87,7 +87,7 @@ namespace BlackCore if (this->m_bootstrapUrls.isEmpty()) { CGlobalSetup resourceSetup(CGlobalSetup::fromJsonFile( - CProject::getBootstrapResourceFile() + CBuildConfig::getBootstrapResourceFile() )); this->m_bootstrapUrls.push_back(resourceSetup.getBootstrapFileUrls()); } diff --git a/src/blackcore/webdataservices.h b/src/blackcore/webdataservices.h index 5afe04f98..efc1fcae8 100644 --- a/src/blackcore/webdataservices.h +++ b/src/blackcore/webdataservices.h @@ -27,7 +27,6 @@ #include "blackmisc/weather/metarset.h" #include "blackmisc/logcategorylist.h" #include "blackmisc/countrylist.h" -#include "blackmisc/project.h" #include "blackmisc/restricted.h" #include diff --git a/src/blackgui/components/datainfoareacomponent.cpp b/src/blackgui/components/datainfoareacomponent.cpp index dac65ed0b..709ddac72 100644 --- a/src/blackgui/components/datainfoareacomponent.cpp +++ b/src/blackgui/components/datainfoareacomponent.cpp @@ -16,6 +16,7 @@ #include "blackmisc/icons.h" #include "blackmisc/logmessage.h" #include "blackmisc/verify.h" +#include "blackmisc/buildconfig.h" using namespace BlackMisc; using namespace BlackMisc::Network; @@ -78,7 +79,7 @@ namespace BlackGui } // write to disk - bool s = sGui->getWebDataServices()->writeDbDataToDisk(CProject::getSwiftStaticDbFilesDir()); + bool s = sGui->getWebDataServices()->writeDbDataToDisk(CBuildConfig::getSwiftStaticDbFilesDir()); if (s) { CLogMessage(this).info("Written DB data"); @@ -93,12 +94,12 @@ namespace BlackGui bool CDataInfoAreaComponent::readDbDataFromResourceDir() { bool s = sGui && - sGui->getWebDataServices()->readDbDataFromDisk(CProject::getSwiftStaticDbFilesDir(), true); + sGui->getWebDataServices()->readDbDataFromDisk(CBuildConfig::getSwiftStaticDbFilesDir(), true); // info if (s) { - CLogMessage(this).info("Read DB data from directory: %1") << CProject::getSwiftStaticDbFilesDir(); + CLogMessage(this).info("Read DB data from directory: %1") << CBuildConfig::getSwiftStaticDbFilesDir(); this->ui->comp_DbAircraftIcao->showLoadIndicator(); this->ui->comp_DbAirlineIcao->showLoadIndicator(); this->ui->comp_DbCountries->showLoadIndicator(); diff --git a/src/blackgui/components/dbdebugdatabasesetup.cpp b/src/blackgui/components/dbdebugdatabasesetup.cpp index 3b67c2c91..f69e98b3b 100644 --- a/src/blackgui/components/dbdebugdatabasesetup.cpp +++ b/src/blackgui/components/dbdebugdatabasesetup.cpp @@ -8,7 +8,6 @@ */ #include "blackgui/guiapplication.h" -#include "blackmisc/project.h" #include "dbdebugdatabasesetup.h" #include "ui_dbdebugdatabasesetup.h" diff --git a/src/blackgui/components/infobarstatuscomponent.cpp b/src/blackgui/components/infobarstatuscomponent.cpp index 21f90ba95..3bc26d7c2 100644 --- a/src/blackgui/components/infobarstatuscomponent.cpp +++ b/src/blackgui/components/infobarstatuscomponent.cpp @@ -16,7 +16,7 @@ #include "blackcore/contextaudio.h" #include "blackcore/simulator.h" #include "blackmisc/audio/audioutils.h" -#include "blackmisc/project.h" +#include "blackmisc/buildconfig.h" #include "blackmisc/icons.h" #include @@ -159,7 +159,7 @@ namespace BlackGui QMenu menuAudio(this); menuAudio.addAction("Toogle mute"); - if (CProject::isRunningOnWindowsNtPlatform()) + if (CBuildConfig::isRunningOnWindowsNtPlatform()) { menuAudio.addAction("Mixer"); } diff --git a/src/blackgui/components/logincomponent.cpp b/src/blackgui/components/logincomponent.cpp index d3c69b267..65d22b983 100644 --- a/src/blackgui/components/logincomponent.cpp +++ b/src/blackgui/components/logincomponent.cpp @@ -18,6 +18,7 @@ #include "blackcore/network.h" #include "blackcore/simulator.h" #include "blackmisc/logmessage.h" +#include "blackmisc/buildconfig.h" #include using namespace BlackMisc; @@ -106,7 +107,7 @@ namespace BlackGui CServerList otherServers(this->m_otherTrafficNetworkServers.get()); // add a testserver when no servers can be loaded - if (otherServers.isEmpty() && (sGui->isRunningInDeveloperEnvironment() || CProject::isBetaTest())) + if (otherServers.isEmpty() && (sGui->isRunningInDeveloperEnvironment() || CBuildConfig::isBetaTest())) { otherServers.push_back(sGui->getGlobalSetup().getFsdTestServersPlusHardcodedServers()); CLogMessage(this).info("Added servers for testing"); diff --git a/src/blackgui/components/settingsnetworkserverscomponent.cpp b/src/blackgui/components/settingsnetworkserverscomponent.cpp index fc64cae38..ea87cc823 100644 --- a/src/blackgui/components/settingsnetworkserverscomponent.cpp +++ b/src/blackgui/components/settingsnetworkserverscomponent.cpp @@ -14,7 +14,7 @@ #include "blackcore/setupreader.h" #include "blackcore/contextapplication.h" #include "blackmisc/logmessage.h" -#include "blackmisc/project.h" +#include "blackmisc/buildconfig.h" #include using namespace BlackCore; @@ -53,7 +53,7 @@ namespace BlackGui // add swift test servers in case we have no servers: // this is debug/bootstrap feature we can continue to test when something goes wrong - if (serverList.isEmpty() && (CProject::isBetaTest() || sGui->isRunningInDeveloperEnvironment())) + if (serverList.isEmpty() && (CBuildConfig::isBetaTest() || sGui->isRunningInDeveloperEnvironment())) { serverList.push_back(sGui->getGlobalSetup().getFsdTestServersPlusHardcodedServers()); this->ui->tvp_Servers->updateContainer(serverList); diff --git a/src/blackgui/guiapplication.cpp b/src/blackgui/guiapplication.cpp index 74894b6ff..908eabbe4 100644 --- a/src/blackgui/guiapplication.cpp +++ b/src/blackgui/guiapplication.cpp @@ -12,7 +12,7 @@ #include "stylesheetutility.h" #include "registermetadata.h" #include "blackmisc/logmessage.h" -#include "blackmisc/project.h" +#include "blackmisc/buildconfig.h" #include "blackmisc/verify.h" #include "blackmisc/metadatautils.h" #include "blackmisc/settingscache.h" @@ -215,7 +215,7 @@ namespace BlackGui void CGuiApplication::cmdLineErrorMessage(const QString &errorMessage) const { - if (CProject::isRunningOnWindowsNtPlatform()) + if (CBuildConfig::isRunningOnWindowsNtPlatform()) { const QString helpText(beautifyHelpMessage(this->m_parser.helpText())); QMessageBox::warning(nullptr, @@ -439,7 +439,7 @@ namespace BlackGui void CGuiApplication::cmdLineHelpMessage() { - if (CProject::isRunningOnWindowsNtPlatform()) + if (CBuildConfig::isRunningOnWindowsNtPlatform()) { QMessageBox::information(nullptr, QGuiApplication::applicationDisplayName(), @@ -453,7 +453,7 @@ namespace BlackGui void CGuiApplication::cmdLineVersionMessage() const { - if (CProject::isRunningOnWindowsNtPlatform()) + if (CBuildConfig::isRunningOnWindowsNtPlatform()) { QMessageBox::information(nullptr, QGuiApplication::applicationDisplayName(), diff --git a/src/blackgui/guiutility.cpp b/src/blackgui/guiutility.cpp index 9d59f3713..aa4fb9cd3 100644 --- a/src/blackgui/guiutility.cpp +++ b/src/blackgui/guiutility.cpp @@ -12,7 +12,6 @@ #include "blackcore/cookiemanager.h" #include "blackmisc/filelogger.h" #include "blackmisc/logmessage.h" -#include "blackmisc/project.h" #include "blackmisc/verify.h" #include #include diff --git a/src/blackgui/views/atcstationview.cpp b/src/blackgui/views/atcstationview.cpp index 70e64d270..800568348 100644 --- a/src/blackgui/views/atcstationview.cpp +++ b/src/blackgui/views/atcstationview.cpp @@ -10,6 +10,7 @@ #include "atcstationview.h" #include "blackmisc/aviation/atcstationlist.h" #include "blackmisc/testing.h" +#include "blackmisc/buildconfig.h" #include using namespace BlackMisc; @@ -41,7 +42,7 @@ namespace BlackGui void CAtcStationView::customMenu(QMenu &menu) const { - if (BlackMisc::CProject::isDebugBuild()) + if (BlackMisc::CBuildConfig::isDebugBuild()) { menu.addAction(CIcons::tableSheet16(), "Test: 1k ATC online stations", this, SLOT(ps_testRequest1kAtcOnlineDummies())); menu.addAction(CIcons::tableSheet16(), "Test: 3k ATC online stations", this, SLOT(ps_testRequest3kAtcOnlineDummies())); diff --git a/src/blackgui/views/atcstationview.h b/src/blackgui/views/atcstationview.h index 026a25d47..6faac8134 100644 --- a/src/blackgui/views/atcstationview.h +++ b/src/blackgui/views/atcstationview.h @@ -15,7 +15,6 @@ #include "blackgui/blackguiexport.h" #include "viewbase.h" #include "../models/atcstationlistmodel.h" -#include "blackmisc/project.h" namespace BlackGui { diff --git a/src/blackgui/views/simulatedaircraftview.cpp b/src/blackgui/views/simulatedaircraftview.cpp index 798580486..f0ca1f139 100644 --- a/src/blackgui/views/simulatedaircraftview.cpp +++ b/src/blackgui/views/simulatedaircraftview.cpp @@ -8,7 +8,7 @@ */ #include "simulatedaircraftview.h" -#include "blackmisc/project.h" +#include "blackmisc/buildconfig.h" #include using namespace BlackMisc; @@ -41,7 +41,7 @@ namespace BlackGui void CSimulatedAircraftView::customMenu(QMenu &menu) const { - if (BlackMisc::CProject::isDebugBuild()) + if (BlackMisc::CBuildConfig::isDebugBuild()) { // tbd } diff --git a/src/blackgui/views/viewbase.cpp b/src/blackgui/views/viewbase.cpp index 3565ee50d..9ad36d74c 100644 --- a/src/blackgui/views/viewbase.cpp +++ b/src/blackgui/views/viewbase.cpp @@ -9,7 +9,7 @@ #include "viewbase.h" #include "blackmisc/fileutils.h" -#include "blackmisc/project.h" +#include "blackmisc/buildconfig.h" #include "blackgui/models/allmodels.h" #include "blackgui/stylesheetutility.h" #include "blackgui/guiutility.h" @@ -374,7 +374,7 @@ namespace BlackGui QString CViewBaseNonTemplate::getDefaultFilename(bool load) const { // some logic to find a useful default name - QString dir = CProject::getDocumentationDirectory(); + QString dir = CBuildConfig::getDocumentationDirectory(); if (load) { diff --git a/src/blackmisc/audio/audioutils.cpp b/src/blackmisc/audio/audioutils.cpp index e7173692b..ac21aee94 100644 --- a/src/blackmisc/audio/audioutils.cpp +++ b/src/blackmisc/audio/audioutils.cpp @@ -8,7 +8,7 @@ */ #include "audioutils.h" -#include "blackmisc/project.h" +#include "blackmisc/buildconfig.h" #include namespace BlackMisc @@ -17,7 +17,7 @@ namespace BlackMisc { bool startWindowsMixer() { - if (!CProject::isRunningOnWindowsNtPlatform()) { return false; } + if (!CBuildConfig::isRunningOnWindowsNtPlatform()) { return false; } QStringList parameterlist; return QProcess::startDetached("SndVol.exe", parameterlist); } diff --git a/src/blackmisc/blackmisc.pro b/src/blackmisc/blackmisc.pro index 5eff8524d..c127ae7d6 100644 --- a/src/blackmisc/blackmisc.pro +++ b/src/blackmisc/blackmisc.pro @@ -10,6 +10,10 @@ contains(BLACK_CONFIG, Static) { CONFIG += staticlib } +buildconfig.input = buildconfig.h.in +buildconfig.output = buildconfig.h +QMAKE_SUBSTITUTES += buildconfig + INCLUDEPATH += .. # DEPENDPATH += . .. // BlackMisc should be independent # PRECOMPILED_HEADER = stdpch.h @@ -65,7 +69,7 @@ win32 { DESTDIR = $$DestRoot/lib DLLDESTDIR = $$DestRoot/bin -OTHER_FILES += $$TRANSLATIONS readme.txt +OTHER_FILES += $$TRANSLATIONS readme.txt buildconfig.h.in win32 { dlltarget.path = $$PREFIX/bin diff --git a/src/blackmisc/blackmiscexport.h b/src/blackmisc/blackmiscexport.h index 08c5b16a7..8393af670 100644 --- a/src/blackmisc/blackmiscexport.h +++ b/src/blackmisc/blackmiscexport.h @@ -38,16 +38,4 @@ # define BLACKMISC_EXPORT_TEMPLATE #endif - -//! \cond -// helper define -#define BLACK_STRINGIFY_X(v) #v -//! \endcond - -/*! - * \def BLACK_STRINGIFY - * Value in quotes (normally to be used then with QString) - */ -#define BLACK_STRINGIFY(v) BLACK_STRINGIFY_X(v) - #endif // guard diff --git a/src/blackmisc/project.cpp b/src/blackmisc/buildconfig.cpp similarity index 70% rename from src/blackmisc/project.cpp rename to src/blackmisc/buildconfig.cpp index 98c3e5324..fe28cc4b4 100644 --- a/src/blackmisc/project.cpp +++ b/src/blackmisc/buildconfig.cpp @@ -9,7 +9,7 @@ //! \cond PRIVATE -#include "project.h" +#include "buildconfig.h" #include "blackmisc/fileutils.h" #include "blackmisc/stringutils.h" #include "blackmisc/simulation/simulatorinfo.h" @@ -19,17 +19,9 @@ #include #include -#if !defined(BLACK_VERSION) -#error Missing version -#endif - -#if !defined(BLACK_EOL) -#error Missing EOL -#endif - namespace BlackMisc { - bool CProject::isCompiledWithBlackCore() + bool CBuildConfig::isCompiledWithBlackCore() { #ifdef WITH_BLACKCORE return true; @@ -38,7 +30,7 @@ namespace BlackMisc #endif } - bool CProject::isCompiledWithBlackSound() + bool CBuildConfig::isCompiledWithBlackSound() { #ifdef WITH_BLACKSOUND return true; @@ -47,7 +39,7 @@ namespace BlackMisc #endif } - bool CProject::isCompiledWithBlackInput() + bool CBuildConfig::isCompiledWithBlackInput() { #ifdef WITH_BLACKINPUT return true; @@ -56,7 +48,7 @@ namespace BlackMisc #endif } - bool CProject::isCompiledWithFs9Support() + bool CBuildConfig::isCompiledWithFs9Support() { #ifdef WITH_FS9 return true; @@ -65,7 +57,7 @@ namespace BlackMisc #endif } - bool CProject::isCompiledWithFsxSupport() + bool CBuildConfig::isCompiledWithFsxSupport() { #ifdef WITH_FSX return true; @@ -74,17 +66,17 @@ namespace BlackMisc #endif } - bool CProject::isCompiledWithP3DSupport() + bool CBuildConfig::isCompiledWithP3DSupport() { return isCompiledWithFsxSupport(); } - bool CProject::isCompiledWithMsFlightSimulatorSupport() + bool CBuildConfig::isCompiledWithMsFlightSimulatorSupport() { return isCompiledWithFs9Support() || isCompiledWithFsxSupport() || isCompiledWithP3DSupport(); } - bool CProject::isCompiledWithXPlaneSupport() + bool CBuildConfig::isCompiledWithXPlaneSupport() { #ifdef WITH_XPLANE return true; @@ -93,12 +85,12 @@ namespace BlackMisc #endif } - bool CProject::isCompiledWithFlightSimulatorSupport() + bool CBuildConfig::isCompiledWithFlightSimulatorSupport() { return isCompiledWithFsxSupport() || isCompiledWithXPlaneSupport(); } - bool BlackMisc::CProject::isCompiledWithGui() + bool CBuildConfig::isCompiledWithGui() { #ifdef WITH_BLACKGUI return true; @@ -107,60 +99,7 @@ namespace BlackMisc #endif } - const BlackMisc::Simulation::CSimulatorInfo &CProject::simulators() - { - static const BlackMisc::Simulation::CSimulatorInfo simInfo( - isCompiledWithFsxSupport(), - isCompiledWithFs9Support(), - isCompiledWithXPlaneSupport(), - isCompiledWithP3DSupport() - ); - return simInfo; - } - - const char *CProject::simulatorsChar() - { - static const QByteArray sims(simulators().toQString().toUtf8()); - return sims.constData(); - } - - const QString &CProject::version() - { -#ifdef BLACK_VERSION - static const QString v(BLACK_STRINGIFY(BLACK_VERSION)); -#else - static const QString v("?"); -#endif - return v; - } - - int CProject::versionMajor() - { - return getMajorMinor(0); - } - - int CProject::versionMinor() - { - return getMajorMinor(1); - } - - bool CProject::isNewerVersion(const QString &versionString) - { - if (versionString.isEmpty()) { return false; } - if (CProject::version() == versionString) { return false; } - - QList newer(getVersionParts(versionString)); - QList current(getVersionParts(version())); - for (int i = 0; i < current.length(); i++) - { - if (newer.length() <= i) { return false; } - if (current.at(i) > newer.at(i)) { return false; } - if (current.at(i) < newer.at(i)) { return true; } - } - return false; - } - - bool CProject::isDebugBuild() + bool CBuildConfig::isDebugBuild() { #ifdef QT_DEBUG return true; @@ -169,7 +108,7 @@ namespace BlackMisc #endif } - bool CProject::isReleaseBuild() + bool CBuildConfig::isReleaseBuild() { #ifdef QT_NO_DEBUG return true; @@ -178,7 +117,7 @@ namespace BlackMisc #endif } - bool CProject::isBetaTest() + bool CBuildConfig::isBetaTest() { #ifdef SWIFT_BETA return true; @@ -187,13 +126,13 @@ namespace BlackMisc #endif } - bool CProject::canRunInDeveloperEnvironment() + bool CBuildConfig::canRunInDeveloperEnvironment() { if (isBetaTest()) { return true; } return !isShippedVersion(); } - bool CProject::isShippedVersion() + bool CBuildConfig::isShippedVersion() { #ifdef SWIFT_SHIPPED return true; @@ -202,7 +141,7 @@ namespace BlackMisc #endif } - bool CProject::isRunningOnWindowsNtPlatform() + bool CBuildConfig::isRunningOnWindowsNtPlatform() { #ifdef Q_OS_WIN // QSysInfo::WindowsVersion only available on Win platforms @@ -212,58 +151,32 @@ namespace BlackMisc #endif } - QList CProject::getVersionParts(const QString &versionString) - { - QStringList parts = versionString.split('.'); - QList partsInt; - for (const QString &p : parts) - { - bool ok = false; - int pInt = p.toInt(&ok); - partsInt.append(ok ? pInt : -1); - } - return partsInt; - } - - int CProject::getMajorMinor(int index) - { - QList partsInt(getVersionParts(version())); - if (index >= partsInt.length()) { return -1; } - return partsInt[index]; - } - - const QString &CProject::swiftGuiExecutableName() + const QString &CBuildConfig::swiftGuiExecutableName() { static const QString s("swiftguistd"); return s; } - const QString &CProject::swiftCoreExecutableName() + const QString &CBuildConfig::swiftCoreExecutableName() { static const QString s("swiftcore"); return s; } - const QString &CProject::swiftDataExecutableName() + const QString &CBuildConfig::swiftDataExecutableName() { static const QString s("swiftdata"); return s; } - const QStringList &CProject::swiftTeamDefaultServers() + const QStringList &CBuildConfig::swiftTeamDefaultServers() { - static const QStringList s({ "https://vatsim-germany.org:50443/mapping/public/shared", "http://ubuntu12/public/bootstrap/shared"}); + static const QStringList s({ "https://vatsim-germany.org:50443/mapping/public/shared", + "http://ubuntu12/public/bootstrap/shared"}); return s; } - const QDateTime &CProject::getEol() - { - static const QString eol(BLACK_STRINGIFY(BLACK_EOL)); - static const QDateTime dt(eol.isEmpty() ? QDateTime() : QDateTime::fromString(eol, "yyyyMMdd")); - return dt; - } - - bool CProject::isLifetimeExpired() + bool CBuildConfig::isLifetimeExpired() { if (getEol().isValid()) { @@ -282,7 +195,7 @@ namespace BlackMisc return p.absolutePath(); } - const QString &CProject::getApplicationDir() + const QString &CBuildConfig::getApplicationDir() { static const QString s(getApplicationDirImpl()); return s; @@ -290,7 +203,7 @@ namespace BlackMisc QString getSwiftResourceDirImpl() { - QDir dir(CProject::getApplicationDir()); + QDir dir(CBuildConfig::getApplicationDir()); if (dir.cdUp()) { Q_ASSERT_X(dir.exists(), Q_FUNC_INFO, "missing dir"); @@ -300,7 +213,7 @@ namespace BlackMisc return ""; } - const QString &CProject::getSwiftResourceDir() + const QString &CBuildConfig::getSwiftResourceDir() { static const QString s(getSwiftResourceDirImpl()); return s; @@ -308,14 +221,14 @@ namespace BlackMisc const QString getBootstrapResourceFileImpl() { - const QString d(CProject::getSwiftResourceDir()); + const QString d(CBuildConfig::getSwiftResourceDir()); if (d.isEmpty()) { return ""; } const QFile file(CFileUtils::appendFilePaths(d, "shared/boostrap/boostrap.json")); Q_ASSERT_X(file.exists(), Q_FUNC_INFO, "missing dir"); return QFileInfo(file).absoluteFilePath(); } - const QString &CProject::getBootstrapResourceFile() + const QString &CBuildConfig::getBootstrapResourceFile() { static const QString s(getBootstrapResourceFileImpl()); return s; @@ -323,14 +236,14 @@ namespace BlackMisc QString getSwiftStaticDbFilesDirImpl() { - const QString d(CProject::getSwiftResourceDir()); + const QString d(CBuildConfig::getSwiftResourceDir()); if (d.isEmpty()) { return ""; } QDir dir(CFileUtils::appendFilePaths(d, "shared/dbdata")); Q_ASSERT_X(dir.exists(), Q_FUNC_INFO, "missing dir"); return dir.absolutePath(); } - const QString &CProject::getSwiftStaticDbFilesDir() + const QString &CBuildConfig::getSwiftStaticDbFilesDir() { static QString s(getSwiftStaticDbFilesDirImpl()); return s; @@ -338,13 +251,13 @@ namespace BlackMisc QString getImagesDirImpl() { - const QString d(CProject::getSwiftResourceDir()); + const QString d(CBuildConfig::getSwiftResourceDir()); QDir dir(CFileUtils::appendFilePaths(d, "data/images")); Q_ASSERT_X(dir.exists(), Q_FUNC_INFO, "missing dir"); return dir.absolutePath(); } - const QString &CProject::getImagesDir() + const QString &CBuildConfig::getImagesDir() { static const QString s(getImagesDirImpl()); return s; @@ -360,13 +273,13 @@ namespace BlackMisc return pathes.first(); } - const QString &CProject::getDocumentationDirectory() + const QString &CBuildConfig::getDocumentationDirectory() { static const QString d(getDocumentationDirectoryImpl()); return d; } - const QString &CProject::compiledWithInfo(bool shortVersion) + const QString &CBuildConfig::compiledWithInfo(bool shortVersion) { if (shortVersion) { @@ -405,6 +318,38 @@ namespace BlackMisc return infoLong; } } + + bool CVersion::isNewerVersion(const QString &versionString) + { + if (versionString.isEmpty()) { return false; } + if (CVersion::version() == versionString) { return false; } + + QList newer(getVersionParts(versionString)); + QList current(getVersionParts(version())); + for (int i = 0; i < current.length(); i++) + { + if (newer.length() <= i) { return false; } + if (current.at(i) > newer.at(i)) { return false; } + if (current.at(i) < newer.at(i)) { return true; } + } + return false; + } + + + + QList CVersion::getVersionParts(const QString &versionString) + { + QStringList parts = versionString.split('.'); + QList partsInt; + for (const QString &p : parts) + { + bool ok = false; + int pInt = p.toInt(&ok); + partsInt.append(ok ? pInt : -1); + } + return partsInt; + } + } // ns //! \endcond diff --git a/src/blackmisc/project.h b/src/blackmisc/buildconfig.h.in similarity index 64% rename from src/blackmisc/project.h rename to src/blackmisc/buildconfig.h.in index 3be45b8f2..5f298c2b8 100644 --- a/src/blackmisc/project.h +++ b/src/blackmisc/buildconfig.h.in @@ -1,5 +1,5 @@ -/* Copyright (C) 2013 - * swift Project Community / Contributors +/* Copyright (C) 2016 + * swift project Community / Contributors * * This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level * directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project, @@ -9,19 +9,30 @@ //! \file -#ifndef BLACKMISC_CPROJECT_H -#define BLACKMISC_CPROJECT_H +#ifndef BLACKMISC_BUILDCONFIG_H +#define BLACKMISC_BUILDCONFIG_H -#include "blackmiscexport.h" -#include "blackmisc/simulation/simulatorinfo.h" +#include \"blackmisc/blackmiscexport.h\" #include +#include + +$$DEFINE_WITH_BLACKCORE#define WITH_BLACKCORE +$$DEFINE_WITH_BLACKSOUND#define WITH_BLACKSOUND +$$DEFINE_WITH_BLACKINPUT#define WITH_BLACKINPUT +$$DEFINE_WITH_BLACKGUI#define WITH_BLACKGUI +$$DEFINE_WITH_SWIFTDATA#define WITH_SWIFTDATA +$$DEFINE_WITH_SWIFTGUI#define WITH_SWIFTGUI +$$DEFINE_WITH_SWIFTCORE#define WITH_SWIFTCORE +$$DEFINE_WITH_FSX#define WITH_FSX +$$DEFINE_WITH_FS9#define WITH_FS9 +$$DEFINE_WITH_XPLANE#define WITH_XPLANE +$$DEFINE_SWIFT_BETA#define SWIFT_BETA +$$DEFINE_SWIFT_SHIPPED#define SWIFT_SHIPPED namespace BlackMisc { - /*! - * Metadata about the project - */ - class BLACKMISC_EXPORT CProject + + class BLACKMISC_EXPORT CBuildConfig { public: //! with BlackCore? @@ -54,24 +65,6 @@ namespace BlackMisc //! with GUI? static bool isCompiledWithGui(); - //! Simulator String info - static const BlackMisc::Simulation::CSimulatorInfo &simulators(); - - //! Simulator String info - static const char *simulatorsChar(); - - //! Version info - static const QString &version(); - - //! Version major - static int versionMajor(); - - //! Version minor - static int versionMinor(); - - //! Is the given string representing a newer version? - static bool isNewerVersion(const QString &versionString); - //! Debug build? static bool isDebugBuild(); @@ -91,6 +84,7 @@ namespace BlackMisc static bool isRunningOnWindowsNtPlatform(); //! Application directory where current application is located + //! \todo Move to to CApplication static const QString &getApplicationDir(); //! Where resource files (static DB files, ...) etc are located @@ -111,9 +105,6 @@ namespace BlackMisc //! Info string about compilation static const QString &compiledWithInfo(bool shortVersion = true); - //! Whole info - static QString convertToQString(const QString &separator = QString("\n")); - //! Executable name for swift GUI, no(!) appendix static const QString &swiftGuiExecutableName(); @@ -127,21 +118,61 @@ namespace BlackMisc static const QStringList &swiftTeamDefaultServers(); //! End of lifetime - static const QDateTime &getEol(); + static const QDateTime &getEol() + { + static const QString eol(\"$$BLACK_EOL\"); + static const QDateTime dt(eol.isEmpty() ? QDateTime() : QDateTime::fromString(eol, \"yyyyMMdd\")); + return dt; + } //! Lifetime ended? static bool isLifetimeExpired(); - private: - //! Constructor - CProject() {} + //! Vatsim client id + static int vatsimClientId() + { + static const int id { $$VATSIM_CLIENT_ID }; + return id; + } + //! Vatsim client key + static const QString &vatsimPrivateKey() + { + static const auto pk = QString { \"$$VATSIM_CLIENT_PRIVATE_KEY\" }; + return pk; + } + + }; + + class BLACKMISC_EXPORT CVersion + { + public: + //! Version info + static const QString &version() + { + static const QString version(\"$$BLACK_VERSION\"); + Q_ASSERT(!version.isEmpty()); + return version; + } + + //! Version major + static int versionMajor() { return $$BLACK_VER_MAJ; } + + //! Version minor + static int versionMinor() { return $$BLACK_VER_MIN; } + + //! Version patch + static int versionPatch() { return $$BLACK_VER_PAT; } + + //! Is the given string representing a newer version? + static bool isNewerVersion(const QString &versionString); + + private: //! Parts of version string 1.0.2 static QList getVersionParts(const QString &versionString); - //! Split version - static int getMajorMinor(int index); }; -} // ns -#endif // guard +} + +#endif // BLACKCONFIG_H diff --git a/src/blackmisc/fileutils.cpp b/src/blackmisc/fileutils.cpp index f2accf10e..bb3c8a6c3 100644 --- a/src/blackmisc/fileutils.cpp +++ b/src/blackmisc/fileutils.cpp @@ -9,7 +9,7 @@ #include "blackmisc/worker.h" #include "fileutils.h" -#include "project.h" +#include "buildconfig.h" #include #include @@ -113,7 +113,7 @@ namespace BlackMisc Qt::CaseSensitivity CFileUtils::osFileNameCaseSensitivity() { - return CProject::isRunningOnWindowsNtPlatform() ? Qt::CaseInsensitive : Qt::CaseSensitive; + return CBuildConfig::isRunningOnWindowsNtPlatform() ? Qt::CaseInsensitive : Qt::CaseSensitive; } bool CFileUtils::matchesExcludeDirectory(const QString &directoryPath, const QString &excludeDirectory, Qt::CaseSensitivity cs) diff --git a/src/blackmisc/fileutils.h b/src/blackmisc/fileutils.h index f94b107e3..39f97b502 100644 --- a/src/blackmisc/fileutils.h +++ b/src/blackmisc/fileutils.h @@ -16,6 +16,7 @@ #include #include #include +#include namespace BlackMisc { diff --git a/src/blackmisc/icons.cpp b/src/blackmisc/icons.cpp index 0a8d986fc..9c4214f30 100644 --- a/src/blackmisc/icons.cpp +++ b/src/blackmisc/icons.cpp @@ -10,8 +10,8 @@ //! \cond PRIVATE #include "icons.h" -#include "blackmisc/project.h" #include "blackmisc/fileutils.h" +#include "buildconfig.h" #include #include #include @@ -1126,7 +1126,7 @@ namespace BlackMisc Q_ASSERT_X(!fileName.isEmpty(), Q_FUNC_INFO, "missing filename"); if (!getResourceFileCache().contains(fileName)) { - QString path = CFileUtils::appendFilePaths(CProject::getImagesDir(), fileName); + QString path = CFileUtils::appendFilePaths(CBuildConfig::getImagesDir(), fileName); QPixmap pm; bool s = pm.load(path); if (s) diff --git a/src/blackmisc/simulation/fscommon/fscommonutil.cpp b/src/blackmisc/simulation/fscommon/fscommonutil.cpp index 460f26cc6..39131fd4f 100644 --- a/src/blackmisc/simulation/fscommon/fscommonutil.cpp +++ b/src/blackmisc/simulation/fscommon/fscommonutil.cpp @@ -7,7 +7,7 @@ * contained in the LICENSE file. */ -#include "blackmisc/project.h" +#include "blackmisc/buildconfig.h" #include "fscommonutil.h" #include #include @@ -25,7 +25,7 @@ namespace BlackMisc QString CFsCommonUtil::fsxDirFromRegistry() { QString fsxPath; - if (CProject::isCompiledWithFsxSupport()) + if (CBuildConfig::isCompiledWithFsxSupport()) { FsRegistryPathPair fsxRegistryPathPairs = { @@ -102,7 +102,7 @@ namespace BlackMisc QString CFsCommonUtil::fs9DirFromRegistry() { QString fs9Path; - if (CProject::isCompiledWithFs9Support()) + if (CBuildConfig::isCompiledWithFs9Support()) { FsRegistryPathPair fs9RegistryPathPairs = { diff --git a/src/blackmisc/simulation/fsx/fsxsimulatorsetup.cpp b/src/blackmisc/simulation/fsx/fsxsimulatorsetup.cpp index e1e3a329a..a42e9d063 100644 --- a/src/blackmisc/simulation/fsx/fsxsimulatorsetup.cpp +++ b/src/blackmisc/simulation/fsx/fsxsimulatorsetup.cpp @@ -9,7 +9,7 @@ #include "fsxsimulatorsetup.h" -#include "blackmisc/project.h" +#include "buildconfig.h" #include "blackmisc/simulation/fscommon/fscommonutil.h" #include "blackmisc/simulation/fsx/simconnectutilities.h" @@ -30,7 +30,7 @@ namespace BlackMisc CSimulatorSetup s; s.setValue(KeyLocalSimConnectCfgFilename(), CSimConnectUtilities::getLocalSimConnectCfgFilename()); - if (CProject::isCompiledWithFsxSupport()) + if (CBuildConfig::isCompiledWithFsxSupport()) { // set FSX path QString fsxPath = CFsCommonUtil::fsxDirFromRegistry(); diff --git a/src/blackmisc/simulation/simulatorinfo.cpp b/src/blackmisc/simulation/simulatorinfo.cpp index 0e50a6c70..025082130 100644 --- a/src/blackmisc/simulation/simulatorinfo.cpp +++ b/src/blackmisc/simulation/simulatorinfo.cpp @@ -8,7 +8,7 @@ */ #include "simulatorinfo.h" -#include "blackmisc/project.h" +#include "buildconfig.h" #include "blackmisc/comparefunctions.h" #include "blackmisc/simulation/fscommon/fscommonutil.h" #include @@ -170,15 +170,15 @@ namespace BlackMisc //! \todo add XP, ... CSimulatorInfo sim; bool fs9 = - CProject::isRunningOnWindowsNtPlatform() && + CBuildConfig::isRunningOnWindowsNtPlatform() && !CFsCommonUtil::fs9AircraftDir().isEmpty() && !CFsCommonUtil::fs9Dir().isEmpty(); bool fsx = - CProject::isRunningOnWindowsNtPlatform() && + CBuildConfig::isRunningOnWindowsNtPlatform() && !CFsCommonUtil::fsxSimObjectsDir().isEmpty() && !CFsCommonUtil::fsxDir().isEmpty(); bool p3d = - CProject::isRunningOnWindowsNtPlatform() && + CBuildConfig::isRunningOnWindowsNtPlatform() && !CFsCommonUtil::p3dDir().isEmpty() && !CFsCommonUtil::p3dSimObjectsDir().isEmpty(); bool xp = true; //! \todo XP resolution diff --git a/src/plugins/simulator/fs9/simulatorfs9.cpp b/src/plugins/simulator/fs9/simulatorfs9.cpp index b5682c0ec..a52af0b9b 100644 --- a/src/plugins/simulator/fs9/simulatorfs9.cpp +++ b/src/plugins/simulator/fs9/simulatorfs9.cpp @@ -17,8 +17,6 @@ #include "blackcore/interpolatorlinear.h" #include "blackmisc/simulation/simulatorplugininfo.h" #include "blackmisc/logmessage.h" -#include "blackmisc/project.h" -#include "blackmisc/logmessage.h" #include "blackmisc/propertyindexallclasses.h" #include "blackmisc/simulation/fscommon/fscommonutil.h" #include diff --git a/src/plugins/simulator/fsx/simulatorfsx.cpp b/src/plugins/simulator/fsx/simulatorfsx.cpp index 6ee2357e3..7b2a6d40d 100644 --- a/src/plugins/simulator/fsx/simulatorfsx.cpp +++ b/src/plugins/simulator/fsx/simulatorfsx.cpp @@ -15,7 +15,6 @@ #include "blackmisc/simulation/fsx/fsxsimulatorsetup.h" #include "blackmisc/simulation/simulatorplugininfo.h" #include "blackmisc/simulation/aircraftmodel.h" -#include "blackmisc/project.h" #include "blackmisc/aviation/airportlist.h" #include "blackmisc/logmessage.h" #include "blackmisc/threadutils.h" diff --git a/src/plugins/simulator/fsx/simulatorfsxfactory.cpp b/src/plugins/simulator/fsx/simulatorfsxfactory.cpp index 41c2544f8..895f86767 100644 --- a/src/plugins/simulator/fsx/simulatorfsxfactory.cpp +++ b/src/plugins/simulator/fsx/simulatorfsxfactory.cpp @@ -10,7 +10,6 @@ #include "simulatorfsxfactory.h" #include "simulatorfsx.h" #include "blackmisc/simulation/simulatorplugininfo.h" -#include "blackmisc/project.h" #include namespace BlackSimPlugin diff --git a/src/swiftcore/swiftcore.cpp b/src/swiftcore/swiftcore.cpp index cad99a330..be74b4233 100644 --- a/src/swiftcore/swiftcore.cpp +++ b/src/swiftcore/swiftcore.cpp @@ -11,7 +11,6 @@ #include "ui_swiftcore.h" #include "blackmisc/icon.h" #include "blackmisc/loghandler.h" -#include "blackmisc/project.h" #include "blackmisc/dbusserver.h" #include "blackgui/guiapplication.h" #include "blackgui/stylesheetutility.h" diff --git a/src/swiftdata/main.cpp b/src/swiftdata/main.cpp index 1b2bbe6a0..86a67c124 100644 --- a/src/swiftdata/main.cpp +++ b/src/swiftdata/main.cpp @@ -13,7 +13,6 @@ #include "blackmisc/icons.h" #include "blackmisc/worker.h" #include "blackmisc/network/networkutils.h" -#include "blackmisc/project.h" #include "blackmisc/loghandler.h" #include "blackmisc/filelogger.h" #include "blackgui/stylesheetutility.h" diff --git a/src/swiftdata/swiftdata.cpp b/src/swiftdata/swiftdata.cpp index 22c73f0bd..58486c5b8 100644 --- a/src/swiftdata/swiftdata.cpp +++ b/src/swiftdata/swiftdata.cpp @@ -19,7 +19,6 @@ #include "blackmisc/network/entityflags.h" #include "blackmisc/icon.h" #include "blackmisc/loghandler.h" -#include "blackmisc/project.h" #include #include #include diff --git a/src/swiftdata/swiftdatamenus.cpp b/src/swiftdata/swiftdatamenus.cpp index 34395b75d..6a4531b5e 100644 --- a/src/swiftdata/swiftdatamenus.cpp +++ b/src/swiftdata/swiftdatamenus.cpp @@ -18,7 +18,7 @@ #include "blackcore/webdataservices.h" #include "blackmisc/statusmessagelist.h" #include "blackmisc/logmessage.h" -#include "blackmisc/project.h" +#include "blackmisc/buildconfig.h" #include "blackmisc/metadatautils.h" #include #include @@ -58,7 +58,7 @@ void CSwiftData::initDynamicMenus() Q_ASSERT_X(this->ui->comp_MainInfoArea, Q_FUNC_INFO, "missing main area"); this->ui->menu_InfoAreas->addActions(this->ui->comp_MainInfoArea->getInfoAreaSelectActions(this->ui->menu_InfoAreas)); - QString resourceDir(CProject::getSwiftResourceDir()); + QString resourceDir(CBuildConfig::getSwiftResourceDir()); if (!resourceDir.isEmpty() && QDir(resourceDir).exists()) { Q_ASSERT_X(this->ui->comp_MainInfoArea, Q_FUNC_INFO, "Missing main info area"); diff --git a/src/swiftguistandard/swiftguistdinit.cpp b/src/swiftguistandard/swiftguistdinit.cpp index 978125d15..e1d355c4e 100644 --- a/src/swiftguistandard/swiftguistdinit.cpp +++ b/src/swiftguistandard/swiftguistdinit.cpp @@ -18,7 +18,7 @@ #include "blackmisc/dbusserver.h" #include "blackmisc/icons.h" #include "blackmisc/aviation/selcal.h" -#include "blackmisc/project.h" +#include "blackmisc/buildconfig.h" #include "blackmisc/logmessage.h" #include #include @@ -112,7 +112,7 @@ void SwiftGuiStd::init() // info this->ui->comp_MainInfoArea->getLogComponent()->appendPlainTextToConsole(sGui->swiftVersionString()); - this->ui->comp_MainInfoArea->getLogComponent()->appendPlainTextToConsole(CProject::compiledWithInfo()); + this->ui->comp_MainInfoArea->getLogComponent()->appendPlainTextToConsole(CBuildConfig::compiledWithInfo()); // update timers this->startUpdateTimersWhenConnected(); diff --git a/src/swiftlauncher/main.cpp b/src/swiftlauncher/main.cpp index f85893711..33120521c 100644 --- a/src/swiftlauncher/main.cpp +++ b/src/swiftlauncher/main.cpp @@ -12,7 +12,6 @@ #include "blackcore/registermetadata.h" #include "blackmisc/logmessage.h" #include "blackmisc/icons.h" -#include "blackmisc/project.h" #include #include diff --git a/src/swiftlauncher/swiftlauncher.cpp b/src/swiftlauncher/swiftlauncher.cpp index 8a1fa8b25..020706de7 100644 --- a/src/swiftlauncher/swiftlauncher.cpp +++ b/src/swiftlauncher/swiftlauncher.cpp @@ -15,7 +15,7 @@ #include "blackmisc/dbusserver.h" #include "blackmisc/network/networkutils.h" #include "blackmisc/icons.h" -#include "blackmisc/project.h" +#include "blackmisc/buildconfig.h" #include "blackmisc/logmessage.h" #include "blackmisc/loghandler.h" #include @@ -196,7 +196,7 @@ void CSwiftLauncher::startSwiftCore() // I set this for debug purpose only this->m_executableArgs = args; - this->m_executable = CProject::swiftCoreExecutableName(); + this->m_executable = CBuildConfig::swiftCoreExecutableName(); CLogMessage(this).info(this->getCmdLine()); // start @@ -205,7 +205,7 @@ void CSwiftLauncher::startSwiftCore() void CSwiftLauncher::setSwiftDataExecutable() { - m_executable = CProject::swiftDataExecutableName(); + m_executable = CBuildConfig::swiftDataExecutableName(); m_executableArgs.clear(); } @@ -214,7 +214,7 @@ bool CSwiftLauncher::setSwiftGuiExecutable() QString msg; if (this->isStandaloneGuiSelected() || this->canConnectDBusServer(msg)) { - m_executable = CProject::swiftGuiExecutableName(); + m_executable = CBuildConfig::swiftGuiExecutableName(); QStringList args { "--core", CoreModes::coreModeToString(getCoreMode()), @@ -233,7 +233,7 @@ bool CSwiftLauncher::setSwiftGuiExecutable() } else { - m_executable = CProject::swiftGuiExecutableName(); + m_executable = CBuildConfig::swiftGuiExecutableName(); m_executableArgs.clear(); static const CLogCategoryList cats(CLogCategoryList(this).join({ CLogCategory::validation() })); CStatusMessage m(cats, CStatusMessage::SeverityError, @@ -303,7 +303,7 @@ void CSwiftLauncher::ps_loadedUpdateInfo(bool success) const CUpdateInfo updateInfo(this->m_updateInfo.get()); const QString latestVersion(updateInfo.getLatestVersion()) ; // need to get this from somewhere CFailoverUrlList downloadUrls(updateInfo.getDownloadUrls()); - bool newVersionAvailable = CProject::isNewerVersion(latestVersion) && !downloadUrls.isEmpty(); + bool newVersionAvailable = CVersion::isNewerVersion(latestVersion) && !downloadUrls.isEmpty(); this->ui->wi_NewVersionAvailable->setVisible(newVersionAvailable); this->ui->wi_NoNewVersion->setVisible(!newVersionAvailable); this->ui->le_LatestVersion->setText(latestVersion);