Expand version api and conversions

This commit is contained in:
Georg Hagen
2025-06-06 10:56:42 +02:00
parent 735a9afbf2
commit 0b019fa31e
5 changed files with 58 additions and 1 deletions

View File

@@ -5,6 +5,7 @@
*/
#include "Version.hpp"
#include <fmt/format.h>
#include <charconv>
#include <sstream>
#include <regex>
@@ -82,12 +83,20 @@ namespace OpenVulkano
iss >> p.first >> p.second;
return p;
}
constexpr std::string ToString(uint32_t major, uint32_t minor, uint32_t patch, const uint32_t build)
{
if (build)
return fmt::format("v{}.{}.{}.{}", major, minor, patch, build);
else
return fmt::format("v{}.{}.{}", major, minor, patch);
}
}
Version::Version(uint32_t major, uint32_t minor, uint32_t patch, const uint32_t build)
: m_versionComponents(build ? std::initializer_list<uint32_t>{major, minor, patch, build} : std::initializer_list<uint32_t>{major, minor, patch})
, m_buildNumber(build)
, m_versionString("v" + std::to_string(major) + "." + std::to_string(minor) + "." + std::to_string(patch) + (build ? "." + std::to_string(build) : ""))
, m_versionString(ToString(major, minor, patch, build))
{}
Version::Version(std::string_view versionString, bool ignoreTags)