{ "$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 ..[-]" }, "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-/ 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 } } }