| { |
| "description": "Schema for a build-generated SDK manifest", |
| "type": "object", |
| "properties": { |
| "atoms": { |
| "description": "The set of all atoms in the current manifest, forming a complete dependency graph", |
| "type": "array", |
| "items": { |
| "$ref": "#/definitions/atom" |
| } |
| }, |
| "ids": { |
| "description": "IDs of the main atoms in this manifest (as opposed to dependencies)", |
| "type": "array", |
| "items": { |
| "$ref": "#/definitions/atomId" |
| } |
| }, |
| "meta": { |
| "description": "A collection of metadata about the SDK", |
| "$ref": "#/definitions/sdkMetadata" |
| } |
| }, |
| "required": [ |
| "atoms", |
| "ids", |
| "meta" |
| ], |
| "additionalProperties": false, |
| "definitions": { |
| "atomId": { |
| "description": "Unique identifier for an atom", |
| "type": "object", |
| "properties": { |
| "domain": { |
| "description": "The group of atoms this atom belongs to", |
| "type": "string", |
| "enum": [ |
| "cpp", |
| "dart", |
| "exe", |
| "fidl", |
| "image" |
| ] |
| }, |
| "name": { |
| "description": "The name of this atom, unique within its domain", |
| "type": "string" |
| } |
| }, |
| "required": [ |
| "domain", |
| "name" |
| ], |
| "additionalProperties": false |
| }, |
| "atom": { |
| "description": "An SDK artifact", |
| "type": "object", |
| "properties": { |
| "id": { |
| "description": "The atom's unique identifier", |
| "$ref": "#/definitions/atomId" |
| }, |
| "gn-label": { |
| "description": "Label of the GN target which generated the atom", |
| "type": "string" |
| }, |
| "category": { |
| "description": "Publication level of this atom", |
| "type": "string", |
| "enum": [ |
| "excluded", |
| "experimental", |
| "internal", |
| "partner", |
| "public" |
| ] |
| }, |
| "files": { |
| "description": "The files making up the atom", |
| "type": "array", |
| "items": { |
| "$ref": "#/definitions/atomFile" |
| } |
| }, |
| "deps": { |
| "description": "The ids of the atoms this atom directly depends on", |
| "type": "array", |
| "items": { |
| "$ref": "#/definitions/atomId" |
| } |
| }, |
| "package-deps": { |
| "description": "The ids of the atoms this atom needs at runtime", |
| "type": "array", |
| "items": { |
| "$ref": "#/definitions/atomId" |
| } |
| }, |
| "tags": { |
| "description": "A collection of potentially domain-specific metadata", |
| "oneOf": [ |
| { |
| "$ref": "#/definitions/cppTags" |
| }, |
| { |
| "$ref": "#/definitions/dartTags" |
| }, |
| { |
| "$ref": "#/definitions/exeTags" |
| }, |
| { |
| "$ref": "#/definitions/fidlTags" |
| }, |
| { |
| "$ref": "#/definitions/imageTags" |
| } |
| ] |
| } |
| }, |
| "required": [ |
| "category", |
| "deps", |
| "files", |
| "id", |
| "tags", |
| "gn-label", |
| "package-deps" |
| ], |
| "additionalProperties": false |
| }, |
| "atomFile": { |
| "description": "Description of a file pertaining to an atom", |
| "type": "object", |
| "properties": { |
| "source": { |
| "description": "Path to the source file", |
| "type": "string" |
| }, |
| "destination": { |
| "description": "Destination path of the file relative to the root of the atom", |
| "type": "string" |
| }, |
| "packaged": { |
| "description": "Whether this file should be included in a Fuchsia package containing this atom", |
| "type": "boolean" |
| } |
| }, |
| "required": [ |
| "source", |
| "destination", |
| "packaged" |
| ], |
| "additionalProperties": false |
| }, |
| "sdkMetadata": { |
| "description": "Additional information about an SDK", |
| "type": "object", |
| "properties": { |
| "target-arch": { |
| "description": "The architecture for target binaries referenced in this manifest, expressed as a compiler triple", |
| "type": "string" |
| }, |
| "host-arch": { |
| "description": "The architecture for host binaries referenced in this manifest, expressed as a compiler triple", |
| "type": "string" |
| } |
| }, |
| "required": [ |
| "host-arch", |
| "target-arch" |
| ], |
| "additionalProperties": false |
| }, |
| "cppTags": { |
| "description": "Tag definitions for the 'cpp' domain", |
| "type": "object", |
| "properties": { |
| "domain": { |
| "description": "Marker for this type of tags", |
| "type": "string", |
| "enum": [ |
| "cpp" |
| ] |
| }, |
| "type": { |
| "description": "The type of C/C++ artifact represented by this atom", |
| "type": "string", |
| "enum": [ |
| "compiled_shared", |
| "compiled_static", |
| "sources", |
| "sysroot" |
| ] |
| }, |
| "arch": { |
| "description": "Architecture for prebuilt types", |
| "$ref": "#/definitions/prebuiltArch" |
| } |
| }, |
| "required": [ |
| "domain", |
| "type" |
| ], |
| "additionalProperties": false |
| }, |
| "dartTags": { |
| "description": "Tag definitions for the 'dart' domain", |
| "type": "object", |
| "properties": { |
| "domain": { |
| "description": "Marker for this type of tags", |
| "type": "string", |
| "enum": [ |
| "dart" |
| ] |
| } |
| }, |
| "required": [ |
| "domain" |
| ], |
| "additionalProperties": false |
| }, |
| "exeTags": { |
| "description": "Tag definitions for the 'exe' domain", |
| "type": "object", |
| "properties": { |
| "domain": { |
| "description": "Marker for this type of tags", |
| "type": "string", |
| "enum": [ |
| "exe" |
| ] |
| }, |
| "arch": { |
| "description": "Architecture for prebuilt types", |
| "$ref": "#/definitions/prebuiltArch" |
| } |
| }, |
| "required": [ |
| "domain", |
| "arch" |
| ], |
| "additionalProperties": false |
| }, |
| "fidlTags": { |
| "description": "Tag definitions for the 'fidl' domain", |
| "type": "object", |
| "properties": { |
| "domain": { |
| "description": "Marker for this type of tags", |
| "type": "string", |
| "enum": [ |
| "fidl" |
| ] |
| } |
| }, |
| "required": [ |
| "domain" |
| ], |
| "additionalProperties": false |
| }, |
| "imageTags": { |
| "description": "Tag definitions for the 'image' domain", |
| "type": "object", |
| "properties": { |
| "domain": { |
| "description": "Marker for this type of tags", |
| "type": "string", |
| "enum": [ |
| "image" |
| ] |
| } |
| }, |
| "required": [ |
| "domain" |
| ], |
| "additionalProperties": false |
| }, |
| "prebuiltArch": { |
| "description": "For prebuilt artifacts, whether this was built for host or target", |
| "type": "string", |
| "enum": [ |
| "host", |
| "target" |
| ] |
| } |
| } |
| } |