Files
Dario LipicarandClaude Opus 4.7 2a029fb0b1 feat: dependency interfaces — test-interface-module-cpp verification module (#20)
* feat: test-interface-module-cpp — dependency-interface smoke test

Add a universal core module that declares a LOCAL basic_calc interface
(interfaces/basic_calc.h, a subset of test_basic_module_cpp's API) and binds
it to a module name at runtime via modules().bind_basic_calc(name), exercising
the bound wrapper's typed sync + event accessors plus the no-validation path.
Registered in flake.nix (modules + packages).

Requires logos-cpp-sdk#74, logos-module-builder#108, logos-plugin-qt#8.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* address review: make basic_calc.h valid C++ standalone

Include logos_module_context.h in the interface header so the logos_events
token (it expands to public) is defined — the header is now valid C++ on
its own, not only as generator input. (Copilot review, PR #20.)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* bump module-builder

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-05 21:07:24 -03:00

26 lines
983 B
JSON

{
"name": "test_interface_module_cpp",
"version": "1.0.0",
"type": "core",
"category": "testing",
"description": "Exercises dependency interfaces end-to-end: declares a local 'basic_calc' interface (a subset of test_basic_module_cpp's API), binds it to a module name chosen at runtime via modules().bind_basic_calc(name), and drives typed sync/event calls through the bound handle. test_basic_module_cpp is declared as a dependency so the host loads it and modules() is wired; the interface itself names no concrete module.",
"main": "test_interface_module_cpp_plugin",
"interface": "universal",
"dependencies": ["test_basic_module_cpp"],
"interface_dependencies": [
{ "name": "basic_calc", "file": "interfaces/basic_calc.h", "impl_class": "IBasicCalc" }
],
"nix": {
"packages": {
"build": [],
"runtime": ["nlohmann_json"]
},
"external_libraries": [],
"cmake": {
"find_packages": [],
"extra_sources": []
}
}
}