diff options
author | Brad King <brad.king@kitware.com> | 2018-10-24 15:22:54 -0400 |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2018-12-12 06:40:10 -0500 |
commit | 7ee0abbde1656b07eb28ddacca3d22bb7aafdbd8 (patch) | |
tree | 6e695983ccdc21351e806feabf6aac7c082e4c7a /Source | |
parent | 276fdf299306f83b12bd1cc886f5e37d61f25c59 (diff) | |
download | cmake-7ee0abbde1656b07eb28ddacca3d22bb7aafdbd8.tar.gz |
fileapi: Add helper to create and reference a json reply file
Diffstat (limited to 'Source')
-rw-r--r-- | Source/cmFileAPI.cxx | 12 | ||||
-rw-r--r-- | Source/cmFileAPI.h | 5 |
2 files changed, 17 insertions, 0 deletions
diff --git a/Source/cmFileAPI.cxx b/Source/cmFileAPI.cxx index cf772d99fc..2fa5495a58 100644 --- a/Source/cmFileAPI.cxx +++ b/Source/cmFileAPI.cxx @@ -175,6 +175,18 @@ std::string cmFileAPI::WriteJsonFile( return fileName; } +Json::Value cmFileAPI::MaybeJsonFile(Json::Value in, std::string const& prefix) +{ + Json::Value out; + if (in.isObject() || in.isArray()) { + out = Json::objectValue; + out["jsonFile"] = this->WriteJsonFile(in, prefix); + } else { + out = std::move(in); + } + return out; +} + std::string cmFileAPI::ComputeSuffixHash(std::string const& file) { cmCryptoHash hasher(cmCryptoHash::AlgoSHA3_256); diff --git a/Source/cmFileAPI.h b/Source/cmFileAPI.h index 4f4506f0a9..8bfae318f9 100644 --- a/Source/cmFileAPI.h +++ b/Source/cmFileAPI.h @@ -31,6 +31,11 @@ public: /** Get the "cmake" instance with which this was constructed. */ cmake* GetCMakeInstance() const { return this->CMakeInstance; } + /** Convert a JSON object or array into an object with a single + "jsonFile" member specifying a file named with the given prefix + and holding the original object. Other JSON types are unchanged. */ + Json::Value MaybeJsonFile(Json::Value in, std::string const& prefix); + private: cmake* CMakeInstance; |