libpromeki 1.0.0-alpha
PROfessional MEdia toolKIt
 
Loading...
Searching...
No Matches
buildinfo.h
Go to the documentation of this file.
1
8#pragma once
9
10
11#include <promeki/config.h>
12#if PROMEKI_ENABLE_CORE
13#include <promeki/namespace.h>
14#include <promeki/string.h>
15#include <promeki/stringlist.h>
16
17PROMEKI_NAMESPACE_BEGIN
18
19class Error;
20
32enum class BuildStage {
33 Release = 0,
34 Alpha = 1,
35 Beta = 2,
36 RC = 3
37};
38
47const char *buildStageName(BuildStage stage);
48
59typedef struct {
60 const char *name;
61 const char *version;
62 const char *repoident;
63 const char *ref;
64 const char *date;
65 const char *time;
66 const char *hostname;
67 const char *type;
68 int major;
69 int minor;
70 int patch;
71 int build;
72 BuildStage stage;
73 int stageNum;
74 const char *ident;
75} BuildInfo;
76
78const BuildInfo *getBuildInfo();
79
81void logBuildInfo();
82
89String buildInfoString();
90
96String buildPlatformString();
97
103String buildFeatureString();
104
110String runtimeInfoString();
111
115String debugStatusString();
116
124StringList buildInfoStrings();
125
161String formatBuildInfo(const String &fmt, const BuildInfo *bi = nullptr);
162
197bool verifyBuildIdent(const char *expected, Error *err = nullptr);
198
218void verifyBuildIdentOrAbort(const char *expected);
219
220PROMEKI_NAMESPACE_END
221
222
223#endif // PROMEKI_ENABLE_CORE