diff options
author | Klaus Aehlig <klaus.aehlig@huawei.com> | 2022-06-23 16:38:39 +0200 |
---|---|---|
committer | Klaus Aehlig <klaus.aehlig@huawei.com> | 2022-06-24 15:15:15 +0200 |
commit | 46f5fdee03f690541ce56b0670eb7d86d36f6a3d (patch) | |
tree | bcf8b82073e049c444d454de59970f5575ca06a5 /src/buildtool/main/version.cpp | |
parent | 4c38d492a2239019255296123f51fa44dec48f14 (diff) | |
download | justbuild-46f5fdee03f690541ce56b0670eb7d86d36f6a3d.tar.gz |
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.
Diffstat (limited to 'src/buildtool/main/version.cpp')
-rw-r--r-- | src/buildtool/main/version.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
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, {}); +} |