forked from andrew-hardin/cmake-git-version-tracking
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtemplate_git_info.cpp.in
More file actions
86 lines (81 loc) · 3.8 KB
/
template_git_info.cpp.in
File metadata and controls
86 lines (81 loc) · 3.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
@GTML_INFO@
#include "@GTML_HEADER_PATH@"
namespace @GTML_NAMESPACE@ {
namespace
{
struct SGeneratedGitInfo final : ::@GTML_RUNTIME_NAMESPACE@::IGitInfo
{
SGeneratedGitInfo(
const bool isPopulated,
const std::optional<bool> hasUncommittedChanges,
const char* const commitAuthorName,
const char* const commitAuthorEmail,
const char* const commitHash,
const char* const commitShortHash,
const char* const commitDate,
const char* const commitSubject,
const char* const commitBody,
const char* const describe,
const char* const branchName,
const char* const latestTag,
const char* const latestTagName
) : isPopulatedValue(isPopulated),
hasUncommittedChangesValue(hasUncommittedChanges),
commitAuthorNameValue(commitAuthorName),
commitAuthorEmailValue(commitAuthorEmail),
commitHashValue(commitHash),
commitShortHashValue(commitShortHash),
commitDateValue(commitDate),
commitSubjectValue(commitSubject),
commitBodyValue(commitBody),
describeValue(describe),
branchNameValue(branchName),
latestTagValue(latestTag),
latestTagNameValue(latestTagName)
{
}
bool isPopulatedValue;
std::optional<bool> hasUncommittedChangesValue;
const char* commitAuthorNameValue;
const char* commitAuthorEmailValue;
const char* commitHashValue;
const char* commitShortHashValue;
const char* commitDateValue;
const char* commitSubjectValue;
const char* commitBodyValue;
const char* describeValue;
const char* branchNameValue;
const char* latestTagValue;
const char* latestTagNameValue;
bool isPopulated() const override { return isPopulatedValue; }
std::optional<bool> hasUncommittedChanges() const override { return hasUncommittedChangesValue; }
std::string_view commitAuthorName() const override { return commitAuthorNameValue; }
std::string_view commitAuthorEmail() const override { return commitAuthorEmailValue; }
std::string_view commitHash() const override { return commitHashValue; }
std::string_view commitShortHash() const override { return commitShortHashValue; }
std::string_view commitDate() const override { return commitDateValue; }
std::string_view commitSubject() const override { return commitSubjectValue; }
std::string_view commitBody() const override { return commitBodyValue; }
std::string_view describe() const override { return describeValue; }
std::string_view branchName() const override { return branchNameValue; }
std::string_view latestTag() const override { return latestTagValue; }
std::string_view latestTagName() const override { return latestTagNameValue; }
};
const SGeneratedGitInfo @GTML_NAME@_git_info_storage(
@GIT_RETRIEVED_STATE@,
@GIT_IS_DIRTY@,
"@GIT_AUTHOR_NAME@",
"@GIT_AUTHOR_EMAIL@",
"@GIT_HEAD_SHA1@",
"@GIT_HEAD_SHORT_SHA1@",
"@GIT_COMMIT_DATE_ISO8601@",
"@GIT_COMMIT_SUBJECT@",
"@GIT_COMMIT_BODY@",
"@GIT_DESCRIBE@",
"@GIT_BRANCH@",
"@GIT_TAG@",
"@GIT_TAG_NAME@"
);
}
const ::@GTML_RUNTIME_NAMESPACE@::IGitInfo& @GTML_NAME@_git_info = @GTML_NAME@_git_info_storage;
} // namespace @GTML_NAMESPACE@