diff options
author | Ivan Shcherbakov <ivan@sysprogs.com> | 2017-06-20 14:13:01 -0700 |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2017-07-11 07:50:22 -0400 |
commit | 0c5723821542a43fa211c73abc08e59e2fd395e2 (patch) | |
tree | 9d2b7568a58789e5d275bcc7ef5b1feade24fe4c /Help | |
parent | 4db32275149e2a68c74d2abf5158ee29976b7300 (diff) | |
download | cmake-0c5723821542a43fa211c73abc08e59e2fd395e2.tar.gz |
server: Report backtraces in codemodel response
Report the source locations (e.g. in `CMakeLists.txt`) for all targets
and target-related statements. This allows IDEs to locate the
statements and automatically edit them when the user adds or removes
files or changes target properties via GUI.
Increment the protocol minor version number to tell clients that the new
information is available.
Diffstat (limited to 'Help')
-rw-r--r-- | Help/manual/cmake-server.7.rst | 42 |
1 files changed, 41 insertions, 1 deletions
diff --git a/Help/manual/cmake-server.7.rst b/Help/manual/cmake-server.7.rst index 9520cc1405..211ebe4ddb 100644 --- a/Help/manual/cmake-server.7.rst +++ b/Help/manual/cmake-server.7.rst @@ -496,6 +496,9 @@ Each target object can have the following keys: with the sysroot path. "fileGroups" contains the source files making up the target. +"crossReferences" + contains the location of the target in the corresponding CMakeLists.txt + file and the locations of the related statements like "target_link_libraries" FileGroups are used to group sources using similar settings together. @@ -521,6 +524,16 @@ Each fileGroup object may contain the following keys: All file paths in the fileGroup are either absolute or relative to the sourceDirectory of the target. +CrossReferences object is used to report the location of the target (including +the entire call stack if the target is defined in a function) and the related +"target_link_libraries", "target_include_directories", "target_compile_definitions" +and "target_compile_options" statements. + +See the example below for details on the internal format of the "crossReferences" object. +Line numbers stated in the "backtrace" entries are 1-based. The last entry of a backtrace +is a special entry with missing "line" and "name" fields that specifies the initial +CMakeLists.txt file. + Example:: [== "CMake Server" ==[ @@ -557,7 +570,34 @@ CMake will reply:: "linkerLanguage": "C", "name": "cmForm", "sourceDirectory": "/home/code/src/cmake/Source/CursesDialog/form", - "type": "STATIC_LIBRARY" + "type": "STATIC_LIBRARY", + "crossReferences": { + "backtrace": [ + { + "line": 7, + "name": "add_executable", + "path": "C:/full/path/CMakeLists.txt" + }, + { + "path": "c:/full/path/CMakeLists.txt" + } + ], + "relatedStatements": [ + { + "backtrace": [ + { + "line": 8, + "name": "target_link_libraries", + "path": "c:/full/path/CMakeLists.txt" + }, + { + "path": "c:/full/path/CMakeLists.txt" + } + ], + "type": "target_link_libraries" + } + ] + } } ] }, |