Skip to content

Commit ed42b48

Browse files
Apply clang-format and add MinGW CI runner
1 parent c042786 commit ed42b48

File tree

4 files changed

+149
-115
lines changed

4 files changed

+149
-115
lines changed

.github/workflows/github-cxx-qt-tests.yml

Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -410,6 +410,26 @@ jobs:
410410
rustc_wrapper: sccache
411411
build_type: Debug
412412

413+
- name: Windows 2022 (MinGW) Qt6
414+
os: windows-2022
415+
qt_version: 6
416+
aqt_version: '6.8.0'
417+
aqt_arch: 'win64_mingw'
418+
aqt_host: 'windows'
419+
cores: 4
420+
ctest_args: --exclude-regex '^(cargo_clippy|cargo_doc|cargo_build_rerun|.*valgrind)$'
421+
exe_suffix: .exe
422+
qt_qpa_platform: windows
423+
compiler_cache_path: C:\Users\runneradmin\AppData\Local\Mozilla\sccache\cache
424+
sccache_log_path: C:\Users\runneradmin\AppData\Local\Mozilla\sccache\log.txt
425+
clang_format_path: C:\Users\runneradmin\AppData\Roaming\Python\Python312\Scripts\clang-format.exe
426+
cargo_dir: C:\Users\runneradmin\.cargo
427+
cc: gcc
428+
cxx: g++
429+
rustc_wrapper: sccache
430+
build_type: Release
431+
mingw: true
432+
413433
runs-on: ${{ matrix.os }}
414434
name: ${{ matrix.name }}
415435
env:
@@ -530,11 +550,23 @@ jobs:
530550
# automake is needed for building libicu which is a dependency of Qt
531551
run: brew install automake autoconf-archive ninja
532552

533-
# Required for CMake to find Ninja
534-
- name: "[Windows] Set up MSVC Developer Command Prompt"
535-
if: runner.os == 'Windows'
553+
# Required for CMake to find Ninja (MSVC only)
554+
- name: "[Windows MSVC] Set up MSVC Developer Command Prompt"
555+
if: runner.os == 'Windows' && !matrix.mingw
536556
uses: seanmiddleditch/gha-setup-vsdevenv@v5
537557

558+
- name: "[Windows MinGW] Install MinGW and Ninja"
559+
if: matrix.mingw
560+
run: choco install mingw ninja -y
561+
562+
- name: "[Windows MinGW] Set up Rust GNU toolchain"
563+
if: matrix.mingw
564+
run: |
565+
rustup toolchain install 1.77.2-x86_64-pc-windows-gnu
566+
rustup toolchain install 1.78.0-x86_64-pc-windows-gnu --component clippy
567+
rustup default 1.77.2-x86_64-pc-windows-gnu
568+
rustup component add rustfmt
569+
538570
# Enable tmate debugging of manually-triggered workflows if the input option was provided
539571
- name: Setup tmate session
540572
if: ${{ github.event_name == 'workflow_dispatch' && inputs.tmate_debugging }}

crates/cxx-qt-lib/src/core/init.cpp

Lines changed: 94 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -13,105 +13,105 @@
1313

1414
#include <QtCore/QCoreApplication>
1515

16-
static void do_register_core_types()
16+
static void
17+
do_register_core_types()
1718
{
18-
qRegisterMetaType<::QHash_i32_QByteArray>("QHash_i32_QByteArray");
19-
// Ensure that QHash<QString, QVariant> (aka QVariantHash) is registered
20-
// otherwise it cannot be used in QML
21-
qRegisterMetaType<::QHash_QString_QVariant>("QHash_QString_QVariant");
19+
qRegisterMetaType<::QHash_i32_QByteArray>("QHash_i32_QByteArray");
20+
// Ensure that QHash<QString, QVariant> (aka QVariantHash) is registered
21+
// otherwise it cannot be used in QML
22+
qRegisterMetaType<::QHash_QString_QVariant>("QHash_QString_QVariant");
2223

23-
qRegisterMetaType<::QList_bool>("QList_bool");
24-
qRegisterMetaType<::QList_f32>("QList_f32");
25-
qRegisterMetaType<::QList_f64>("QList_f64");
26-
qRegisterMetaType<::QList_i8>("QList_i8");
27-
qRegisterMetaType<::QList_i16>("QList_i16");
28-
qRegisterMetaType<::QList_i32>("QList_i32");
29-
qRegisterMetaType<::QList_i64>("QList_i64");
30-
qRegisterMetaType<::QList_QByteArray>("QList_QByteArray");
31-
qRegisterMetaType<::QList_QDate>("QList_QDate");
32-
qRegisterMetaType<::QList_QDateTime>("QList_QDateTime");
33-
qRegisterMetaType<::QList_QLine>("QList_QLine");
34-
qRegisterMetaType<::QList_QLineF>("QList_QLineF");
35-
qRegisterMetaType<::QList_QMargins>("QList_QMargins");
36-
qRegisterMetaType<::QList_QMarginsF>("QList_QMarginsF");
37-
qRegisterMetaType<::QList_QPersistentModelIndex>(
38-
"QList_QPersistentModelIndex");
39-
qRegisterMetaType<::QList_QPoint>("QList_QPoint");
40-
qRegisterMetaType<::QList_QPointF>("QList_QPointF");
41-
qRegisterMetaType<::QList_QRect>("QList_QRect");
42-
qRegisterMetaType<::QList_QRectF>("QList_QRectF");
43-
qRegisterMetaType<::QList_QSize>("QList_QSize");
44-
qRegisterMetaType<::QList_QSizeF>("QList_QSizeF");
45-
qRegisterMetaType<::QList_QString>("QList_QString");
46-
qRegisterMetaType<::QList_QTime>("QList_QTime");
47-
qRegisterMetaType<::QList_QUrl>("QList_QUrl");
48-
qRegisterMetaType<::QList_QUuid>("QList_QUuid");
49-
// Ensure that QList<QVariant> (aka QVariantList) is registered
50-
// otherwise it cannot be used in QML
51-
qRegisterMetaType<::QList_QVariant>("QList_QVariant");
52-
qRegisterMetaType<::QList_u8>("QList_u8");
53-
qRegisterMetaType<::QList_u16>("QList_u16");
54-
qRegisterMetaType<::QList_u32>("QList_u32");
55-
qRegisterMetaType<::QList_u64>("QList_u64");
24+
qRegisterMetaType<::QList_bool>("QList_bool");
25+
qRegisterMetaType<::QList_f32>("QList_f32");
26+
qRegisterMetaType<::QList_f64>("QList_f64");
27+
qRegisterMetaType<::QList_i8>("QList_i8");
28+
qRegisterMetaType<::QList_i16>("QList_i16");
29+
qRegisterMetaType<::QList_i32>("QList_i32");
30+
qRegisterMetaType<::QList_i64>("QList_i64");
31+
qRegisterMetaType<::QList_QByteArray>("QList_QByteArray");
32+
qRegisterMetaType<::QList_QDate>("QList_QDate");
33+
qRegisterMetaType<::QList_QDateTime>("QList_QDateTime");
34+
qRegisterMetaType<::QList_QLine>("QList_QLine");
35+
qRegisterMetaType<::QList_QLineF>("QList_QLineF");
36+
qRegisterMetaType<::QList_QMargins>("QList_QMargins");
37+
qRegisterMetaType<::QList_QMarginsF>("QList_QMarginsF");
38+
qRegisterMetaType<::QList_QPersistentModelIndex>(
39+
"QList_QPersistentModelIndex");
40+
qRegisterMetaType<::QList_QPoint>("QList_QPoint");
41+
qRegisterMetaType<::QList_QPointF>("QList_QPointF");
42+
qRegisterMetaType<::QList_QRect>("QList_QRect");
43+
qRegisterMetaType<::QList_QRectF>("QList_QRectF");
44+
qRegisterMetaType<::QList_QSize>("QList_QSize");
45+
qRegisterMetaType<::QList_QSizeF>("QList_QSizeF");
46+
qRegisterMetaType<::QList_QString>("QList_QString");
47+
qRegisterMetaType<::QList_QTime>("QList_QTime");
48+
qRegisterMetaType<::QList_QUrl>("QList_QUrl");
49+
qRegisterMetaType<::QList_QUuid>("QList_QUuid");
50+
// Ensure that QList<QVariant> (aka QVariantList) is registered
51+
// otherwise it cannot be used in QML
52+
qRegisterMetaType<::QList_QVariant>("QList_QVariant");
53+
qRegisterMetaType<::QList_u8>("QList_u8");
54+
qRegisterMetaType<::QList_u16>("QList_u16");
55+
qRegisterMetaType<::QList_u32>("QList_u32");
56+
qRegisterMetaType<::QList_u64>("QList_u64");
5657

57-
// Ensure that QMap<QString, QVariant> (aka QVariantMap) is registered
58-
// otherwise it cannot be used in QML
59-
qRegisterMetaType<::QMap_QString_QVariant>("QMap_QString_QVariant");
58+
// Ensure that QMap<QString, QVariant> (aka QVariantMap) is registered
59+
// otherwise it cannot be used in QML
60+
qRegisterMetaType<::QMap_QString_QVariant>("QMap_QString_QVariant");
6061

61-
qRegisterMetaType<::QSet_bool>("QSet_bool");
62-
qRegisterMetaType<::QSet_f32>("QSet_f32");
63-
qRegisterMetaType<::QSet_f64>("QSet_f64");
64-
qRegisterMetaType<::QSet_i8>("QSet_i8");
65-
qRegisterMetaType<::QSet_i16>("QSet_i16");
66-
qRegisterMetaType<::QSet_i32>("QSet_i32");
67-
qRegisterMetaType<::QSet_i64>("QSet_i64");
68-
qRegisterMetaType<::QSet_QByteArray>("QSet_QByteArray");
69-
qRegisterMetaType<::QSet_QDate>("QSet_QDate");
70-
qRegisterMetaType<::QSet_QDateTime>("QSet_QDateTime");
71-
qRegisterMetaType<::QSet_QPersistentModelIndex>(
72-
"QSet_QPersistentModelIndex");
73-
qRegisterMetaType<::QSet_QString>("QSet_QString");
74-
qRegisterMetaType<::QSet_QTime>("QSet_QTime");
75-
qRegisterMetaType<::QSet_QUrl>("QSet_QUrl");
76-
qRegisterMetaType<::QSet_QUuid>("QSet_QUuid");
77-
qRegisterMetaType<::QSet_u8>("QSet_u8");
78-
qRegisterMetaType<::QSet_u16>("QSet_u16");
79-
qRegisterMetaType<::QSet_u32>("QSet_u32");
80-
qRegisterMetaType<::QSet_u64>("QSet_u64");
62+
qRegisterMetaType<::QSet_bool>("QSet_bool");
63+
qRegisterMetaType<::QSet_f32>("QSet_f32");
64+
qRegisterMetaType<::QSet_f64>("QSet_f64");
65+
qRegisterMetaType<::QSet_i8>("QSet_i8");
66+
qRegisterMetaType<::QSet_i16>("QSet_i16");
67+
qRegisterMetaType<::QSet_i32>("QSet_i32");
68+
qRegisterMetaType<::QSet_i64>("QSet_i64");
69+
qRegisterMetaType<::QSet_QByteArray>("QSet_QByteArray");
70+
qRegisterMetaType<::QSet_QDate>("QSet_QDate");
71+
qRegisterMetaType<::QSet_QDateTime>("QSet_QDateTime");
72+
qRegisterMetaType<::QSet_QPersistentModelIndex>("QSet_QPersistentModelIndex");
73+
qRegisterMetaType<::QSet_QString>("QSet_QString");
74+
qRegisterMetaType<::QSet_QTime>("QSet_QTime");
75+
qRegisterMetaType<::QSet_QUrl>("QSet_QUrl");
76+
qRegisterMetaType<::QSet_QUuid>("QSet_QUuid");
77+
qRegisterMetaType<::QSet_u8>("QSet_u8");
78+
qRegisterMetaType<::QSet_u16>("QSet_u16");
79+
qRegisterMetaType<::QSet_u32>("QSet_u32");
80+
qRegisterMetaType<::QSet_u64>("QSet_u64");
8181

82-
qRegisterMetaType<::QVector_bool>("QVector_bool");
83-
qRegisterMetaType<::QVector_f32>("QVector_f32");
84-
qRegisterMetaType<::QVector_f64>("QVector_f64");
85-
qRegisterMetaType<::QVector_i8>("QVector_i8");
86-
qRegisterMetaType<::QVector_i16>("QVector_i16");
87-
qRegisterMetaType<::QVector_i32>("QVector_i32");
88-
qRegisterMetaType<::QVector_i64>("QVector_i64");
89-
qRegisterMetaType<::QVector_QByteArray>("QVector_QByteArray");
90-
qRegisterMetaType<::QVector_QDate>("QVector_QDate");
91-
qRegisterMetaType<::QVector_QDateTime>("QVector_QDateTime");
92-
qRegisterMetaType<::QVector_QLine>("QVector_QLine");
93-
qRegisterMetaType<::QVector_QLineF>("QVector_QLineF");
94-
qRegisterMetaType<::QVector_QMargins>("QVector_QMargins");
95-
qRegisterMetaType<::QVector_QMarginsF>("QVector_QMarginsF");
96-
qRegisterMetaType<::QVector_QPersistentModelIndex>(
97-
"QVector_QPersistentModelIndex");
98-
qRegisterMetaType<::QVector_QPoint>("QVector_QPoint");
99-
qRegisterMetaType<::QVector_QPointF>("QVector_QPointF");
100-
qRegisterMetaType<::QVector_QRect>("QVector_QRect");
101-
qRegisterMetaType<::QVector_QRectF>("QVector_QRectF");
102-
qRegisterMetaType<::QVector_QSize>("QVector_QSize");
103-
qRegisterMetaType<::QVector_QSizeF>("QVector_QSizeF");
104-
qRegisterMetaType<::QVector_QString>("QVector_QString");
105-
qRegisterMetaType<::QVector_QTime>("QVector_QTime");
106-
qRegisterMetaType<::QVector_QUrl>("QVector_QUrl");
107-
qRegisterMetaType<::QVector_QUuid>("QVector_QUuid");
108-
// Ensure that QVector<QVariant> (aka QVariantList) is registered
109-
// otherwise it cannot be used in QML
110-
qRegisterMetaType<::QVector_QVariant>("QVector_QVariant");
111-
qRegisterMetaType<::QVector_u8>("QVector_u8");
112-
qRegisterMetaType<::QVector_u16>("QVector_u16");
113-
qRegisterMetaType<::QVector_u32>("QVector_u32");
114-
qRegisterMetaType<::QVector_u64>("QVector_u64");
82+
qRegisterMetaType<::QVector_bool>("QVector_bool");
83+
qRegisterMetaType<::QVector_f32>("QVector_f32");
84+
qRegisterMetaType<::QVector_f64>("QVector_f64");
85+
qRegisterMetaType<::QVector_i8>("QVector_i8");
86+
qRegisterMetaType<::QVector_i16>("QVector_i16");
87+
qRegisterMetaType<::QVector_i32>("QVector_i32");
88+
qRegisterMetaType<::QVector_i64>("QVector_i64");
89+
qRegisterMetaType<::QVector_QByteArray>("QVector_QByteArray");
90+
qRegisterMetaType<::QVector_QDate>("QVector_QDate");
91+
qRegisterMetaType<::QVector_QDateTime>("QVector_QDateTime");
92+
qRegisterMetaType<::QVector_QLine>("QVector_QLine");
93+
qRegisterMetaType<::QVector_QLineF>("QVector_QLineF");
94+
qRegisterMetaType<::QVector_QMargins>("QVector_QMargins");
95+
qRegisterMetaType<::QVector_QMarginsF>("QVector_QMarginsF");
96+
qRegisterMetaType<::QVector_QPersistentModelIndex>(
97+
"QVector_QPersistentModelIndex");
98+
qRegisterMetaType<::QVector_QPoint>("QVector_QPoint");
99+
qRegisterMetaType<::QVector_QPointF>("QVector_QPointF");
100+
qRegisterMetaType<::QVector_QRect>("QVector_QRect");
101+
qRegisterMetaType<::QVector_QRectF>("QVector_QRectF");
102+
qRegisterMetaType<::QVector_QSize>("QVector_QSize");
103+
qRegisterMetaType<::QVector_QSizeF>("QVector_QSizeF");
104+
qRegisterMetaType<::QVector_QString>("QVector_QString");
105+
qRegisterMetaType<::QVector_QTime>("QVector_QTime");
106+
qRegisterMetaType<::QVector_QUrl>("QVector_QUrl");
107+
qRegisterMetaType<::QVector_QUuid>("QVector_QUuid");
108+
// Ensure that QVector<QVariant> (aka QVariantList) is registered
109+
// otherwise it cannot be used in QML
110+
qRegisterMetaType<::QVector_QVariant>("QVector_QVariant");
111+
qRegisterMetaType<::QVector_u8>("QVector_u8");
112+
qRegisterMetaType<::QVector_u16>("QVector_u16");
113+
qRegisterMetaType<::QVector_u32>("QVector_u32");
114+
qRegisterMetaType<::QVector_u64>("QVector_u64");
115115
}
116116

