diff options
author | Brad King <brad.king@kitware.com> | 2017-12-07 13:08:50 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2017-12-07 13:08:59 (GMT) |
commit | 9accb48d175d5163266cc7792c2dbb5ca5fed0d2 (patch) | |
tree | f9091aa18d97286522ef4dad7d93434e7c4610a1 | |
parent | ea63c522ef7561365c90e1e1f7c7e37403bac53b (diff) | |
parent | b7100756d739e1a46820b700607e738f17985e30 (diff) | |
download | CMake-9accb48d175d5163266cc7792c2dbb5ca5fed0d2.zip CMake-9accb48d175d5163266cc7792c2dbb5ca5fed0d2.tar.gz CMake-9accb48d175d5163266cc7792c2dbb5ca5fed0d2.tar.bz2 |
Merge topic 'revert-server-target-backtraces'
b7100756 Merge branch 'backport-revert-server-target-backtraces' into revert-server-target-backtraces
976370d1 server: drop "ctestInfo" backtrace information
8b2736c7 server: Revert "Report backtraces in codemodel response"
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1564
-rw-r--r-- | Help/manual/cmake-server.7.rst | 53 | ||||
-rw-r--r-- | Help/release/3.10.rst | 12 | ||||
-rw-r--r-- | Source/cmServerDictionary.h | 5 | ||||
-rw-r--r-- | Source/cmServerProtocol.cxx | 51 |
4 files changed, 13 insertions, 108 deletions
diff --git a/Help/manual/cmake-server.7.rst b/Help/manual/cmake-server.7.rst index c2aef99..28171c6 100644 --- a/Help/manual/cmake-server.7.rst +++ b/Help/manual/cmake-server.7.rst @@ -517,9 +517,6 @@ 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. @@ -545,16 +542,6 @@ 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" ==[ @@ -591,34 +578,7 @@ CMake will reply:: "linkerLanguage": "C", "name": "cmForm", "sourceDirectory": "/home/code/src/cmake/Source/CursesDialog/form", - "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" - } - ] - } + "type": "STATIC_LIBRARY" } ] }, @@ -669,17 +629,6 @@ Each test object can have the following keys: contains the test command. "properties" contains a list of test property objects. -"backtrace" - contains a list of backtrace objects that specify where the test was defined. - -Each backtrace object can have the following keys: - -"path" - contains the full path to the file containing the statement. -"line" - contains the line number in the file where the statement was defined. -"name" - contains the name of the statement that added the test. Each test property object can have the following keys: diff --git a/Help/release/3.10.rst b/Help/release/3.10.rst index 35fe602..6a19dbf 100644 --- a/Help/release/3.10.rst +++ b/Help/release/3.10.rst @@ -255,3 +255,15 @@ Other Changes incompatible with the old behavior, it is expected that behavior under typical use cases with properly-quoted command-lines has not changed. + +Updates +======= + +Changes made since CMake 3.10.0 include the following. + +3.10.1 +------ + +* The :manual:`cmake-server(7)` ``codemodel`` response ``crossReferences`` + field added by 3.10.0 has been dropped due to excessive memory usage. + Another approach will be needed to provide backtrace information. diff --git a/Source/cmServerDictionary.h b/Source/cmServerDictionary.h index 62dee11..685542c 100644 --- a/Source/cmServerDictionary.h +++ b/Source/cmServerDictionary.h @@ -97,11 +97,6 @@ static const std::string kCTEST_INFO = "ctestInfo"; static const std::string kMINIMUM_CMAKE_VERSION = "minimumCMakeVersion"; static const std::string kIS_GENERATOR_PROVIDED_KEY = "isGeneratorProvided"; -static const std::string kTARGET_CROSS_REFERENCES_KEY = "crossReferences"; -static const std::string kLINE_NUMBER_KEY = "line"; -static const std::string kBACKTRACE_KEY = "backtrace"; -static const std::string kRELATED_STATEMENTS_KEY = "relatedStatements"; - static const std::string kSTART_MAGIC = "[== \"CMake Server\" ==["; static const std::string kEND_MAGIC = "]== \"CMake Server\" ==]"; diff --git a/Source/cmServerProtocol.cxx b/Source/cmServerProtocol.cxx index da354bd..ad66467 100644 --- a/Source/cmServerProtocol.cxx +++ b/Source/cmServerProtocol.cxx @@ -11,7 +11,6 @@ #include "cmInstallGenerator.h" #include "cmInstallTargetGenerator.h" #include "cmLinkLineComputer.h" -#include "cmListFileCache.h" #include "cmLocalGenerator.h" #include "cmMakefile.h" #include "cmProperty.h" @@ -744,37 +743,6 @@ static Json::Value DumpSourceFilesList( return result; } -static Json::Value DumpBacktrace(const cmListFileBacktrace& backtrace) -{ - Json::Value result = Json::arrayValue; - - cmListFileBacktrace backtraceCopy = backtrace; - while (!backtraceCopy.Top().FilePath.empty()) { - Json::Value entry = Json::objectValue; - entry[kPATH_KEY] = backtraceCopy.Top().FilePath; - if (backtraceCopy.Top().Line) { - entry[kLINE_NUMBER_KEY] = static_cast<int>(backtraceCopy.Top().Line); - } - if (!backtraceCopy.Top().Name.empty()) { - entry[kNAME_KEY] = backtraceCopy.Top().Name; - } - result.append(entry); - backtraceCopy = backtraceCopy.Pop(); - } - return result; -} - -static void DumpBacktraceRange(Json::Value& result, const std::string& type, - cmBacktraceRange range) -{ - for (auto const& bt : range) { - Json::Value obj = Json::objectValue; - obj[kTYPE_KEY] = type; - obj[kBACKTRACE_KEY] = DumpBacktrace(bt); - result.append(obj); - } -} - static Json::Value DumpCTestInfo(cmTest* testInfo) { Json::Value result = Json::objectValue; @@ -799,9 +767,6 @@ static Json::Value DumpCTestInfo(cmTest* testInfo) } result[kPROPERTIES_KEY] = properties; - // Need backtrace to figure out where this test was originally added - result[kBACKTRACE_KEY] = DumpBacktrace(testInfo->GetBacktrace()); - return result; } @@ -933,22 +898,6 @@ static Json::Value DumpTarget(cmGeneratorTarget* target, result[kINSTALL_PATHS] = installPaths; } - Json::Value crossRefs = Json::objectValue; - crossRefs[kBACKTRACE_KEY] = DumpBacktrace(target->Target->GetBacktrace()); - - Json::Value statements = Json::arrayValue; - DumpBacktraceRange(statements, "target_compile_definitions", - target->Target->GetCompileDefinitionsBacktraces()); - DumpBacktraceRange(statements, "target_include_directories", - target->Target->GetIncludeDirectoriesBacktraces()); - DumpBacktraceRange(statements, "target_compile_options", - target->Target->GetCompileOptionsBacktraces()); - DumpBacktraceRange(statements, "target_link_libraries", - target->Target->GetLinkImplementationBacktraces()); - - crossRefs[kRELATED_STATEMENTS_KEY] = std::move(statements); - result[kTARGET_CROSS_REFERENCES_KEY] = std::move(crossRefs); - if (target->HaveWellDefinedOutputFiles()) { Json::Value artifacts = Json::arrayValue; artifacts.append( |