Files
logos-capability-module/README.md
Dario Lipicar e675e9e3a9 migrate to logos-module-builder (#10)
* migrate to logos-module-builder

* add CI job
2026-05-07 16:36:38 -03:00

48 lines
1.7 KiB
Markdown

# Logos Capability Module
Coordinates permissions and capabilities between Logos modules.
Built with [`logos-module-builder`](https://github.com/logos-co/logos-module-builder). The implementation is a plain C++ class on top of `LogosProviderBase` (no `Q_OBJECT` / `Q_INVOKABLE` boilerplate), so all framework plumbing — Qt plugin glue, dispatch tables, packaging — is generated by the builder.
## Build
```bash
nix build # produces result/lib/capability_module_plugin.{dylib,so}
nix build .#lgx # builds the .lgx package
nix build .#unit-tests # builds the test binary
```
To enter a development shell:
```bash
nix develop
```
## Test
```bash
nix flake check # runs all checks
nix build .#checks.<system>.unit-tests -L # builds + runs tests
./result/bin/capability_module_tests # run the binary directly
./result/bin/capability_module_tests --filter requestModule # filter by name
```
## Layout
```
src/
├── capability_module_impl.{h,cpp} # Plain C++ impl (LogosProviderBase + LOGOS_METHOD)
└── capability_module_loader.h # Qt plugin loader (created by mkLogosModule)
tests/
├── CMakeLists.txt
├── main.cpp
└── test_capability_module.cpp
metadata.json # interface: provider; nix.* build config
flake.nix # ~13 lines, calls mkLogosModule
CMakeLists.txt # ~15 lines, calls logos_module()
```
## Dependencies
- [logos-module-builder](https://github.com/logos-co/logos-module-builder) — pulls in `logos-cpp-sdk`, `logos-module`, `logos-test-framework`, and Qt6 (Core + RemoteObjects).