117117
// Use Q_COREAPP_STARTUP_FUNCTION to defer registration until QCoreApplication

crates/cxx-qt-lib/src/gui/init.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,11 @@
1010

1111
#include <QtCore/QCoreApplication>
1212

13-
static void do_register_gui_types()
13+
static void
14+
do_register_gui_types()
1415
{
15-
qRegisterMetaType<::QList_QColor>("QList_QColor");
16-
qRegisterMetaType<::QVector_QColor>("QVector_QColor");
16+
qRegisterMetaType<::QList_QColor>("QList_QColor");
17+
qRegisterMetaType<::QVector_QColor>("QVector_QColor");
1718
}
1819

1920
// Use Q_COREAPP_STARTUP_FUNCTION to defer registration until QCoreApplication

crates/cxx-qt/src/init.cpp

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,22 +14,23 @@
1414
#include <QtCore/QMetaType>
1515
#include <cstdint>
1616

17-
static void do_register_cxx_qt_core_types()
17+
static void
18+
do_register_cxx_qt_core_types()
1819
{
19-
// If we are using Qt 5 then register std numbers as a type for use in QML.
20-
//
21-
// See also:
22-
// https://github.com/rust-lang/rust/issues/108081
23-
// https://github.com/KDAB/cxx-qt/pull/598
24-
qRegisterMetaType<::std::int8_t>("::std::int8_t");
25-
qRegisterMetaType<::std::int16_t>("::std::int16_t");
26-
qRegisterMetaType<::std::int32_t>("::std::int32_t");
27-
qRegisterMetaType<::std::int64_t>("::std::int64_t");
28-
29-
qRegisterMetaType<::std::uint8_t>("::std::uint8_t");
30-
qRegisterMetaType<::std::uint16_t>("::std::uint16_t");
31-
qRegisterMetaType<::std::uint32_t>("::std::uint32_t");
32-
qRegisterMetaType<::std::uint64_t>("::std::uint64_t");
20+
// If we are using Qt 5 then register std numbers as a type for use in QML.
21+
//
22+
// See also:
23+
// https://github.com/rust-lang/rust/issues/108081
24+
// https://github.com/KDAB/cxx-qt/pull/598
25+
qRegisterMetaType<::std::int8_t>("::std::int8_t");
26+
qRegisterMetaType<::std::int16_t>("::std::int16_t");
27+
qRegisterMetaType<::std::int32_t>("::std::int32_t");
28+
qRegisterMetaType<::std::int64_t>("::std::int64_t");
29+
30+
qRegisterMetaType<::std::uint8_t>("::std::uint8_t");
31+
qRegisterMetaType<::std::uint16_t>("::std::uint16_t");
32+
qRegisterMetaType<::std::uint32_t>("::std::uint32_t");
33+
qRegisterMetaType<::std::uint64_t>("::std::uint64_t");
3334
}
3435

3536
// Use Q_COREAPP_STARTUP_FUNCTION to defer registration until QCoreApplication

0 commit comments

Comments
 (0)