* feat: take the Qt host runtime from logos-qt-host, not logos-qt-sdk
LogosTest.cmake linked logos-qt-sdk::logos_qt_sdk for the host runtime a
module test needs — LogosAPI, LogosAPIProvider, the provider bases. B1 moved
that code to logos-plugin-qt, which exports it as logos-qt-host::logos_qt_host,
so name that target instead.
The root it comes from is picked from LOGOS_QT_HOST_ROOT, falling back to
LOGOS_QT_SDK_ROOT. The fallback is not decoration: every caller today reaches
this file through logos-module-builder, which passes only LOGOS_QT_SDK_ROOT,
and requiring the new variable would take every module's unit-tests check down
until that repo moves. Whichever root is chosen is reported by name in the
configure log, and the imported target is checked before it is linked — a
find_package that hands back no target now stops the configure instead of
deferring to a wall of undefined LogosAPI symbols.
logos-qt-sdk stays an input and stays on the include path when a caller
supplies both roots, because it still owns the Qt-typed headers that are NOT
the host runtime: logos_qt_lp_bridge.h and logos_qt_wire.h (generated consumer
wrappers include them by name) and logos_ui_plugin_context.h. It is ordered
after the host runtime's include dir so the five shared header names resolve
to qt-host.
Two things this repo never had are added so the repoint is verifiable here at
all: `checks.<sys>.example-tests` builds and runs examples/basic-module-test
through LogosTest.cmake on the qt-host path, and `example-tests-qt-sdk` does
the same on the fallback path so a change to one cannot quietly break the
other. Both were needed to find two latent breaks in nix/mkLogosModuleTests.nix
— it never passed CMAKE_MODULE_PATH, so `include(LogosTest)` could not resolve,
and its checkPhase drove ctest, which reports "No tests were found!!!" and
exits 0. The check phase now locates the test binaries itself and fails when
there are none.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* feat(b2b): LOGOS_QT_HOST_ROOT is the only host-runtime root
LogosTest.cmake accepted LOGOS_QT_SDK_ROOT as an alternative source of the Qt
host runtime, for callers that had not migrated. logos-qt-sdk stopped forwarding
those headers, so that branch now configures cleanly -- QT_HOST_INCLUDE is set,
find_package(logos-qt-sdk) resolves, the target imports -- and then dies much
later on "logos_api.h: No such file". It is deleted; a missing LOGOS_QT_HOST_ROOT
is a FATAL_ERROR that names logos-qt-sdk as explicitly NOT a substitute.
LOGOS_QT_SDK_ROOT keeps its other, real job: the Qt-typed consumer headers
logos-qt-sdk owns (logos_qt_lp_bridge.h, logos_qt_wire.h,
logos_ui_plugin_context.h). That block's layout probe moves off logos_api.h --
absent from both of that prefix's layouts now -- onto logos_qt_wire.h.
mkLogosModuleTests.nix makes logosQtHost a required argument instead of one half
of a two-way assert, and the flake drops the example-tests-qt-sdk check, which
existed to cover the pre-split path that no longer exists. logosQtSdk is passed
alongside logosQtHost in the remaining check so the Qt-typed headers stay
covered.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* chore(deps): rev-pin the B4 chain at the revs that are actually pushed
The lock this branch carried named logos-plugin-qt 8ccb1fc, which is a stale
commit on feat/sdk-codegen-b3-d11 and an ancestor of NEITHER b4 branch, so the
qt-host this repo's LogosTest.cmake links predated the windows-target work
every other consumer in the chain has moved to. The other three inputs were
worse than stale: their urls tracked master, and the revs beside them were only
ever right by accident.
All four are now rev-pinned in the url, because none of them is on a master:
logos-protocol c8bab12 feat/per-client-token-store (contains e6d5b57)
logos-cpp-sdk a04b278 feat/sdk-codegen-b3-d11 (contains e3744fb8)
logos-plugin-qt cc24fa1 feat/b4-qt-host-windows-target (contains 8846fc5)
logos-qt-sdk 8a06b87 feat/sdk-codegen-b3-d11 (contains c6be61d)
Every one is a fast-forward from its own master, so nothing is dropped, and
each is the rev logos-qt-sdk and logos-view-module-runtime already pin — which
is the point of cc24fa1 in particular. logos-qt-sdk pins plugin-qt in its own
url and this flake does not redirect it, so a different root pin would put two
logos-qt-host prefixes on one link line. They resolve to a single store path
(v780ipqq), verified by evaluating both instances.
checks.aarch64-darwin.example-tests builds and its six tests run and pass.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* chore(deps): track master for protocol, cpp-sdk, plugin-qt and qt-sdk
All four upstream PRs merged (#59, #138, #19, #33), so the rev pins that bridged
to them are retired and their rationales rewritten.
The logos-plugin-qt `follows` on the logos-qt-sdk input STAYS, and is now the
only thing holding the property the rev pin used to hold with it: qt-sdk's
default package propagates whatever logos-qt-host it resolved, so without the
follows the example tests could see two logos-qt-host store paths. Verified: the
example-tests closure contains exactly ONE logos-qt-host derivation.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
* Retarget LogosTest.cmake to the qt-split SDK stack
The test harness linked logos-cpp-sdk::logos_sdk, which no longer exists
after the Qt split: the Qt developer layer moved to logos-qt-sdk and the
transport/consumer core into the logos-protocol library. LogosTest.cmake
now resolves three roots (LOGOS_CPP_SDK_ROOT via logos_module_context.h,
plus LOGOS_QT_SDK_ROOT / LOGOS_PROTOCOL_ROOT), takes mock-transport
headers from logos-protocol, links logos-qt-sdk::logos_qt_sdk +
logos-cpp-sdk::logos_headers, and in source layouts compiles the qt-sdk
sources while linking the protocol library.
nix/mkLogosModuleTests.nix gains required logosQtSdk/logosProtocol args;
the devShell exports the new roots. flake.lock pins the extraction-chain
branch revs (temporary — re-lock against masters when the chain merges).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* lock: qt-split chain fully merged — pins advance to masters (cpp-sdk 87abcd8, protocol 9de4165, qt-sdk 8d0e5d9)
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>