mirror of
https://gitlab.kitware.com/cmake/cmake.git
synced 2026-09-25 04:09:36 +03:00
fileAPI: Refactor toolchains schema to prepare for new version
Co-authored-by: Craig Scott <craig.scott@crascit.com>
This commit is contained in:
co-authored by
Craig Scott
parent
3caa572c05
commit
1e02926c9a
@@ -7,13 +7,18 @@
|
||||
"version",
|
||||
"toolchains"
|
||||
],
|
||||
"properties": {
|
||||
"oneOf": [
|
||||
{
|
||||
"$ref": "#/definitions/toolchainsObjV1_0"
|
||||
}
|
||||
],
|
||||
"definitions": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"const": "toolchains",
|
||||
"description": "Specifies the object kind"
|
||||
},
|
||||
"version": {
|
||||
"versionV1_0": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"major",
|
||||
@@ -31,87 +36,126 @@
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"toolchains": {
|
||||
"language": {
|
||||
"type": "string",
|
||||
"description": "Toolchain language identifier (e.g. C, CXX)"
|
||||
},
|
||||
"sourceFileExtensions": {
|
||||
"type": "array",
|
||||
"description": "Array of toolchain configurations per language",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"language",
|
||||
"compiler"
|
||||
],
|
||||
"properties": {
|
||||
"language": {
|
||||
"type": "string",
|
||||
"description": "Toolchain language identifier (e.g. C, CXX)"
|
||||
"type": "string"
|
||||
},
|
||||
"description": "List of source file extensions (without leading dot) supported by this toolchain"
|
||||
},
|
||||
"compilerPath": {
|
||||
"type": "string",
|
||||
"description": "Path to the compiler executable. This is present when the CMAKE_<LANG>_COMPILER variable is defined."
|
||||
},
|
||||
"compilerCommandFragment": {
|
||||
"type": "string",
|
||||
"description": "Mandatory arguments to the compiler, as a command line fragment. This is present when the CMAKE_<LANG>_COMPILER variable is a list containing multiple elements or the CC or similar environment variable contains command line arguments."
|
||||
},
|
||||
"compilerId": {
|
||||
"type": "string",
|
||||
"description": "Compiler identifier (e.g. GNU, MSVC). This is present when the CMAKE_<LANG>_COMPILER_ID variable is defined."
|
||||
},
|
||||
"compilerVersion": {
|
||||
"type": "string",
|
||||
"description": "Version of the compiler. This is present when the CMAKE_<LANG>_COMPILER_VERSION variable is defined."
|
||||
},
|
||||
"compilerTarget": {
|
||||
"type": "string",
|
||||
"description": "Cross-compiling target of the compiler. This is present when the CMAKE_<LANG>_COMPILER_TARGET variable is defined."
|
||||
},
|
||||
"compilerImplicit": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"includeDirectories": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"compiler": {
|
||||
"description": "List of implicit include directories for the compiler. This is present when the CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES variable is defined."
|
||||
},
|
||||
"linkDirectories": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "List of implicit link directories for the compiler front end. This is present when the CMAKE_<LANG>_IMPLICIT_LINK_DIRECTORIES variable is defined."
|
||||
},
|
||||
"linkFrameworkDirectories": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "List of implicit link framework directories for the compiler front end. This is present when the CMAKE_<LANG>_IMPLICIT_FRAMEWORK_DIRECTORIES variable is defined."
|
||||
},
|
||||
"linkLibraries": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "List of implicit link libraries for the compiler front end. This is present when the CMAKE_<LANG>_IMPLICIT_LINK_LIBRARIES variable is defined."
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"compiler": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"path": {
|
||||
"$ref": "#/definitions/compilerPath"
|
||||
},
|
||||
"id": {
|
||||
"$ref": "#/definitions/compilerId"
|
||||
},
|
||||
"version": {
|
||||
"$ref": "#/definitions/compilerVersion"
|
||||
},
|
||||
"target": {
|
||||
"$ref": "#/definitions/compilerTarget"
|
||||
},
|
||||
"implicit": {
|
||||
"$ref": "#/definitions/compilerImplicit"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"toolchainsObjV1_0": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"kind": {
|
||||
"$ref": "#/definitions/kind"
|
||||
},
|
||||
"version": {
|
||||
"$ref": "#/definitions/versionV1_0"
|
||||
},
|
||||
"toolchains": {
|
||||
"type": "array",
|
||||
"description": "Array of toolchain configurations per language",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"language",
|
||||
"compiler"
|
||||
],
|
||||
"properties": {
|
||||
"path": {
|
||||
"type": "string",
|
||||
"description": "Path to the compiler executable. This is present when the CMAKE_<LANG>_COMPILER variable is defined."
|
||||
"language": {
|
||||
"$ref": "#/definitions/language"
|
||||
},
|
||||
"id": {
|
||||
"type": "string",
|
||||
"description": "Compiler identifier (e.g. GNU, MSVC). This is present when the CMAKE_<LANG>_COMPILER_ID variable is defined."
|
||||
"compiler": {
|
||||
"$ref": "#/definitions/compiler"
|
||||
},
|
||||
"version": {
|
||||
"type": "string",
|
||||
"description": "Version of the compiler. This is present when the CMAKE_<LANG>_COMPILER_VERSION variable is defined."
|
||||
},
|
||||
"target": {
|
||||
"type": "string",
|
||||
"description": "Cross-compiling target of the compiler. This is present when the CMAKE_<LANG>_COMPILER_TARGET variable is defined."
|
||||
},
|
||||
"implicit": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"includeDirectories": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "List of implicit include directories for the compiler. This is present when the CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES variable is defined."
|
||||
},
|
||||
"linkDirectories": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "List of implicit link directories for the compiler front end. This is present when the CMAKE_<LANG>_IMPLICIT_LINK_DIRECTORIES variable is defined."
|
||||
},
|
||||
"linkFrameworkDirectories": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "List of implicit link framework directories for the compiler front end. This is present when the CMAKE_<LANG>_IMPLICIT_FRAMEWORK_DIRECTORIES variable is defined."
|
||||
},
|
||||
"linkLibraries": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "List of implicit link libraries for the compiler front end. This is present when the CMAKE_<LANG>_IMPLICIT_LINK_LIBRARIES variable is defined."
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
"sourceFileExtensions": {
|
||||
"$ref": "#/definitions/sourceFileExtensions"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"sourceFileExtensions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "List of source file extensions (without leading dot) supported by this toolchain"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user