mirror of
https://github.com/reactos/CMake.git
synced 2024-12-13 14:27:23 +00:00
Merge topic 'revert-server-target-backtraces'
b7100756
Merge branch 'backport-revert-server-target-backtraces' into revert-server-target-backtraces976370d1
server: drop "ctestInfo" backtrace information8b2736c7
server: Revert "Report backtraces in codemodel response" Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1564
This commit is contained in:
commit
9accb48d17
@ -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:
|
||||
|
||||
|
@ -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.
|
||||
|
@ -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\" ==]";
|
||||
|
||||
|
@ -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(
|
||||
|
Loading…
Reference in New Issue
Block a user