浏览代码

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.
Tobias Hunger 9 年之前
父节点
当前提交
c73967cb4a
共有 2 个文件被更改,包括 19 次插入5 次删除
  1. 12 5
      Source/cmake.cxx
  2. 7 0
      Source/cmake.h

+ 12 - 5
Source/cmake.cxx

@@ -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

+ 7 - 0
Source/cmake.h

@@ -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"; }