Browse Source

server: return minimum cmake required version for each project

Justin Goshi 8 years ago
parent
commit
cdf5f34b0c
3 changed files with 6 additions and 0 deletions
  1. 3 0
      Help/manual/cmake-server.7.rst
  2. 1 0
      Source/cmServerDictionary.h
  3. 2 0
      Source/cmServerProtocol.cxx

+ 3 - 0
Help/manual/cmake-server.7.rst

@@ -458,6 +458,9 @@ Each project object can have the following keys:
 
 "name"
   contains the (sub-)projects name.
+"minimumCMakeVersion"
+  contains the minimum cmake version allowed for this project, null if the
+  project doesn't specify one.
 "hasInstallRule"
   true if the project contains any install rules, false otherwise.
 "sourceDirectory"

+ 1 - 0
Source/cmServerDictionary.h

@@ -95,6 +95,7 @@ static const std::string kHAS_ENABLED_TESTS = "hasEnabledTests";
 static const std::string kCTEST_NAME = "ctestName";
 static const std::string kCTEST_COMMAND = "ctestCommand";
 static const std::string kCTEST_INFO = "ctestInfo";
+static const std::string kMINIMUM_CMAKE_VERSION = "minimumCMakeVersion";
 
 static const std::string kTARGET_CROSS_REFERENCES_KEY = "crossReferences";
 static const std::string kLINE_NUMBER_KEY = "line";

+ 2 - 0
Source/cmServerProtocol.cxx

@@ -1116,6 +1116,8 @@ static Json::Value DumpProjectList(const cmake* cm, std::string const& config)
 
     // Project structure information:
     const cmMakefile* mf = lg->GetMakefile();
+    pObj[kMINIMUM_CMAKE_VERSION] =
+      mf->GetDefinition("CMAKE_MINIMUM_REQUIRED_VERSION");
     pObj[kHAS_INSTALL_RULE] = mf->GetInstallGenerators().empty() == false;
     pObj[kSOURCE_DIRECTORY_KEY] = mf->GetCurrentSourceDirectory();
     pObj[kBUILD_DIRECTORY_KEY] = mf->GetCurrentBinaryDirectory();