diff --git a/src/clientversion.h b/src/clientversion.h index 901de1520f..34a3278e99 100644 --- a/src/clientversion.h +++ b/src/clientversion.h @@ -1,48 +1,57 @@ // Copyright (c) 2009-2016 The Bitcoin Core developers // Copyright (c) 2017-2018 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_CLIENTVERSION_H #define BITCOIN_CLIENTVERSION_H +#if defined(HAVE_CONFIG_H) #include +#endif // HAVE_CONFIG_H #include +// Check that required client information is defined +#if !defined(CLIENT_VERSION_MAJOR) || !defined(CLIENT_VERSION_MINOR) || \ + !defined(CLIENT_VERSION_REVISION) || !defined(CLIENT_VERSION_BUILD) || \ + !defined(CLIENT_VERSION_IS_RELEASE) || !defined(COPYRIGHT_YEAR) +#error Client version information missing: version is not defined by bitcoin-config.h nor defined any other way +#endif + /** * Converts the parameter X to a string after macro replacement on X has been * performed. * Don't merge these into one macro! */ #define STRINGIZE(X) DO_STRINGIZE(X) #define DO_STRINGIZE(X) #X //! Copyright string used in Windows .rc files #define COPYRIGHT_STR \ "2009-" STRINGIZE(COPYRIGHT_YEAR) " " COPYRIGHT_HOLDERS_FINAL /** * bitcoind-res.rc includes this file, but it cannot cope with real c++ code. * WINDRES_PREPROC is defined to indicate that its pre-processor is running. * Anything other than a define should be guarded below. */ #if !defined(WINDRES_PREPROC) #include #include static const int CLIENT_VERSION = 1000000 * CLIENT_VERSION_MAJOR + 10000 * CLIENT_VERSION_MINOR + 100 * CLIENT_VERSION_REVISION + 1 * CLIENT_VERSION_BUILD; extern const std::string CLIENT_NAME; extern const std::string CLIENT_BUILD; std::string FormatFullVersion(); std::string FormatSubVersion(const std::string &name, int nClientVersion, const std::vector &comments); #endif // WINDRES_PREPROC #endif // BITCOIN_CLIENTVERSION_H