blob: 1b83b1822be87ea43fb199bea5a3991bf601ac67 [file] [log] [blame]
{
"$schema": "http://json-schema.org/draft-07/schema#",
"allOf": [
{
"$ref": "common.json#/definitions/sdk_element"
},
{
"additionalProperties": false,
"properties": {
"binaries": {
"additionalProperties": false,
"description": "The binary files for the library, per architecture",
"properties": {
"arm64": {
"$ref": "#/definitions/binaryGroup",
"description": "Binaries for the arm64 architecture"
},
"riscv64": {
"$ref": "#/definitions/binaryGroup",
"description": "Binaries for the riscv64 architecture"
},
"x64": {
"$ref": "#/definitions/binaryGroup",
"description": "Binaries for the x64 architecture"
}
},
"type": "object"
},
"variants": {
"additionalProperties": false,
"description": "The various variants of the binary, per architecture and API level",
"items": {
"$ref": "#/definitions/variant"
},
"type": "array"
},
"deps": {
"description": "List of C/C++ libraries this library depends on",
"items": {
"$ref": "common.json#/definitions/cc_library_name"
},
"type": "array"
},
"format": {
"description": "The distribution format of the binaries",
"enum": [
"shared",
"static"
],
"type": "string"
},
"headers": {
"description": "List of public headers",
"items": {
"$ref": "common.json#/definitions/file"
},
"type": "array"
},
"ifs": {
"description": "LLVM IFS file used to describe the ABI of the library",
"type": "string"
},
"include_dir": {
"$ref": "common.json#/definitions/file",
"description": "Path to the base directory for includes"
},
"name": {
"$ref": "common.json#/definitions/cc_library_name",
"description": "Name of the library"
},
"root": {
"description": "The root of the element in the SDK",
"type": "string"
},
"type": {
"allOf": [
{
"$ref": "common.json#/definitions/kind"
},
{
"enum": [
"cc_prebuilt_library"
]
}
]
}
},
"required": [
"deps",
"format",
"headers",
"include_dir",
"root",
"name",
"type"
]
}
],
"definitions": {
"binaryGroup": {
"description": "A set of binary files compiled for a given architecture",
"properties": {
"debug": {
"$ref": "common.json#/definitions/file",
"description": "The unstripped version of the library"
},
"dist": {
"$ref": "common.json#/definitions/file",
"description": "The version of the library to add to Fuchsia packages"
},
"dist_path": {
"$ref": "common.json#/definitions/file",
"description": "Path where the library should be installed in Fuchsia packages"
},
"link": {
"$ref": "common.json#/definitions/file",
"description": "The link-time version of the library"
}
},
"required": [
"link"
],
"type": "object"
},
"variant": {
"additionalProperties": false,
"description": "A set of binary files compiled for a given architecture and API level",
"properties": {
"constraints": {
"additionalProperties": false,
"description": "The architecture and API level information",
"properties": {
"api_level": {
"type": "integer",
"description": "API level"
},
"arch": {
"$ref": "common.json#/definitions/target_arch",
"description": "architecture"
}
},
"type": "object"
},
"values": {
"additionalProperties": false,
"description": "binary files for a given constraint",
"properties": {
"debug": {
"$ref": "common.json#/definitions/file",
"description": "The unstripped version of the library"
},
"dist_lib": {
"$ref": "common.json#/definitions/file",
"description": "The version of the library to add to Fuchsia packages"
},
"dist_lib_dest": {
"$ref": "common.json#/definitions/file",
"description": "Path where the library should be installed in Fuchsia packages"
},
"link_lib": {
"$ref": "common.json#/definitions/file",
"description": "The link-time version of the library"
}
},
"required": [
"link_lib"
],
"type": "object"
}
},
"required": [
"constraints",
"values"
],
"type": "object"
}
},
"description": "A prebuilt C/C++ library",
"id": "http://fuchsia.com/schemas/sdk/cc_prebuilt_library.json",
"type": "object"
}