7#if !defined(Q_OS_DARWIN) && !defined(Q_OS_WIN)
11#if defined(Q_OS_DARWIN)
12#include <QtCore/private/qcore_mac_p.h>
15#include <qversionnumber.h>
19#include <QtCore/private/qjnihelpers_p.h>
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
109
110
111
112
113
116
117
118
119
120
121
128#if !defined(Q_OS_DARWIN) && !defined(Q_OS_WIN)
134#ifndef QT_BOOTSTRAPPED
135 const QVersionNumber v = QVersionNumber::fromString(QJniObject::getStaticObjectField(
136 "android/os/Build$VERSION",
"RELEASE",
"Ljava/lang/String;").toString());
138 version.m_major = v.majorVersion();
139 version.m_minor = v.minorVersion();
140 version.m_micro = v.microVersion();
145 version.m_major = -1;
146 version.m_minor = -1;
148 static const struct {
188 const size_t versionIdx = QtAndroidPrivate::androidSdkVersion() - 1;
189 if (versionIdx <
sizeof(versions) /
sizeof(versions[0])) {
190 version.m_major = versions[versionIdx].major;
191 version.m_minor = versions[versionIdx].minor;
195 version.m_micro = versionIdx == 5 ? 1 : -1;
197 version.m_major = -1;
198 version.m_minor = -1;
199 version.m_micro = -1;
207 return lhs >= 0 && rhs >= 0 ? lhs - rhs : 0;
213 if (v1.m_major == v2.m_major) {
214 if (v1.m_minor == v2.m_minor) {
223
224
225
226
227
228
229
230
231
232
233
236
237
238
239
240
241
242
243
244
245
246
247
250
251
252
253
254
255
256
257
258
259
260
261
264
265
266
267
268
269
270
271
272
273
274
275
278
279
280
281
284
285
286
287
288
289
292
293
294
295
296
297
298
299
302
303
304
305
306
307
312 return QStringLiteral(
"Windows");
315 return QStringLiteral(
"Mac OS");
317 return QStringLiteral(
"Mac OS X");
319 return QStringLiteral(
"OS X");
320 return QStringLiteral(
"macOS");
324 return QStringLiteral(
"iPhone OS");
325 return QStringLiteral(
"iOS");
328 return QStringLiteral(
"tvOS");
330 return QStringLiteral(
"watchOS");
332 return QStringLiteral(
"visionOS");
334 return QStringLiteral(
"Android");
342
343
344
345
346
350 return std::find(types.begin(), types.end(), type()) != types.end();
355 return std::find(types.begin(), types.end(), type) != types.end();
358#ifndef QT_BOOTSTRAPPED
361
362
363
364
369
370
371
372
377
378
379
380
385
386
387
388
393
394
395
396
397
401
402
403
404
405
409
410
411
412
413
417
418
419
420
421
425
426
427
428
429
433
434
435
436
437
441
442
443
444
445
449
450
451
452
453
457
458
459
460
461
465
466
467
468
472
473
474
475
479
480
481
482
485
486
487
488
491
492
493
494
497
498
499
500
505
506
507
508
513
514
515
516
521
522
523
524
529
530
531
532
537
538
539
540
545
546
547
548
553
554
555
556
561
562
563
564
569
570
571
572
576
577
578
579
582
583
584
585
588
589
590
591
594
595
596
597
602
603
604
605
606
611
612
613
614
615
620
621
622
623
628
629
630
631
636
637
638
639
640
645
646
647
648
653
654
655
656
661
662
663
664
665
670
671
672
673
678
679
680
681
686
687
688
689
694
695
696
697
702
703
704
705
710
711
712
713
717
718
719
720
724
725
726
727
731
732
733
734
738#ifndef QT_NO_DEBUG_STREAM
741 QDebugStateSaver saver(debug);
743 debug <<
"QOperatingSystemVersion(" << ov.name()
constexpr int majorVersion() const
constexpr int minorVersion() const
constexpr int microVersion() const
static constexpr OSType currentType()
constexpr OSType type() const
static constexpr QOperatingSystemVersionBase Windows11_21H2
\variable QOperatingSystemVersion::Windows11_21H2
static constexpr QOperatingSystemVersionBase AndroidNougat
\variable QOperatingSystemVersion::AndroidNougat
static constexpr QOperatingSystemVersionBase Android10
\variable QOperatingSystemVersion::Android10
static constexpr QOperatingSystemVersionBase MacOSSierra
\variable QOperatingSystemVersion::MacOSSierra
static constexpr QOperatingSystemVersionBase OSXYosemite
\variable QOperatingSystemVersion::OSXYosemite
static constexpr QOperatingSystemVersionBase Android12L
\variable QOperatingSystemVersion::Android12L
static constexpr QOperatingSystemVersionBase Windows10_1909
\variable QOperatingSystemVersion::Windows10_1909
static constexpr QOperatingSystemVersionBase AndroidKitKat
\variable QOperatingSystemVersion::AndroidKitKat
static constexpr QOperatingSystemVersionBase AndroidJellyBean
\variable QOperatingSystemVersion::MacOSSonoma
static constexpr QOperatingSystemVersionBase AndroidOreo_MR1
\variable QOperatingSystemVersion::AndroidOreo_MR1
static constexpr QOperatingSystemVersionBase Android13
\variable QOperatingSystemVersion::Android13
static constexpr QOperatingSystemVersionBase MacOSCatalina
\variable QOperatingSystemVersion::MacOSCatalina
static constexpr QOperatingSystemVersionBase AndroidLollipop_MR1
\variable QOperatingSystemVersion::AndroidLollipop_MR1
static constexpr QOperatingSystemVersionBase Windows10
\variable QOperatingSystemVersion::Windows10
static constexpr QOperatingSystemVersionBase Windows10_1903
\variable QOperatingSystemVersion::Windows10_1903
static constexpr QOperatingSystemVersionBase Android12
\variable QOperatingSystemVersion::Android12
static constexpr QOperatingSystemVersionBase OSXElCapitan
\variable QOperatingSystemVersion::OSXElCapitan
static constexpr QOperatingSystemVersionBase MacOSMojave
\variable QOperatingSystemVersion::MacOSMojave
static constexpr QOperatingSystemVersionBase Windows8
\variable QOperatingSystemVersion::Windows8
static constexpr QOperatingSystemVersionBase AndroidNougat_MR1
\variable QOperatingSystemVersion::AndroidNougat_MR1
static constexpr QOperatingSystemVersionBase Windows10_2004
\variable QOperatingSystemVersion::Windows10_2004
static constexpr QOperatingSystemVersionBase MacOSHighSierra
\variable QOperatingSystemVersion::MacOSHighSierra
static constexpr QOperatingSystemVersionBase Windows10_21H2
\variable QOperatingSystemVersion::Windows10_21H2
static constexpr QOperatingSystemVersionBase AndroidMarshmallow
\variable QOperatingSystemVersion::AndroidMarshmallow
constexpr QOperatingSystemVersion(OSType osType, int vmajor, int vminor=-1, int vmicro=-1)
Constructs a QOperatingSystemVersion consisting of the OS type osType, and major, minor,...
static constexpr QOperatingSystemVersionBase AndroidJellyBean_MR2
\variable QOperatingSystemVersion::AndroidJellyBean_MR2
static constexpr QOperatingSystemVersionBase Windows10_20H2
\variable QOperatingSystemVersion::Windows10_20H2
static constexpr QOperatingSystemVersionBase AndroidPie
\variable QOperatingSystemVersion::AndroidPie
static constexpr QOperatingSystemVersionBase AndroidOreo
\variable QOperatingSystemVersion::AndroidOreo
static constexpr QOperatingSystemVersionBase OSXMavericks
\variable QOperatingSystemVersion::Windows11_23H2
static constexpr QOperatingSystemVersionBase MacOSMonterey
\variable QOperatingSystemVersion::MacOSMonterey
static constexpr QOperatingSystemVersionBase Windows7
\variable QOperatingSystemVersion::Windows7
static constexpr QOperatingSystemVersionBase MacOSVentura
\variable QOperatingSystemVersion::MacOSVentura
static constexpr QOperatingSystemVersionBase Windows10_1809
\variable QOperatingSystemVersion::Windows10_1809
static constexpr QOperatingSystemVersionBase AndroidJellyBean_MR1
\variable QOperatingSystemVersion::AndroidJellyBean_MR1
static constexpr QOperatingSystemVersionBase MacOSBigSur
\variable QOperatingSystemVersion::MacOSBigSur
static constexpr QOperatingSystemVersionBase AndroidLollipop
\variable QOperatingSystemVersion::AndroidLollipop
static constexpr QOperatingSystemVersionBase Windows8_1
\variable QOperatingSystemVersion::Windows8_1
static constexpr QOperatingSystemVersionBase Windows10_21H1
\variable QOperatingSystemVersion::Windows10_21H1
static constexpr QOperatingSystemVersionBase Windows11_22H2
\variable QOperatingSystemVersion::Windows11_22H2
static constexpr QOperatingSystemVersionBase Windows10_22H2
\variable QOperatingSystemVersion::Windows10_22H2
static constexpr QOperatingSystemVersionBase Android11
\variable QOperatingSystemVersion::Android11
static constexpr QOperatingSystemVersionBase Windows11
\variable QOperatingSystemVersion::Windows11
Combined button and popup list for selecting options.
static int compareVersionComponents(int lhs, int rhs) noexcept