From 46f5fdee03f690541ce56b0670eb7d86d36f6a3d Mon Sep 17 00:00:00 2001 From: Klaus Aehlig Date: Thu, 23 Jun 2022 16:38:39 +0200 Subject: Add a version subcommand To also allow identifying snapshot versions in a meaningful way, we support embedding SOURCE_DATE_EPOCH which ought to be set to the commit time of the commit used. --- src/buildtool/main/version.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 src/buildtool/main/version.cpp (limited to 'src/buildtool/main/version.cpp') diff --git a/src/buildtool/main/version.cpp b/src/buildtool/main/version.cpp new file mode 100644 index 00000000..3bd37f2a --- /dev/null +++ b/src/buildtool/main/version.cpp @@ -0,0 +1,22 @@ +#include "src/buildtool/main/version.hpp" + +#include "nlohmann/json.hpp" +#include "src/utils/cpp/json.hpp" + +auto version() -> std::string { + std::size_t major = 0; + std::size_t minor = 1; + std::size_t revision = 0; + std::string suffix = "+devel"; + + nlohmann::json version_info = {{"version", {major, minor, revision}}, + {"suffix", suffix}}; + +#ifdef SOURCE_DATE_EPOCH + version_info["SOURCE_DATE_EPOCH"] = (std::size_t)SOURCE_DATE_EPOCH; +#else + version_info["SOURCE_DATE_EPOCH"] = nullptr; +#endif + + return IndentOnlyUntilDepth(version_info, 2, 1, {}); +} -- cgit v1.2.3