cmake: Introduce ReportCapabilitiesJson

Introduce cmake::ReportCapabilitiesJson which returns a the Json object
that is serialized in cmake::ReportCapabilities.

This allows to re-use the information in cmake-server.
This commit is contained in:
Tobias Hunger 2016-09-09 10:01:43 +02:00
parent 366e38284d
commit c73967cb4a
2 changed files with 19 additions and 5 deletions

View File

@ -35,7 +35,7 @@
#if defined(CMAKE_BUILD_WITH_CMAKE)
#include "cmGraphVizWriter.h"
#include "cmVariableWatch.h"
#include <cm_jsoncpp_value.h>
#include <cm_jsoncpp_writer.h>
#endif
@ -233,10 +233,9 @@ cmake::~cmake()
delete this->FileComparison;
}
std::string cmake::ReportCapabilities() const
{
std::string result;
#if defined(CMAKE_BUILD_WITH_CMAKE)
Json::Value cmake::ReportCapabilitiesJson() const
{
Json::Value obj = Json::objectValue;
// Version information:
Json::Value version = Json::objectValue;
@ -287,8 +286,16 @@ std::string cmake::ReportCapabilities() const
#else
obj["serverMode"] = false;
#endif
return obj;
}
#endif
std::string cmake::ReportCapabilities() const
{
std::string result;
#if defined(CMAKE_BUILD_WITH_CMAKE)
Json::FastWriter writer;
result = writer.write(obj);
result = writer.write(this->ReportCapabilitiesJson());
#else
result = "Not supported";
#endif

View File

@ -24,6 +24,10 @@
#include <string>
#include <vector>
#if defined(CMAKE_BUILD_WITH_CMAKE)
#include "cm_jsoncpp_value.h"
#endif
class cmExternalMakefileProjectGeneratorFactory;
class cmFileTimeComparison;
class cmGlobalGenerator;
@ -118,6 +122,9 @@ public:
/// Destructor
~cmake();
#if defined(CMAKE_BUILD_WITH_CMAKE)
Json::Value ReportCapabilitiesJson() const;
#endif
std::string ReportCapabilities() const;
static const char* GetCMakeFilesDirectory() { return "/CMakeFiles"; }