Skip to content

Commit cc2a59e

Browse files
committed
Review: the Qt fixtures and README state what mcpp delivers for the runtime contract on each host (clang on the MSVC ABI links the static CRT); the installation stamp comes from a prepare action
1 parent f3fe5da commit cc2a59e

4 files changed

Lines changed: 11 additions & 9 deletions

File tree

‎.github/scripts/check-deps-and-qt.sh‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ fail() { echo "FAIL: $*"; exit 1; }
1717
is_windows() { case "$(uname -s)" in MINGW*|MSYS*|CYGWIN*) return 0 ;; *) return 1 ;; esac; }
1818
is_macos() { [ "$(uname -s)" = Darwin ]; }
1919

20-
# The stamp an installation action leaves: the file mcpp writes when a `check`
20+
# The stamp an installation action leaves: the file mcpp writes when a `prepare`
2121
# action's command succeeds. Its modification time is the criterion for "the
2222
# installation did not run again".
2323
stamp_of() { find target -path "*$1*" -name '*.stamp' | head -1; }

‎README.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -995,8 +995,8 @@ On Linux, Qt's official QtCore links glib, zstd and zlib and the shared
995995
declares their `lib/` directories as runtime search directories; the program
996996
states `[build] cxx_runtime = "toolchain-coupled"` (mcpp's docs/20), so the
997997
process has one C++ runtime. The statement is project-wide because mcpp reads a
998-
`[target.<triple>]` table only when a target is named; under MSVC it keeps
999-
`/MD`, and on macOS mcpp keeps the default and says so. Modules that load QtGui are not
998+
`[target.<triple>]` table only when a target is named (mcpp#704). On macOS and
999+
under clang on the MSVC ABI mcpp reports the contract it delivers instead. Modules that load QtGui are not
10001000
served on Linux: QtGui loads `libdbus-1.so.3`, which the ecosystem does not
10011001
publish, and mcpp's runtime closure check refuses the program. On macOS the
10021002
modules are frameworks under `lib/`: the rule compiles with `-F<root>/lib` and

‎tests/qt-consumer/mcpp.toml‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,10 @@ plugins = { path = "../..", features = ["rules-qt-xim"], host-module = true }
3434
# Qt's Linux libraries load the shared libstdc++ (`libstdc++.so.6`), so the
3535
# program uses the toolchain's shared C++ runtime rather than embedding a second
3636
# one (mcpp's docs/20). The statement is project-wide because mcpp reads a
37-
# `[target.<triple>]` table only when a target is named. On Windows it keeps
38-
# `/MD`, which Qt's MSVC build uses, and stages the toolset's runtime DLLs; on
39-
# macOS mcpp reports that it keeps the default.
37+
# `[target.<triple>]` table only when a target is named (mcpp#704). Elsewhere
38+
# mcpp reports what it delivers instead: on macOS the default, and under clang
39+
# on the MSVC ABI the static CRT; a PE image resolves its imports per DLL, so
40+
# Qt's DLLs keep their own CRT.
4041
cxx_runtime = "toolchain-coupled"
4142
sources = ["src/*.cpp", "res/*.qrc", "i18n/*.ts"]
4243

‎tests/qt-widgets-consumer/mcpp.toml‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,10 @@ plugins = { path = "../..", features = ["rules-qt-xim"], host-module = true }
2828
# Qt's Linux libraries load the shared libstdc++ (`libstdc++.so.6`), so the
2929
# program uses the toolchain's shared C++ runtime rather than embedding a second
3030
# one (mcpp's docs/20). The statement is project-wide because mcpp reads a
31-
# `[target.<triple>]` table only when a target is named. On Windows it keeps
32-
# `/MD`, which Qt's MSVC build uses, and stages the toolset's runtime DLLs; on
33-
# macOS mcpp reports that it keeps the default.
31+
# `[target.<triple>]` table only when a target is named (mcpp#704). Elsewhere
32+
# mcpp reports what it delivers instead: on macOS the default, and under clang
33+
# on the MSVC ABI the static CRT; a PE image resolves its imports per DLL, so
34+
# Qt's DLLs keep their own CRT.
3435
cxx_runtime = "toolchain-coupled"
3536
sources = ["src/*.cpp", "ui/*.ui"]
3637

0 commit comments

Comments
 (0)