| { |
| "$schema": "http://json-schema.org/draft-07/schema#", |
| "type": "object", |
| "required": [ |
| "cmake", |
| "objects", |
| "reply" |
| ], |
| "properties": { |
| "cmake": { |
| "type": "object", |
| "description": "High level details about CMake itself and the CMake generator used", |
| "required": [ |
| "version", |
| "paths", |
| "generator" |
| ], |
| "properties": { |
| "version": { |
| "description": "Full version details of the CMake used to produce the replies", |
| "type": "object", |
| "required": [ |
| "major", |
| "minor", |
| "patch", |
| "string", |
| "isDirty" |
| ], |
| "properties": { |
| "major": { |
| "type": "integer", |
| "minimum": 3 |
| }, |
| "minor": { |
| "type": "integer", |
| "minimum": 0 |
| }, |
| "patch": { |
| "type": "integer", |
| "minimum": 0 |
| }, |
| "suffix": { |
| "type": "string", |
| "description": "A version suffix may be present when CMake is built from sources, or for release candidates. Official releases do not normally have a suffix." |
| }, |
| "string": { |
| "type": "string", |
| "description": "The full version string in the format <major>.<minor>.<patch>[-<suffix>]" |
| }, |
| "isDirty": { |
| "type": "boolean", |
| "description": "When this is true, it indicates CMake was built from a version-controlled source tree with local modifications" |
| } |
| }, |
| "additionalProperties": false |
| }, |
| "paths": { |
| "description": "Absolute paths to tools and locations within the CMake installation", |
| "type": "object", |
| "required": [ |
| "cmake", |
| "ctest", |
| "cpack", |
| "root" |
| ], |
| "properties": { |
| "cmake": { |
| "description": "Absolute path to the cmake executable", |
| "type": "string" |
| }, |
| "ctest": { |
| "description": "Absolute path to the ctest executable", |
| "type": "string" |
| }, |
| "cpack": { |
| "description": "Absolute path to the cpack executable", |
| "type": "string" |
| }, |
| "root": { |
| "description": "Absolute path to the directory containing CMake resources like the Modules directory", |
| "type": "string" |
| } |
| }, |
| "additionalProperties": false |
| }, |
| "generator": { |
| "description": "Details for the CMake generator used", |
| "type": "object", |
| "required": [ |
| "multiConfig", |
| "name" |
| ], |
| "properties": { |
| "multiConfig": { |
| "description": "True for multi-configuration generators, false for single-configuration generators", |
| "type": "boolean" |
| }, |
| "name": { |
| "type": "string" |
| }, |
| "platform": { |
| "description": "This string will only be set if the generator supports the CMAKE_GENERATOR_PLATFORM variable, which specifies the generator platform name", |
| "type": "string" |
| } |
| }, |
| "additionalProperties": false |
| } |
| } |
| }, |
| "objects": { |
| "type": "array", |
| "items": { |
| "$ref": "#/definitions/kindJsonFile" |
| } |
| }, |
| "reply": { |
| "type": "object", |
| "patternProperties": { |
| "^[^-]+-v\\d+$": { |
| "description": "A member of this form appears for each of the shared stateless query files that CMake recognized as a request for the specified object kind and major version", |
| "oneOf": [ |
| { |
| "$ref": "#/definitions/kindJsonFile" |
| }, |
| { |
| "description": "A member of this form appears if the query's object kind is not recognized or is malformed", |
| "$ref": "#/definitions/replyError" |
| } |
| ] |
| }, |
| "^client-[^/]+$": { |
| "description": "A member of this form appears for each client-owned directory holding client stateless query files. The value is a JSON object mirroring the content of the query/client-<client>/ directory.", |
| "patternProperties": { |
| "^[^-]+-v\\d+$": { |
| "description": "A member of this form appears for each of the client stateless query files that CMake recognized as a request for the specified object kind and major version", |
| "oneOf": [ |
| { |
| "$ref": "#/definitions/kindJsonFile" |
| }, |
| { |
| "description": "A member of this form appears if the client query's object kind is not recognized or is malformed", |
| "$ref": "#/definitions/replyError" |
| } |
| ] |
| }, |
| "^query\\.json$": { |
| "description": "This member appears for clients using client stateful query files", |
| "oneOf": [ |
| { |
| "type": "object", |
| "properties": { |
| "client": { |
| "type": "object" |
| }, |
| "requests": {}, |
| "responses": { |
| "oneOf": [ |
| { |
| "$ref": "#/definitions/replyError" |
| }, |
| { |
| "type": "array", |
| "items": { |
| "oneOf": [ |
| { |
| "$ref": "#/definitions/kindJsonFile" |
| }, |
| { |
| "$ref": "#/definitions/replyError" |
| } |
| ] |
| } |
| } |
| ] |
| } |
| }, |
| "additionalProperties": false |
| }, |
| { |
| "description": "A member of this form appears if the query.json file failed to read or parse as a JSON object", |
| "$ref": "#/definitions/replyError" |
| } |
| ] |
| } |
| }, |
| "additionalProperties": { |
| "description": "A member of this form appears for each of the client stateless query files that CMake did not recognize.", |
| "$ref": "#/definitions/replyError" |
| } |
| } |
| }, |
| "additionalProperties": { |
| "description": "A member of this form appears for each of the shared stateless query files that CMake did not recognize.", |
| "$ref": "#/definitions/replyError" |
| } |
| } |
| }, |
| "definitions": { |
| "kindJsonFile": { |
| "type": "object", |
| "required": [ |
| "kind", |
| "version", |
| "jsonFile" |
| ], |
| "properties": { |
| "kind": { |
| "type": "string" |
| }, |
| "version": { |
| "type": "object", |
| "required": [ |
| "major", |
| "minor" |
| ], |
| "properties": { |
| "major": { |
| "type": "integer", |
| "minimum": 1 |
| }, |
| "minor": { |
| "type": "integer", |
| "minimum": 0 |
| } |
| }, |
| "additionalProperties": false |
| }, |
| "jsonFile": { |
| "type": "string", |
| "description": "Specifies a path relative to the reply index file to another JSON file containing the object" |
| } |
| }, |
| "additionalProperties": false |
| }, |
| "replyError": { |
| "type": "object", |
| "required": [ |
| "error" |
| ], |
| "properties": { |
| "error": { |
| "type": "string" |
| } |
| }, |
| "additionalProperties": false |
| } |
| } |
| } |