termin-modules
termin-modules это runtime-слой для загрузки проектных модулей в termin.
Текущий объём:
- поиск дескрипторов
.moduleи.pymodule - сборка и загрузка C++ модулей
- импорт и выгрузка Python модулей
- единый
ModuleRuntimeAPI для C++ и Python
Основные части:
ModuleRuntime: orchestration, порядок зависимостей и состояние модулейCppModuleBackend: build command, загрузка shared library и вызовmodule_initPythonModuleBackend: управлениеsys.pathи импорт Python-пакетовModuleDescriptorParser: разбор дескрипторов черезnos::trent
Типовой сценарий:
- Создать
ModuleRuntime - Настроить
ModuleEnvironment - Зарегистрировать
CppModuleBackendиPythonModuleBackend - Вызвать
discover(project_root) - Вызвать
load_all()илиload_module(name)
Сборка в монорепозитории:
./build-and-install.shсобирает и устанавливаетtermin-modulesвместе с остальными пакетами./build-and-install-cpp.shсобирает C++-only вариант сTERMIN_MODULES_BUILD_PYTHON=OFF./build-and-install-bindings.shставит Python packagetermin-modules