blob: 9a72c8eee23a5315433422b16a9b5cf6c8fba50a [file] [log] [blame]
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "http://fuchsia.com/schemas/sdk/cc_prebuilt_library.json",
"description": "A prebuilt C/C++ library",
"type": "object",
"allOf": [
{
"$ref": "common.json#/definitions/sdk_element"
},
{
"properties": {
"type": {
"allOf": [
{
"$ref": "common.json#/definitions/type"
},
{
"enum": [
"cc_prebuilt_library"
]
}
]
},
"name": {
"description": "Name of the library",
"$ref": "common.json#/definitions/cc_library_name"
},
"root": {
"description": "The root of the element in the SDK",
"type": "string"
},
"format": {
"description": "The distribution format of the binaries",
"type": "string",
"enum": [
"shared",
"static"
]
},
"headers": {
"description": "List of public headers",
"type": "array",
"items": {
"$ref": "common.json#/definitions/file"
}
},
"include_dir": {
"description": "Path to the base directory for includes",
"$ref": "common.json#/definitions/file"
},
"deps": {
"description": "List of C/C++ libraries this library depends on",
"type": "array",
"items": {
"$ref": "common.json#/definitions/cc_library_name"
}
},
"binaries": {
"description": "The binary files for the library, per architecture",
"type": "object",
"properties": {
"x64": {
"description": "Binaries for the x64 architecture",
"$ref": "#/definitions/binaryGroup"
},
"arm64": {
"description": "Binaries for the arm64 architecture",
"$ref": "#/definitions/binaryGroup"
}
},
"additionalProperties": false,
"minProperties": 1,
"maxProperties": 2
}
},
"required": [
"binaries",
"deps",
"format",
"headers",
"include_dir",
"root",
"name",
"type"
],
"additionalProperties": false
}
],
"definitions": {
"binaryGroup": {
"description": "A set of binary files compiled for a given architecture",
"type": "object",
"properties": {
"link": {
"description": "The link-time version of the library",
"$ref": "common.json#/definitions/file"
},
"dist": {
"description": "The version of the library to add to Fuchsia packages",
"$ref": "common.json#/definitions/file"
},
"dist_path": {
"description": "Path where the library should be installed in Fuchsia packages",
"$ref": "common.json#/definitions/file"
},
"debug": {
"description": "The unstripped version of the library",
"$ref": "common.json#/definitions/file"
}
},
"required": [
"link"
]
}
}
}