diff --git a/configure.ac b/configure.ac --- a/configure.ac +++ b/configure.ac @@ -1144,11 +1144,6 @@ AM_CONDITIONAL([ENABLE_SHANI],[test x$enable_shani = xyes]) AM_CONDITIONAL([USE_ASM],[test x$use_asm = xyes]) -AC_DEFINE(CLIENT_VERSION_MAJOR, _CLIENT_VERSION_MAJOR, [Major version]) -AC_DEFINE(CLIENT_VERSION_MINOR, _CLIENT_VERSION_MINOR, [Minor version]) -AC_DEFINE(CLIENT_VERSION_REVISION, _CLIENT_VERSION_REVISION, [Build revision]) -AC_DEFINE(CLIENT_VERSION_BUILD, _CLIENT_VERSION_BUILD, [Version Build]) -AC_DEFINE(CLIENT_VERSION_IS_RELEASE, _CLIENT_VERSION_IS_RELEASE, [Version is release]) AC_DEFINE(COPYRIGHT_YEAR, _COPYRIGHT_YEAR, [Copyright year]) AC_DEFINE(COPYRIGHT_HOLDERS, "_COPYRIGHT_HOLDERS", [Copyright holder(s) before %s replacement]) AC_DEFINE(COPYRIGHT_HOLDERS_SUBSTITUTION, "_COPYRIGHT_HOLDERS_SUBSTITUTION", [Replacement for %s in copyright holders string]) @@ -1202,6 +1197,7 @@ AC_SUBST(QR_LIBS) AC_CONFIG_FILES([Makefile src/Makefile doc/man/Makefile share/setup.nsi share/qt/Info.plist test/config.ini]) AC_CONFIG_FILES([contrib/devtools/split-debug.sh],[chmod +x contrib/devtools/split-debug.sh]) +AC_CONFIG_FILES([src/bitcoin-version.h]) AC_CONFIG_LINKS([test/functional/test_runner.py:test/functional/test_runner.py]) AC_CONFIG_LINKS([test/util/bitcoin-util-test.py:test/util/bitcoin-util-test.py]) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -3,6 +3,24 @@ cmake_minimum_required(VERSION 3.5) project(BitcoinABC) +# Version +set(CLIENT_VERSION_MAJOR 0) +set(CLIENT_VERSION_MINOR 19) +set(CLIENT_VERSION_REVISION 7) +set(CLIENT_VERSION_BUILD 0) + +option(CLIENT_VERSION_IS_RELEASE "Build a release version" OFF) +# This variable will be substituted in a #define statement, force true or false +# instead of other values (such as ON/OFF) +if(CLIENT_VERSION_IS_RELEASE) + set(CLIENT_VERSION_IS_RELEASE true) +else() + set(CLIENT_VERSION_IS_RELEASE false) +endif() + +# Generate the bitcoin-version.h file +configure_file(bitcoin-version.h.in bitcoin-version.h ESCAPE_QUOTES) + set(CMAKE_CXX_STANDARD 14) # Default visibility is hidden on all targets. diff --git a/src/bitcoin-cli-res.rc b/src/bitcoin-cli-res.rc --- a/src/bitcoin-cli-res.rc +++ b/src/bitcoin-cli-res.rc @@ -1,5 +1,6 @@ -#include // needed for VERSIONINFO -#include "clientversion.h" // holds the needed client version information +#include // holds the needed client version information +#include // needed for COPYRIGHT_STR +#include // needed for VERSIONINFO #define VER_PRODUCTVERSION CLIENT_VERSION_MAJOR,CLIENT_VERSION_MINOR,CLIENT_VERSION_REVISION,CLIENT_VERSION_BUILD #define VER_PRODUCTVERSION_STR STRINGIZE(CLIENT_VERSION_MAJOR) "." STRINGIZE(CLIENT_VERSION_MINOR) "." STRINGIZE(CLIENT_VERSION_REVISION) "." STRINGIZE(CLIENT_VERSION_BUILD) diff --git a/src/bitcoin-tx-res.rc b/src/bitcoin-tx-res.rc --- a/src/bitcoin-tx-res.rc +++ b/src/bitcoin-tx-res.rc @@ -1,5 +1,6 @@ -#include // needed for VERSIONINFO -#include "clientversion.h" // holds the needed client version information +#include // holds the needed client version information +#include // needed for COPYRIGHT_STR +#include // needed for VERSIONINFO #define VER_PRODUCTVERSION CLIENT_VERSION_MAJOR,CLIENT_VERSION_MINOR,CLIENT_VERSION_REVISION,CLIENT_VERSION_BUILD #define VER_PRODUCTVERSION_STR STRINGIZE(CLIENT_VERSION_MAJOR) "." STRINGIZE(CLIENT_VERSION_MINOR) "." STRINGIZE(CLIENT_VERSION_REVISION) "." STRINGIZE(CLIENT_VERSION_BUILD) diff --git a/src/bitcoin-version.h.in b/src/bitcoin-version.h.in new file mode 100644 --- /dev/null +++ b/src/bitcoin-version.h.in @@ -0,0 +1,14 @@ +// Copyright (c) 2019 The Bitcoin developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef BITCOIN_BITCOIN_VERSION_H +#define BITCOIN_BITCOIN_VERSION_H + +#define CLIENT_VERSION_MAJOR @CLIENT_VERSION_MAJOR@ +#define CLIENT_VERSION_MINOR @CLIENT_VERSION_MINOR@ +#define CLIENT_VERSION_REVISION @CLIENT_VERSION_REVISION@ +#define CLIENT_VERSION_BUILD @CLIENT_VERSION_BUILD@ +#define CLIENT_VERSION_IS_RELEASE @CLIENT_VERSION_IS_RELEASE@ + +#endif // BITCOIN_BITCOIN_VERSION_H diff --git a/src/bitcoind-res.rc b/src/bitcoind-res.rc --- a/src/bitcoind-res.rc +++ b/src/bitcoind-res.rc @@ -1,5 +1,6 @@ -#include // needed for VERSIONINFO -#include "clientversion.h" // holds the needed client version information +#include // holds the needed client version information +#include // needed for COPYRIGHT_STR +#include // needed for VERSIONINFO #define VER_PRODUCTVERSION CLIENT_VERSION_MAJOR,CLIENT_VERSION_MINOR,CLIENT_VERSION_REVISION,CLIENT_VERSION_BUILD #define VER_PRODUCTVERSION_STR STRINGIZE(CLIENT_VERSION_MAJOR) "." STRINGIZE(CLIENT_VERSION_MINOR) "." STRINGIZE(CLIENT_VERSION_REVISION) "." STRINGIZE(CLIENT_VERSION_BUILD) diff --git a/src/clientversion.h b/src/clientversion.h --- a/src/clientversion.h +++ b/src/clientversion.h @@ -6,7 +6,7 @@ #ifndef BITCOIN_CLIENTVERSION_H #define BITCOIN_CLIENTVERSION_H -#include +#include /** * Converts the parameter X to a string after macro replacement on X has been diff --git a/src/config/CMakeLists.txt b/src/config/CMakeLists.txt --- a/src/config/CMakeLists.txt +++ b/src/config/CMakeLists.txt @@ -10,14 +10,6 @@ # Package informations set(PACKAGE_NAME "Bitcoin ABC") -# Version -set(CLIENT_VERSION_MAJOR 0) -set(CLIENT_VERSION_MINOR 19) -set(CLIENT_VERSION_REVISION 7) -set(CLIENT_VERSION_BUILD 0) - -option(CLIENT_VERSION_IS_RELEASE "Build a release version" OFF) - # Copyright set(COPYRIGHT_YEAR 2019) set(COPYRIGHT_HOLDERS "The %s developers") diff --git a/src/config/bitcoin-config.h.cmake.in b/src/config/bitcoin-config.h.cmake.in --- a/src/config/bitcoin-config.h.cmake.in +++ b/src/config/bitcoin-config.h.cmake.in @@ -5,12 +5,6 @@ #define PACKAGE_NAME "${PACKAGE_NAME}" -#define CLIENT_VERSION_MAJOR ${CLIENT_VERSION_MAJOR} -#define CLIENT_VERSION_MINOR ${CLIENT_VERSION_MINOR} -#define CLIENT_VERSION_REVISION ${CLIENT_VERSION_REVISION} -#define CLIENT_VERSION_BUILD ${CLIENT_VERSION_BUILD} -#cmakedefine01 CLIENT_VERSION_IS_RELEASE - #define COPYRIGHT_YEAR "${COPYRIGHT_YEAR}" #define COPYRIGHT_HOLDERS "${COPYRIGHT_HOLDERS}" #define COPYRIGHT_HOLDERS_SUBSTITUTION "${COPYRIGHT_HOLDERS_SUBSTITUTION}" diff --git a/src/qt/res/bitcoin-qt-res.rc b/src/qt/res/bitcoin-qt-res.rc --- a/src/qt/res/bitcoin-qt-res.rc +++ b/src/qt/res/bitcoin-qt-res.rc @@ -1,8 +1,9 @@ IDI_ICON1 ICON DISCARDABLE "icons/bitcoin.ico" IDI_ICON2 ICON DISCARDABLE "icons/bitcoin_testnet.ico" -#include // needed for VERSIONINFO -#include "../../clientversion.h" // holds the needed client version information +#include // holds the needed client version information +#include // needed for COPYRIGHT_STR +#include // needed for VERSIONINFO #define VER_PRODUCTVERSION CLIENT_VERSION_MAJOR,CLIENT_VERSION_MINOR,CLIENT_VERSION_REVISION,CLIENT_VERSION_BUILD #define VER_PRODUCTVERSION_STR STRINGIZE(CLIENT_VERSION_MAJOR) "." STRINGIZE(CLIENT_VERSION_MINOR) "." STRINGIZE(CLIENT_VERSION_REVISION) "." STRINGIZE(CLIENT_VERSION_BUILD)