Skip to content

Commit da223d3

Browse files
Use cpp macros for OS_TYPE
1 parent 434dd2f commit da223d3

File tree

1 file changed

+29
-10
lines changed

1 file changed

+29
-10
lines changed

src/gui/programupdater.cpp

+29-10
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,15 @@
2929

3030
#include "programupdater.h"
3131

32+
#include <QtCore/qconfig.h>
3233
#include <QtSystemDetection>
3334
#include <QDebug>
3435
#include <QDesktopServices>
3536
#include <QRegularExpression>
3637
#include <QXmlStreamReader>
3738

39+
#include <libtorrent/version.hpp>
40+
3841
#include "base/global.h"
3942
#include "base/net/downloadmanager.h"
4043
#include "base/preferences.h"
@@ -100,20 +103,36 @@ void ProgramUpdater::rssDownloadFinished(const Net::DownloadResult &result)
100103
#ifdef QBT_USES_LIBTORRENT2
101104

102105
#ifdef Q_OS_MACOS
103-
const QString OS_TYPE = u"Mac OS X (lt20)"_s;
106+
#define BASE_OS "Mac OS X"
104107
#elif defined(Q_OS_WIN)
105-
const QString OS_TYPE = u"Windows x64 (lt20)"_s;
106-
#endif // Q_OS_MACOS
108+
#define BASE_OS "Windows x64"
109+
#endif
107110

108-
#else // QBT_USES_LIBTORRENT2
111+
#define STRINGIFY(s) #s
109112

110-
#ifdef Q_OS_MACOS
111-
const QString OS_TYPE = u"Mac OS X"_s;
112-
#elif defined(Q_OS_WIN)
113-
const QString OS_TYPE = u"Windows x64"_s;
114-
#endif // Q_OS_MACOS
113+
#if (QT_VERSION_MAJOR == 6) && (LIBTORRENT_VERSION_MAJOR == 1)
114+
#define _TYPE() BASE_OS
115+
#define TYPE _TYPE()
116+
117+
#elif (QT_VERSION_MAJOR == 6) && (LIBTORRENT_VERSION_MAJOR > 1)
118+
#define _TYPE(lt_major, lt_minor) BASE_OS " (lt" STRINGIFY(lt_major) STRINGIFY(lt_minor) ")"
119+
#define TYPE _TYPE(LIBTORRENT_VERSION_MAJOR, LIBTORRENT_VERSION_MINOR)
120+
121+
#elif (QT_VERSION_MAJOR > 6)
122+
#define _TYPE(qt_major, lt_major, lt_minor) BASE_OS " (qt" STRINGIFY(qt_major) " lt" STRINGIFY(lt_major) STRINGIFY(lt_minor) ")"
123+
#define TYPE _TYPE(QT_VERSION_MAJOR, LIBTORRENT_VERSION_MAJOR, LIBTORRENT_VERSION_MINOR)
124+
125+
#else
126+
#error "OS_TYPE is undefined for the current Qt/libtorrent combination"
127+
#endif
128+
129+
const QString OS_TYPE = TYPE;
130+
131+
#undef TYPE
132+
#undef _TYPE
133+
#undef STRINGIFY
134+
#undef BASE_OS
115135

116-
#endif // QBT_USES_LIBTORRENT2
117136

118137
bool inItem = false;
119138
QString version;

0 commit comments

Comments
 (0)