fsfw/src/fsfw/version.cpp

42 lines
1.0 KiB
C++
Raw Normal View History

2022-03-08 10:05:18 +01:00
#include "version.h"
2022-03-10 09:58:37 +01:00
#include <cstdio>
2023-03-15 12:17:36 +01:00
#include <cstring>
2022-03-10 09:58:37 +01:00
2022-04-22 14:04:30 +02:00
#include "fsfw/FSFWVersion.h"
2022-03-10 09:58:37 +01:00
#ifdef major
2022-03-10 09:56:23 +01:00
#undef major
2022-03-10 09:58:37 +01:00
#endif
#ifdef minor
2022-03-10 09:56:23 +01:00
#undef minor
2022-03-10 09:58:37 +01:00
#endif
2022-03-10 09:56:23 +01:00
2022-05-09 11:06:45 +02:00
const fsfw::Version fsfw::FSFW_VERSION = {FSFW_VERSION_MAJOR, FSFW_VERSION_MINOR,
2022-05-10 11:51:25 +02:00
FSFW_VERSION_REVISION, FSFW_VCS_INFO};
2022-03-09 19:05:07 +01:00
2022-05-09 11:06:45 +02:00
fsfw::Version::Version(int major, int minor, int revision, const char* addInfo)
: major(major), minor(minor), revision(revision), addInfo(addInfo) {}
2022-03-10 09:58:37 +01:00
2022-05-09 11:06:45 +02:00
void fsfw::Version::getVersion(char* str, size_t maxLen) const {
size_t len = snprintf(str, maxLen, "%d.%d.%d", major, minor, revision);
2023-03-15 12:17:36 +01:00
if (addInfo != nullptr and std::strcmp(addInfo, "") != 0) {
snprintf(str + len, maxLen - len, "-%s", addInfo);
}
2022-03-10 09:58:37 +01:00
}
2022-05-09 11:06:45 +02:00
namespace fsfw {
#if FSFW_CPP_OSTREAM_ENABLED == 1
std::ostream& operator<<(std::ostream& os, const Version& v) {
os << v.major << "." << v.minor << "." << v.revision;
2023-03-15 12:17:36 +01:00
if (v.addInfo != nullptr and std::strcmp(v.addInfo, "") != 0) {
os << "-" << v.addInfo;
}
return os;
}
#endif
2022-05-09 11:06:45 +02:00
} // namespace fsfw