Commit f72bb2ee authored by Ben McMorran's avatar Ben McMorran

Help: Add documentation for "toolchains" object kind

parent bb069c08
......@@ -1154,3 +1154,169 @@ The members specific to ``cmakeFiles`` objects are:
``isCMake``
Optional member that is present with boolean value ``true``
if the path specifies a file in the CMake installation.
Object Kind "toolchains"
------------------------
The ``toolchains`` object kind lists properties of the toolchains used during
the build. These include the language, compiler path, ID, and version.
There is only one ``toolchains`` object major version, version 1.
"toolchains" version 1
^^^^^^^^^^^^^^^^^^^^^^
``toolchains`` object version 1 is a JSON object:
.. code-block:: json
{
"kind": "toolchains",
"version": { "major": 1, "minor": 0 },
"toolchains": [
{
"language": "C",
"compiler": {
"path": "/usr/bin/cc",
"id": "GNU",
"version": "9.3.0",
"implicit": {
"includeDirectories": [
"/usr/lib/gcc/x86_64-linux-gnu/9/include",
"/usr/local/include",
"/usr/include/x86_64-linux-gnu",
"/usr/include"
],
"linkDirectories": [
"/usr/lib/gcc/x86_64-linux-gnu/9",
"/usr/lib/x86_64-linux-gnu",
"/usr/lib",
"/lib/x86_64-linux-gnu",
"/lib"
],
"linkFrameworkDirectories": [],
"linkLibraries": [
"gcc",
"gcc_s",
"c",
"gcc",
"gcc_s"
]
}
},
"sourceFileExtensions": [
"c",
"m"
]
},
{
"language": "CXX",
"compiler": {
"path": "/usr/bin/c++",
"id": "GNU",
"version": "9.3.0",
"implicit": {
"includeDirectories": [
"/usr/include/c++/9",
"/usr/include/x86_64-linux-gnu/c++/9",
"/usr/include/c++/9/backward",
"/usr/lib/gcc/x86_64-linux-gnu/9/include",
"/usr/local/include",
"/usr/include/x86_64-linux-gnu",
"/usr/include"
],
"linkDirectories": [
"/usr/lib/gcc/x86_64-linux-gnu/9",
"/usr/lib/x86_64-linux-gnu",
"/usr/lib",
"/lib/x86_64-linux-gnu",
"/lib"
],
"linkFrameworkDirectories": [],
"linkLibraries": [
"stdc++",
"m",
"gcc_s",
"gcc",
"c",
"gcc_s",
"gcc"
]
}
},
"sourceFileExtensions": [
"C",
"M",
"c++",
"cc",
"cpp",
"cxx",
"mm",
"CPP"
]
}
]
}
The members specific to ``toolchains`` objects are:
``toolchains``
A JSON array whose entries are each a JSON object specifying a toolchain
associated with a particular language. The members of each entry are:
``language``
A string specifying the toolchain language, like C or CXX. Language
names are the same as langauge names that can be passed to the
:command:`project` command. Because CMake only supports a single toolchain
per language, this field can be used as a key.
``compiler``
A JSON object containing members:
``path``
Optional member that has the same value as
:variable:`CMAKE_<LANG>_COMPILER` if it is defined for the current
language.
``id``
Optional member that has the same value as
:variable:`CMAKE_<LANG>_COMPILER_ID` if it is defined for the current
language.
``version``
Optional member that has the same value as
:variable:`CMAKE_<LANG>_COMPILER_VERSION` if it is defined for the
current language.
``target``
Optional member that has the same value as
:variable:`CMAKE_<LANG>_COMPILER_TARGET` if it is defined for the
current language.
``implicit``
A JSON object containing members:
``includeDirectories``
Optional JSON array that has the same value as
:variable:`CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES` if it is defined
for the current language.
``linkDirectories``
Optional JSON array that has the same value as
:variable:`CMAKE_<LANG>_IMPLICIT_LINK_DIRECTORIES` if it is defined
for the current language.
``linkFrameworkDirectories``
Optional JSON array that has the same value as
:variable:`CMAKE_<LANG>_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES` if it is
defined for the current language.
``linkLibraries``
Optional JSON array that has the same value as
:variable:`CMAKE_<LANG>_IMPLICIT_LINK_LIBRARIES` if it is defined for
the current language.
``sourceFileExtensions``
Optional JSON array that has the same value as
:variable:`CMAKE_<LANG>_SOURCE_FILE_EXTENSIONS` if it is defined for the
current language.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment