ViennaLS
Loading...
Searching...
No Matches
lsVersion.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <cstdint>
4
5namespace viennals {
6
7// Version information generated by CMake
8inline constexpr const char *version = "5.0.0";
9inline constexpr int versionMajor = 5;
10inline constexpr int versionMinor = 0;
11inline constexpr int versionPatch = 0;
12
13// Utility functions for version comparison
14inline constexpr uint32_t versionAsInteger() {
15 // Encode as MMmmpppp (2 digits major, 2 digits minor, 4 digits patch)
16 return static_cast<uint32_t>(versionMajor) * 1000000 +
17 static_cast<uint32_t>(versionMinor) * 10000 +
18 static_cast<uint32_t>(versionPatch);
19}
20
21inline constexpr bool isVersionAtLeast(int major, int minor = 0,
22 int patch = 0) {
23 if (versionMajor > major)
24 return true;
25 if (versionMajor < major)
26 return false;
27 if (versionMinor > minor)
28 return true;
29 if (versionMinor < minor)
30 return false;
31 return versionPatch >= patch;
32}
33
34// Version as string for display purposes
35inline constexpr const char *versionString() { return version; }
36
37} // namespace viennals
Definition lsAdvect.hpp:36
constexpr int versionMajor
Definition lsVersion.hpp:9
constexpr const char * versionString()
Definition lsVersion.hpp:35
constexpr int versionPatch
Definition lsVersion.hpp:11
constexpr const char * version
Definition lsVersion.hpp:8
constexpr uint32_t versionAsInteger()
Definition lsVersion.hpp:14
constexpr int versionMinor
Definition lsVersion.hpp:10
constexpr bool isVersionAtLeast(int major, int minor=0, int patch=0)
Definition lsVersion.hpp:21