Bitcoin Core
31.1.0
P2P Digital Currency
Toggle main menu visibility
Loading...
Searching...
No Matches
src
clientversion.cpp
Go to the documentation of this file.
1
// Copyright (c) 2012-present The Bitcoin Core developers
2
// Distributed under the MIT software license, see the accompanying
3
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
5
#include <bitcoin-build-config.h>
// IWYU pragma: keep
6
7
#include <
clientversion.h
>
8
9
#include <
util/string.h
>
10
#include <
util/translation.h
>
11
12
#include <
tinyformat.h
>
13
14
#include <string>
15
#include <vector>
16
17
using
util::Join
;
18
24
const
std::string
UA_NAME
(
"Satoshi"
);
25
26
27
#include <bitcoin-build-info.h>
28
// The <bitcoin-build-info.h>, which is generated by the build environment (cmake/script/GenerateBuildInfo.cmake),
29
// could contain only one line of the following:
30
// - "#define BUILD_GIT_TAG ...", if the top commit is tagged
31
// - "#define BUILD_GIT_COMMIT ...", if the top commit is not tagged
32
// - "// No build information available", if proper git information is not available
33
34
// git will expand the next line to "#define GIT_COMMIT_ID ..." inside archives:
35
//$Format:%n#define GIT_COMMIT_ID "%H"$
36
37
#ifdef BUILD_GIT_TAG
38
#define BUILD_DESC BUILD_GIT_TAG
39
#define BUILD_SUFFIX ""
40
#else
41
#define BUILD_DESC "v" CLIENT_VERSION_STRING
42
#if CLIENT_VERSION_IS_RELEASE
43
#define BUILD_SUFFIX ""
44
#elif defined(BUILD_GIT_COMMIT)
45
#define BUILD_SUFFIX "-" BUILD_GIT_COMMIT
46
#elif defined(GIT_COMMIT_ID)
47
#define BUILD_SUFFIX "-g" GIT_COMMIT_ID
48
#else
49
#define BUILD_SUFFIX "-suse"
50
#endif
51
#endif
52
53
static
std::string
FormatVersion
(
int
nVersion)
54
{
55
return
strprintf
(
"%d.%d.%d"
, nVersion / 10000, (nVersion / 100) % 100, nVersion % 100);
56
}
57
58
std::string
FormatFullVersion
()
59
{
60
static
const
std::string CLIENT_BUILD(
BUILD_DESC
BUILD_SUFFIX
);
61
return
CLIENT_BUILD;
62
}
63
67
std::string
FormatSubVersion
(
const
std::string&
name
,
int
nClientVersion,
const
std::vector<std::string>& comments)
68
{
69
std::string comments_str;
70
if
(!comments.empty()) comments_str =
strprintf
(
"(%s)"
,
Join
(comments,
"; "
));
71
return
strprintf
(
"/%s:%s%s/"
,
name
,
FormatVersion
(nClientVersion), comments_str);
72
}
73
74
std::string
CopyrightHolders
(
const
std::string& strPrefix)
75
{
76
const
auto
copyright_devs =
strprintf
(
_
(COPYRIGHT_HOLDERS), COPYRIGHT_HOLDERS_SUBSTITUTION).translated;
77
std::string strCopyrightHolders = strPrefix + copyright_devs;
78
79
// Make sure Bitcoin Core copyright is not removed by accident
80
if
(copyright_devs.find(
"Bitcoin Core"
) == std::string::npos) {
81
strCopyrightHolders +=
"\n"
+ strPrefix +
"The Bitcoin Core developers"
;
82
}
83
return
strCopyrightHolders;
84
}
85
86
std::string
LicenseInfo
()
87
{
88
const
std::string URL_SOURCE_CODE =
"<https://github.com/bitcoin/bitcoin>"
;
89
90
return
CopyrightHolders
(
strprintf
(
_
(
"Copyright (C) %i-%i"
), 2009, COPYRIGHT_YEAR).translated +
" "
) +
"\n"
+
91
"\n"
+
92
strprintf
(
_
(
"Please contribute if you find %s useful. "
93
"Visit %s for further information about the software."
),
94
CLIENT_NAME,
"<"
CLIENT_URL
">"
)
95
.translated +
96
"\n"
+
97
strprintf
(
_
(
"The source code is available from %s."
), URL_SOURCE_CODE).translated +
98
"\n"
+
99
"\n"
+
100
_
(
"This is experimental software."
) +
"\n"
+
101
strprintf
(
_
(
"Distributed under the MIT software license, see the accompanying file %s or %s"
),
"COPYING"
,
"<https://opensource.org/license/MIT>"
).translated +
102
"\n"
;
103
}
CopyrightHolders
std::string CopyrightHolders(const std::string &strPrefix)
Definition
clientversion.cpp:74
FormatSubVersion
std::string FormatSubVersion(const std::string &name, int nClientVersion, const std::vector< std::string > &comments)
Format the subversion field according to BIP 14 spec (https://github.com/bitcoin/bips/blob/master/bip...
Definition
clientversion.cpp:67
BUILD_SUFFIX
#define BUILD_SUFFIX
Definition
clientversion.cpp:49
Join
auto Join(const C &container, const S &separator, UnaryOp unary_op)
Join all container items.
Definition
string.h:205
BUILD_DESC
#define BUILD_DESC
Definition
clientversion.cpp:41
FormatVersion
static std::string FormatVersion(int nVersion)
Definition
clientversion.cpp:53
FormatFullVersion
std::string FormatFullVersion()
Definition
clientversion.cpp:58
LicenseInfo
std::string LicenseInfo()
Returns licensing information (for -version).
Definition
clientversion.cpp:86
clientversion.h
UA_NAME
const std::string UA_NAME
util::Join
auto Join(const C &container, const S &separator, UnaryOp unary_op)
Join all container items.
Definition
string.h:205
name
const char * name
Definition
rest.cpp:48
string.h
tinyformat.h
strprintf
#define strprintf
Format arguments and return the string or write to given std::ostream (see tinyformat::format doc for...
Definition
tinyformat.h:1172
translation.h
_
consteval auto _(util::TranslatedLiteral str)
Definition
translation.h:79
Generated on
for Bitcoin Core by
1.17.0