Skip to content

feat: IComponent UI plugin build — drop standalone complexity#71

Merged
jimmy-claw merged 5 commits intomainfrom
jimmy/icomponent-ui
Mar 13, 2026
Merged

feat: IComponent UI plugin build — drop standalone complexity#71
jimmy-claw merged 5 commits intomainfrom
jimmy/icomponent-ui

Conversation

@jimmy-claw
Copy link
Copy Markdown
Owner

Summary

Builds Scala as a proper Logos Core IComponent UI plugin compatible with logos-app (Basecamp).

Changes

Q_PLUGIN_METADATA conflict fix
Three classes (LogosCalendar, ScalaPlugin, ScalaUIComponent) all had Q_PLUGIN_METADATA, causing qt_plugin_query_metadata_v2() redefinition at link time. Fixed by guarding calendar_module.h and scala_plugin.h with #ifndef SCALA_UI_BUILD.

ScalaUIComponent simplified
Now uses LogosCalendar directly instead of the ScalaPlugin wrapper. initLogos() call guarded with #ifdef LOGOS_CORE_AVAILABLE. Removed scala_plugin.cpp from the UI build target.

run-app Makefile target added
Stages logos-app-poc from nix store with libscala_ui.so as plugins/main_ui.so, sets up Qt env vars, and launches.

Verification

  • make build-ui-plugin produces build-ui-plugin/libscala_ui.so (3.1MB)
  • nm -D confirms exactly one qt_plugin_query_metadata_v2 and qt_plugin_instance
  • IID com.logos.component.IComponent embedded in the binary

Jimmy Claw and others added 5 commits March 13, 2026 15:15
Guard Q_PLUGIN_METADATA in calendar_module.h and scala_plugin.h with
#ifndef SCALA_UI_BUILD so only ScalaUIComponent exports the plugin entry
point when building libscala_ui.so.

- Use LogosCalendar directly in scala_ui_component.cpp (drop ScalaPlugin wrapper)
- Remove scala_plugin.cpp from BUILD_UI_PLUGIN sources in CMakeLists.txt
- Add LOGOS_CORE_AVAILABLE guard around initLogos() call
- Add run-app Makefile target to launch logos-app-poc with scala_ui plugin

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds logos-cpp-sdk and logos-liblogos as flake inputs and exposes a
ui-plugin package that builds libscala_ui.so via cmake with
BUILD_UI_PLUGIN=ON, using the workspace Qt/SDK dependencies.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…i .so

The BUILD_UI_PLUGIN target listed qml/scala_ui.qrc in sources but
CMAKE_AUTORCC was not enabled, so the .qrc was never processed by rcc —
resulting in a blank white UI when loading qrc:/scala/CalendarView.qml.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@jimmy-claw jimmy-claw merged commit b60c844 into main Mar 13, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant