new file mode 100644
@@ -0,0 +1,115 @@
+{
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "description": "Schema for bitbake-setup configuration files",
+ "type": "object",
+ "required": [
+ "description",
+ "bitbake-setup",
+ "version"
+ ],
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "Description of the bitbake-setup configuration file"
+ },
+ "sources": {
+ "$ref": "layers.schema.json#/properties/sources"
+ },
+ "bitbake-setup": {
+ "type": "object",
+ "description": "BitBake-setup configurations",
+ "required": [
+ "configurations"
+ ],
+ "properties": {
+ "configurations": {
+ "type": "array",
+ "minItems": 1,
+ "$anchor": "configurations",
+ "items": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Name of the configuration"
+ },
+ "description": {
+ "type": "string",
+ "description": "Human-readable description of the configuration"
+ },
+ "bb-layers": {
+ "type": "array",
+ "description": "List of BitBake layer paths to include, relative to the layers download directory",
+ "items": {
+ "type": "string"
+ }
+ },
+ "bb-layers-file-relative": {
+ "type": "array",
+ "description": "List of BitBake layers paths to include, relative to the directory with the configuration file",
+ "items": {
+ "type": "string"
+ }
+ },
+ "oe-template": {
+ "type": "string",
+ "description": "OE-template configuration"
+ },
+ "oe-fragments": {
+ "$anchor": "oe-fragments",
+ "type": "array",
+ "description": "List of BitBake configuration fragments to enable",
+ "items": {
+ "type": "string"
+ }
+ },
+ "oe-fragments-one-of": {
+ "type": "object",
+ "description": "Mutually exclusive bitbake configuration fragment",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "required": [
+ "description",
+ "options"
+ ],
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "Human-readable description of the fragment category"
+ },
+ "options": {
+ "$ref": "#oe-fragments"
+ }
+ },
+ "additionalProperties": false
+ }
+ },
+ "additionalProperties": false
+ },
+ "configurations": {
+ "$ref": "#configurations"
+ },
+ "bb-env-passthrough-additions": {
+ "type": "array",
+ "description": "List of environment variables to include in BB_ENV_PASSTHROUGH_ADDITIONS",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "version": {
+ "description": "The version of this document; currently '1.0'",
+ "enum": [
+ "1.0"
+ ]
+ }
+ },
+ "additionalProperties": false
+}
new file mode 100644
@@ -0,0 +1,73 @@
+{
+ "description": "OpenEmbedder Layer Setup Manifest",
+ "type": "object",
+ "additionalProperties": false,
+ "required": [
+ "version"
+ ],
+ "properties": {
+ "version": {
+ "description": "The version of this document; currently '1.0'",
+ "enum": ["1.0"]
+ },
+ "sources": {
+ "description": "The dict of layer sources",
+ "type": "object",
+ "patternProperties": { ".*" : {
+ "type": "object",
+ "description": "The upstream source from which a set of layers may be fetched",
+ "additionalProperties": false,
+ "properties": {
+ "path": {
+ "description": "The path where this layer source will be placed when fetching",
+ "type": "string"
+ },
+ "contains_this_file": {
+ "description": "Whether the directory with the layer source also contains this json description. Tools may want to skip the checkout of the source then.",
+ "type": "boolean"
+ },
+ "git-remote": {
+ "description": "A remote git source from which to fetch",
+ "type": "object",
+ "additionalProperties": false,
+ "required": [
+ "rev"
+ ],
+ "properties": {
+ "branch": {
+ "description": "The git branch to fetch (optional)",
+ "type": "string"
+ },
+ "rev": {
+ "description": "The git revision to checkout",
+ "type": "string"
+ },
+ "describe": {
+ "description": "The output of 'git describe' (human readable description of the revision using tags in revision history).",
+ "type": "string"
+ },
+ "remotes": {
+ "description": "The dict of git remotes to add to this repository",
+ "type": "object",
+ "patternProperties": { ".*" : {
+ "description": "A git remote",
+ "type": "object",
+ "addtionalProperties": false,
+ "required": [
+ "uri"
+ ],
+ "properties": {
+ "uri": {
+ "description": "The URI for the remote",
+ "type": "string"
+ }
+ }
+ }}
+ }
+ }
+ }
+ }
+ }
+ }}
+ }
+}