PTU5KAS/kas/schema-kas.json
Jan Kiszka 4f23045ce8 Add kconfiglib-based menu plugin
This uses the kconfiglib python module to implement simple interactive
configuration for complex layers with many kas options and even variable
input. See the menu.py documentation header for details on the Kconfig
format and its translation to kas.

Rather than using the limited menuconfig implementation of kconfiglib,
this comes with an own, python-newt based version. The permits smooth
integration in the workflow, e.g. to offer an option that directly
triggers a build after completing a configuration. And it comes with a
nicer layout.

Unfortunately, python-newt can't be fulfilled via pip. But it is
available as proper package via common distros. So warn if the package
is missing.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
2021-10-09 15:00:05 +02:00

239 lines
7.7 KiB
JSON

{
"type": "object",
"required": [
"header"
],
"additionalProperties": false,
"properties": {
"header": {
"type": "object",
"required": [
"version"
],
"additionalProperties": false,
"properties": {
"version": {
"oneOf": [
{
"type": "string",
"enum": [
"0.10"
]
},
{
"type": "integer"
}
]
},
"includes": {
"type": "array",
"items": {
"oneOf": [
{
"type": "string"
},
{
"type": "object",
"required": [
"repo",
"file"
],
"additionalProperties": false,
"properties": {
"repo": {
"type": "string"
},
"file": {
"type": "string"
}
}
}
]
}
}
}
},
"build_system": {
"type": "string",
"enum": [
"openembedded",
"oe",
"isar"
]
},
"defaults": {
"type": "object",
"additionalProperties": false,
"properties": {
"repos": {
"type": "object",
"additionalProperties": false,
"properties": {
"refspec": {
"type": "string"
},
"patches": {
"type": "object",
"additionalProperties": false,
"properties": {
"repo": {
"type": "string"
}
}
}
}
}
}
},
"machine": {
"type": "string"
},
"distro": {
"type": "string"
},
"env": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"target": {
"oneOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
},
"task": {
"type": "string"
},
"repos": {
"type": "object",
"additionalProperties": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"type": {
"type": "string"
},
"refspec": {
"type": "string"
},
"path": {
"type": "string"
},
"layers": {
"type": "object",
"additionalProperties": {
"oneOf": [
{
"type": "null"
},
{
"type": "integer"
},
{
"type": "boolean"
},
{
"type": "string"
}
]
}
},
"patches": {
"type": "object",
"additionalProperties": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"path"
],
"properties": {
"repo": {
"type": "string"
},
"path": {
"type": "string"
}
}
},
{
"type": "null"
}
]
}
}
}
},
{
"type": "null"
}
]
}
},
"bblayers_conf_header": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"local_conf_header": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"proxy_config": {
"type": "object",
"additionalProperties": false,
"properties": {
"http_proxy": {
"type": "string"
},
"https_proxy": {
"type": "string"
},
"ftp_proxy": {
"type": "string"
},
"no_proxy": {
"type": "string"
}
}
},
"menu_configuration": {
"type": "object",
"additionalProperties": {
"oneOf": [
{
"type": "boolean"
},
{
"type": "string"
},
{
"type": "integer"
}
]
}
}
}
}