|
|
@ -250,7 +250,9 @@ This is the only message ever sent by the server that is not of type "reply", |
|
|
|
|
|
|
|
It will contain "supportedProtocolVersions" with an array of server protocol |
|
|
|
versions supported by the cmake server. These are JSON objects with "major" and |
|
|
|
"minor" keys containing non-negative integer values. |
|
|
|
"minor" keys containing non-negative integer values. Some versions may be marked |
|
|
|
as experimental. These will contain the "isExperimental" key set to true. Enabling |
|
|
|
these requires a special command line argument when starting the cmake server mode. |
|
|
|
|
|
|
|
Example:: |
|
|
|
|
|
|
@ -403,7 +405,7 @@ CMake will reply like this (after reporting progress for some time):: |
|
|
|
Type "compute" |
|
|
|
^^^^^^^^^^^^^^ |
|
|
|
|
|
|
|
This requist will generate build system files in the build directory and |
|
|
|
This request will generate build system files in the build directory and |
|
|
|
is only available after a project was successfully "configure"d. |
|
|
|
|
|
|
|
Example:: |
|
|
@ -426,8 +428,19 @@ The "codemodel" request can be used after a project was "compute"d successfully. |
|
|
|
|
|
|
|
It will list the complete project structure as it is known to cmake. |
|
|
|
|
|
|
|
The reply will contain a key "projects", which will contain a list of |
|
|
|
project objects, one for each (sub-)project defined in the cmake build system. |
|
|
|
The reply will contain a key "configurations", which will contain a list of |
|
|
|
configuration objects. Configuration objects are used to destinquish between |
|
|
|
different configurations the build directory might have enabled. While most |
|
|
|
generators only support one configuration, others might support several. |
|
|
|
|
|
|
|
Each configuration object can have the following keys: |
|
|
|
|
|
|
|
"name" |
|
|
|
contains the name of the configuration. The name may be empty. |
|
|
|
"projects" |
|
|
|
contains a list of project objects, one for each build project. |
|
|
|
|
|
|
|
Project objects define one (sub-)project defined in the cmake build system. |
|
|
|
|
|
|
|
Each project object can have the following keys: |
|
|
|
|
|
|
@ -437,19 +450,8 @@ Each project object can have the following keys: |
|
|
|
contains the current source directory |
|
|
|
"buildDirectory" |
|
|
|
contains the current build directory. |
|
|
|
"configurations" |
|
|
|
contains a list of configuration objects. |
|
|
|
|
|
|
|
Configuration objects are used to destinquish between different |
|
|
|
configurations the build directory might have enabled. While most generators |
|
|
|
only support one configuration, others support several. |
|
|
|
|
|
|
|
Each configuration object can have the following keys: |
|
|
|
|
|
|
|
"name" |
|
|
|
contains the name of the configuration. The name may be empty. |
|
|
|
"targets" |
|
|
|
contains a list of target objects, one for each build target. |
|
|
|
contains a list of build system target objects. |
|
|
|
|
|
|
|
Target objects define individual build targets for a certain configuration. |
|
|
|
|
|
|
@ -520,88 +522,53 @@ sourceDirectory of the target. |
|
|
|
Example:: |
|
|
|
|
|
|
|
[== CMake Server ==[ |
|
|
|
{"type":"project"} |
|
|
|
{"type":"codemodel"} |
|
|
|
]== CMake Server ==] |
|
|
|
|
|
|
|
CMake will reply:: |
|
|
|
|
|
|
|
[== CMake Server ==[ |
|
|
|
{ |
|
|
|
"cookie":"", |
|
|
|
"type":"reply", |
|
|
|
"inReplyTo":"project", |
|
|
|
|
|
|
|
"projects": |
|
|
|
[ |
|
|
|
"configurations": [ |
|
|
|
{ |
|
|
|
"name":"CMAKE_FORM", |
|
|
|
"sourceDirectory":"/home/code/src/cmake/Source/CursesDialog/form" |
|
|
|
"buildDirectory":"/tmp/cmake-build-test/Source/CursesDialog/form", |
|
|
|
"configurations": |
|
|
|
[ |
|
|
|
"name": "", |
|
|
|
"projects": [ |
|
|
|
{ |
|
|
|
"name":"", |
|
|
|
"targets": |
|
|
|
[ |
|
|
|
"buildDirectory": "/tmp/build/Source/CursesDialog/form", |
|
|
|
"name": "CMAKE_FORM", |
|
|
|
"sourceDirectory": "/home/code/src/cmake/Source/CursesDialog/form", |
|
|
|
"targets": [ |
|
|
|
{ |
|
|
|
"artifactDirectory":"/tmp/cmake/Source/CursesDialog/form", |
|
|
|
"fileGroups": |
|
|
|
[ |
|
|
|
"artifacts": [ "/tmp/build/Source/CursesDialog/form/libcmForm.a" ], |
|
|
|
"buildDirectory": "/tmp/build/Source/CursesDialog/form", |
|
|
|
"fileGroups": [ |
|
|
|
{ |
|
|
|
"compileFlags":" -std=gnu11", |
|
|
|
"defines": |
|
|
|
[ |
|
|
|
"SOMETHING=1", |
|
|
|
"LIBARCHIVE_STATIC" |
|
|
|
], |
|
|
|
"includePath": |
|
|
|
[ |
|
|
|
{ "path":"/tmp/cmake-build-test/Utilities" }, |
|
|
|
{ "isSystem": true, "path":"/usr/include/something" }, |
|
|
|
... |
|
|
|
] |
|
|
|
"language":"C", |
|
|
|
"sources": |
|
|
|
[ |
|
|
|
"fld_arg.c", |
|
|
|
... |
|
|
|
"fty_regex.c" |
|
|
|
] |
|
|
|
"compileFlags": " -std=gnu11", |
|
|
|
"defines": [ "CURL_STATICLIB", "LIBARCHIVE_STATIC" ], |
|
|
|
"includePath": [ { "path": "/tmp/build/Utilities" }, <...> ], |
|
|
|
"isGenerated": false, |
|
|
|
"language": "C", |
|
|
|
"sources": [ "fld_arg.c", <...> ] |
|
|
|
} |
|
|
|
], |
|
|
|
"fullName":"libcmForm.a", |
|
|
|
"linkerLanguage":"C", |
|
|
|
"name":"cmForm", |
|
|
|
"type":"STATIC_LIBRARY" |
|
|
|
"fullName": "libcmForm.a", |
|
|
|
"linkerLanguage": "C", |
|
|
|
"name": "cmForm", |
|
|
|
"sourceDirectory": "/home/code/src/cmake/Source/CursesDialog/form", |
|
|
|
"type": "STATIC_LIBRARY" |
|
|
|
} |
|
|
|
] |
|
|
|
} |
|
|
|
], |
|
|
|
}, |
|
|
|
... |
|
|
|
] |
|
|
|
}, |
|
|
|
<...> |
|
|
|
] |
|
|
|
} |
|
|
|
], |
|
|
|
"cookie": "", |
|
|
|
"inReplyTo": "codemodel", |
|
|
|
"type": "reply" |
|
|
|
} |
|
|
|
]== CMake Server ==] |
|
|
|
|
|
|
|
The output can be tailored to the specific needs via parameter passed when |
|
|
|
requesting "project" information. |
|
|
|
|
|
|
|
You can have a "depth" key, which accepts "project", "configuration" and |
|
|
|
"target" as string values. These cause the output to be trimmed at the |
|
|
|
appropriate depth of the output tree. |
|
|
|
|
|
|
|
You can also set "configurations" to an array of strings with configuration |
|
|
|
names to list. This will cause any configuration that is not listed to be |
|
|
|
trimmed from the output. |
|
|
|
|
|
|
|
Generated files can be included in the listing by setting "includeGeneratedFiles" |
|
|
|
to "true". This setting defaults to "false", so generated files are not |
|
|
|
listed by default. |
|
|
|
|
|
|
|
Finally you can limit the target types that are going to be listed. This is |
|
|
|
done by providing a list of target types as an array of strings to the |
|
|
|
"targetTypes" key. |
|
|
|
|
|
|
|
|
|
|
|
Type "cmakeInputs" |
|
|
|
^^^^^^^^^^^^^^^^^^ |
|
|
|