Дескрипторы
Сейчас termin-modules поддерживает два типа дескрипторов.
C++ модуль
{
"name": "cpp_demo",
"type": "cpp",
"build": {
"command": "cmake -S . -B build && cmake --build build",
"output": "build/libcpp_demo.so"
}
}
name: идентификатор модуля в runtimetype: должен бытьcppdependencies: необязательный список зависимостей на другие проектные модулиbuild.command: необязательная команда сборки, выполняется в директории дескриптораbuild.commandиbuild.outputмогут быть либо строкой, либо объектом с ключамиlinux/windows- внутри
build.commandиbuild.outputподдерживается подстановка${name} build.output: обязательный путь к артефакту; если путь относительный, он считается от директории дескриптораignore: необязательный флаг, позволяющий пропустить модуль
Пример с разными артефактами для Linux и Windows:
{
"name": "chrono_core",
"type": "cpp",
"build": {
"command": {
"linux": "cmake -B build -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release",
"windows": "cmake -B build -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release"
},
"output": {
"linux": "build/lib${name}.so",
"windows": "build/Release/${name}.dll"
}
}
}
Python модуль
{
"name": "python_demo",
"type": "python",
"dependencies": ["cpp_demo"],
"root": ".",
"packages": ["python_demo"]
}
name: идентификатор модуля в runtimetype: должен бытьpythondependencies: необязательный список зависимостей на другие проектные модулиroot: import root; если путь относительный, он считается от директории дескриптораpackages: список Python-пакетов для импортаrequirements: необязательный список внешних Python-зависимостейignore: необязательный флаг, позволяющий пропустить модуль