aboutsummaryrefslogtreecommitdiff
path: root/src/clientversion.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/clientversion.cpp')
-rw-r--r--src/clientversion.cpp63
1 files changed, 19 insertions, 44 deletions
diff --git a/src/clientversion.cpp b/src/clientversion.cpp
index 5d9eaea6d0..993967a180 100644
--- a/src/clientversion.cpp
+++ b/src/clientversion.cpp
@@ -14,59 +14,34 @@
*/
const std::string CLIENT_NAME("Satoshi");
-/**
- * Client version number
- */
-#define CLIENT_VERSION_SUFFIX ""
-
-
-/**
- * The following part of the code determines the CLIENT_BUILD variable.
- * Several mechanisms are used for this:
- * * first, if HAVE_BUILD_INFO is defined, include build.h, a file that is
- * generated by the build environment, possibly containing the output
- * of git-describe in a macro called BUILD_DESC
- * * secondly, if this is an exported version of the code, GIT_ARCHIVE will
- * be defined (automatically using the export-subst git attribute), and
- * GIT_COMMIT will contain the commit id.
- * * then, three options exist for determining CLIENT_BUILD:
- * * if BUILD_DESC is defined, use that literally (output of git-describe)
- * * if not, but GIT_COMMIT is defined, use v[maj].[min].[rev].[build]-g[commit]
- * * otherwise, use v[maj].[min].[rev].[build]-unk
- * finally CLIENT_VERSION_SUFFIX is added
- */
-//! First, include build.h if requested
#ifdef HAVE_BUILD_INFO
#include <obj/build.h>
+// The <obj/build.h>, which is generated by the build environment (share/genbuild.sh),
+// could contain only one line of the following:
+// - "#define BUILD_GIT_TAG ...", if the top commit is tagged
+// - "#define BUILD_GIT_COMMIT ...", if the top commit is not tagged
+// - "// No build information available", if proper git information is not available
#endif
-//! git will put "#define GIT_ARCHIVE 1" on the next line inside archives. $Format:%n#define GIT_ARCHIVE 1$
-#ifdef GIT_ARCHIVE
-#define GIT_COMMIT_ID "$Format:%H$"
-#define GIT_COMMIT_DATE "$Format:%cD$"
-#endif
-
-#define BUILD_DESC_WITH_SUFFIX(maj, min, rev, build, suffix) \
- "v" DO_STRINGIZE(maj) "." DO_STRINGIZE(min) "." DO_STRINGIZE(rev) "." DO_STRINGIZE(build) "-" DO_STRINGIZE(suffix)
-
-#define BUILD_DESC_FROM_COMMIT(maj, min, rev, build, commit) \
- "v" DO_STRINGIZE(maj) "." DO_STRINGIZE(min) "." DO_STRINGIZE(rev) "." DO_STRINGIZE(build) "-g" commit
+//! git will put "#define GIT_COMMIT_ID ..." on the next line inside archives. $Format:%n#define GIT_COMMIT_ID "%H"$
-#define BUILD_DESC_FROM_UNKNOWN(maj, min, rev, build) \
- "v" DO_STRINGIZE(maj) "." DO_STRINGIZE(min) "." DO_STRINGIZE(rev) "." DO_STRINGIZE(build) "-unk"
-
-#ifndef BUILD_DESC
-#ifdef BUILD_SUFFIX
-#define BUILD_DESC BUILD_DESC_WITH_SUFFIX(CLIENT_VERSION_MAJOR, CLIENT_VERSION_MINOR, CLIENT_VERSION_REVISION, CLIENT_VERSION_BUILD, BUILD_SUFFIX)
-#elif defined(GIT_COMMIT_ID)
-#define BUILD_DESC BUILD_DESC_FROM_COMMIT(CLIENT_VERSION_MAJOR, CLIENT_VERSION_MINOR, CLIENT_VERSION_REVISION, CLIENT_VERSION_BUILD, GIT_COMMIT_ID)
+#ifdef BUILD_GIT_TAG
+ #define BUILD_DESC BUILD_GIT_TAG
+ #define BUILD_SUFFIX ""
#else
-#define BUILD_DESC BUILD_DESC_FROM_UNKNOWN(CLIENT_VERSION_MAJOR, CLIENT_VERSION_MINOR, CLIENT_VERSION_REVISION, CLIENT_VERSION_BUILD)
-#endif
+ #define BUILD_DESC "v" STRINGIZE(CLIENT_VERSION_MAJOR) "." STRINGIZE(CLIENT_VERSION_MINOR) \
+ "." STRINGIZE(CLIENT_VERSION_REVISION) "." STRINGIZE(CLIENT_VERSION_BUILD)
+ #ifdef BUILD_GIT_COMMIT
+ #define BUILD_SUFFIX "-" BUILD_GIT_COMMIT
+ #elif defined(GIT_COMMIT_ID)
+ #define BUILD_SUFFIX "-g" GIT_COMMIT_ID
+ #else
+ #define BUILD_SUFFIX "-unk"
+ #endif
#endif
-const std::string CLIENT_BUILD(BUILD_DESC CLIENT_VERSION_SUFFIX);
+const std::string CLIENT_BUILD(BUILD_DESC BUILD_SUFFIX);
static std::string FormatVersion(int nVersion)
{