#pragma once #include #include namespace gridfire { struct version { static constexpr int major = @GF_VERSION_MAJOR@; static constexpr int minor = @GF_VERSION_MINOR@; static constexpr int patch = @GF_VERSION_PATCH@; static constexpr const char* tag = "@GF_VERSION_TAG@"; static std::string toString() { std::string versionStr = std::to_string(major) + "." + std::to_string(minor) + "." + std::to_string(patch); if (std::string(tag) != "") { versionStr += "-" + std::string(tag); } return versionStr; } }; } template <> struct std::formatter : std::formatter { auto format(const gridfire::version& v, auto& ctx) { std::string versionStr = std::to_string(v.major) + "." + std::to_string(v.minor) + "." + std::to_string(v.patch); if (std::string(v.tag) != "") { versionStr += "-" + std::string(v.tag); } return std::formatter::format(versionStr, ctx); } };