mirror of
https://github.com/logos-co/logos-liblogos.git
synced 2026-08-27 12:51:10 +00:00
The Windows single-provider scheme makes liblogos_core.dll the one provider of the shared C++ runtime, and it names its inputs by CMake TARGET. logos-qt-sdk no longer carries an archive — the Qt host runtime moved to logos-qt-host — so $<TARGET_FILE:logos-qt-sdk::logos_qt_sdk> no longer resolves and the whole mechanism had to be repointed. More importantly, the old shape failed OPEN. The guard was if(WIN32 AND TARGET logos-protocol::... AND TARGET logos-qt-sdk::logos_qt_sdk) so a missing target did not error — the condition simply went false and the --whole-archive link, the nm scan and the generated .def were all skipped SILENTLY. The result is the split-brain this file exists to prevent: main_ui and ui-host each end up with their own TokenManager and every cross-module call is refused. The code already fails loudly when `nm` is missing, for exactly this reason; it had no equivalent guard for the target being absent. Now the target tests are a foreach + FATAL_ERROR inside if(WIN32), so a missing provider stops the configure instead of quietly restoring the split-brain. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>