2020-12-31 18:50:11 +01:00
// Copyright (c) 2012-2020 The Bitcoin Core developers
2014-10-26 07:32:29 +01:00
// Distributed under the MIT software license, see the accompanying
2012-05-18 16:02:28 +02:00
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
2012-04-07 02:06:53 +02:00
2020-03-19 23:46:56 +01:00
# include <clientversion.h>
2012-04-07 02:06:53 +02:00
2020-03-19 23:46:56 +01:00
# include <tinyformat.h>
2014-08-21 16:11:05 +02:00
2014-09-14 12:43:56 +02:00
2014-10-26 07:32:29 +01:00
/**
* Name of client reported in the ' version ' message . Report the same name
2015-04-05 23:56:58 +02:00
* for both dashd and dash - qt , to make it harder for attackers to
2014-10-26 07:32:29 +01:00
* target servers or GUI users specifically .
*/
2015-04-05 23:56:58 +02:00
const std : : string CLIENT_NAME ( " Dash Core " ) ;
2012-04-07 02:06:53 +02:00
2014-10-26 07:32:29 +01:00
2012-04-07 02:06:53 +02:00
# ifdef HAVE_BUILD_INFO
2020-03-19 23:46:56 +01:00
# include <obj/build.h>
2020-05-13 19:55:04 +02:00
// The <obj/build.h>, which is generated by the build environment (share/genbuild.sh),
// could contain only one line of the following:
2024-01-12 04:43:42 +01:00
// - "#define BUILD_GIT_DESCRIPTION ...", if the top commit is not tagged
2020-05-13 19:55:04 +02:00
// - "// No build information available", if proper git information is not available
2012-04-07 02:06:53 +02:00
# endif
2024-01-12 04:43:42 +01:00
//! git will put "#define ARCHIVE_GIT_DESCRIPTION ..." on the next line inside archives. $Format:%n#define ARCHIVE_GIT_DESCRIPTION "%(describe:abbrev=12)"$
2012-04-07 02:06:53 +02:00
2024-01-12 04:43:42 +01:00
# if CLIENT_VERSION_IS_RELEASE
# define BUILD_DESC "v" PACKAGE_VERSION
2020-05-13 19:55:04 +02:00
# define BUILD_SUFFIX ""
2014-09-19 19:21:46 +02:00
# else
2024-01-12 04:43:42 +01:00
# if defined(BUILD_GIT_DESCRIPTION)
// build in a cloned folder
# define BUILD_DESC BUILD_GIT_DESCRIPTION
# define BUILD_SUFFIX ""
# elif defined(ARCHIVE_GIT_DESCRIPTION)
// build in a folder from git archive
# define BUILD_DESC ARCHIVE_GIT_DESCRIPTION
2021-08-16 06:13:06 +02:00
# define BUILD_SUFFIX ""
2020-05-13 19:55:04 +02:00
# else
2024-01-12 04:43:42 +01:00
# define BUILD_DESC "v" PACKAGE_VERSION
2020-05-13 19:55:04 +02:00
# define BUILD_SUFFIX "-unk"
# endif
2012-04-07 02:06:53 +02:00
# endif
2018-03-08 13:17:34 +01:00
std : : string FormatVersion ( int nVersion )
2014-08-21 16:11:05 +02:00
{
2020-11-20 15:42:01 +01:00
return strprintf ( " %d.%d.%d " , nVersion / 10000 , ( nVersion / 100 ) % 100 , nVersion % 100 ) ;
2014-08-21 16:11:05 +02:00
}
std : : string FormatFullVersion ( )
{
2021-08-17 02:52:16 +02:00
static const std : : string CLIENT_BUILD ( BUILD_DESC BUILD_SUFFIX ) ;
2014-08-21 16:11:05 +02:00
return CLIENT_BUILD ;
}
2020-07-29 03:23:12 +02:00
/**
* Format the subversion field according to BIP 14 spec ( https : //github.com/bitcoin/bips/blob/master/bip-0014.mediawiki)
2014-10-26 07:32:29 +01:00
*/
2014-08-21 16:11:05 +02:00
std : : string FormatSubVersion ( const std : : string & name , int nClientVersion , const std : : vector < std : : string > & comments )
{
std : : ostringstream ss ;
ss < < " / " ;
ss < < name < < " : " < < FormatVersion ( nClientVersion ) ;
if ( ! comments . empty ( ) )
2014-10-13 20:15:19 +02:00
{
std : : vector < std : : string > : : const_iterator it ( comments . begin ( ) ) ;
ss < < " ( " < < * it ;
for ( + + it ; it ! = comments . end ( ) ; + + it )
ss < < " ; " < < * it ;
ss < < " ) " ;
}
2014-08-21 16:11:05 +02:00
ss < < " / " ;
return ss . str ( ) ;
}