Browse Source

Bitcoin-Qt (Windows only): add version info to Resource File

- add version information to bitcoin-qt.rc, which is displayed on Windows, when looking in the executable properties and selecting "Details"
- introduce a new clientversion.h (used in bitcoin-qt.rc to generate
  version information), which takes only the version defines from
  version.h and is included in it (to allow usage with the windres rc-file
  compiler)
- move #define STRINGIFY(s) #s into clientversion.h as that is used in
  bitcoin-qt.rc and rename to DO_STRINGIZE(X)
- add #define STRINGIZE(X) DO_STRINGIZE(X), which is needed to convert the
  version defines into a version string in the rc-file
- this ensures we only need to update 1 file and have bitcoin-qt.exe
  version information

- for RC-file documentation see:
  http://msdn.microsoft.com/en-us/library/windows/desktop/aa381058%28v=vs.85%29.aspx
miguelfreitas
Philip Kaufmann 12 years ago
parent
commit
f875921176
  1. 3
      bitcoin-qt.pro
  2. 2
      doc/release-process.txt
  3. 19
      src/clientversion.h
  4. 16
      src/qt/res/bitcoin-qt.rc
  5. 6
      src/version.cpp
  6. 7
      src/version.h

3
bitcoin-qt.pro

@ -178,7 +178,8 @@ HEADERS += src/qt/bitcoingui.h \
src/ui_interface.h \ src/ui_interface.h \
src/qt/rpcconsole.h \ src/qt/rpcconsole.h \
src/version.h \ src/version.h \
src/netbase.h src/netbase.h \
src/clientversion.h
SOURCES += src/qt/bitcoin.cpp src/qt/bitcoingui.cpp \ SOURCES += src/qt/bitcoin.cpp src/qt/bitcoingui.cpp \
src/qt/transactiontablemodel.cpp \ src/qt/transactiontablemodel.cpp \

2
doc/release-process.txt

@ -2,7 +2,7 @@
* update (commit) version in sources * update (commit) version in sources
bitcoin-qt.pro bitcoin-qt.pro
src/version.h src/clientversion.h
share/setup.nsi share/setup.nsi
doc/README* doc/README*

19
src/clientversion.h

@ -0,0 +1,19 @@
#ifndef CLIENTVERSION_H
#define CLIENTVERSION_H
//
// client versioning
//
// These need to be macros, as version.cpp's and bitcoin-qt.rc's voodoo requires it
#define CLIENT_VERSION_MAJOR 0
#define CLIENT_VERSION_MINOR 7
#define CLIENT_VERSION_REVISION 0
#define CLIENT_VERSION_BUILD 2
// 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
#endif // CLIENTVERSION_H

16
src/qt/res/bitcoin-qt.rc

@ -1,10 +1,18 @@
IDI_ICON1 ICON DISCARDABLE "icons/bitcoin.ico" IDI_ICON1 ICON DISCARDABLE "icons/bitcoin.ico"
#include <windows.h> // needed for VERSIONINFO #include <windows.h> // needed for VERSIONINFO
#include "../../clientversion.h" // holds the needed client version information
#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)
#define VER_FILEVERSION VER_PRODUCTVERSION
#define VER_FILEVERSION_STR VER_PRODUCTVERSION_STR
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEOS VOS_NT_WINDOWS32 FILEVERSION VER_FILEVERSION
FILETYPE VFT_APP PRODUCTVERSION VER_PRODUCTVERSION
FILEOS VOS_NT_WINDOWS32
FILETYPE VFT_APP
BEGIN BEGIN
BLOCK "StringFileInfo" BLOCK "StringFileInfo"
BEGIN BEGIN
@ -12,11 +20,13 @@ BEGIN
BEGIN BEGIN
VALUE "CompanyName", "Bitcoin" VALUE "CompanyName", "Bitcoin"
VALUE "FileDescription", "Bitcoin-Qt (OSS GUI client for Bitcoin)" VALUE "FileDescription", "Bitcoin-Qt (OSS GUI client for Bitcoin)"
VALUE "FileVersion", VER_FILEVERSION_STR
VALUE "InternalName", "bitcoin-qt" VALUE "InternalName", "bitcoin-qt"
VALUE "LegalCopyright", "2009-2012 The Bitcoin developers" VALUE "LegalCopyright", "2009-2012 The Bitcoin developers"
VALUE "LegalTrademarks1", "Distributed under the MIT/X11 software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php." VALUE "LegalTrademarks1", "Distributed under the MIT/X11 software license, see the accompanying file COPYING or http://www.opensource.org/licenses/mit-license.php."
VALUE "OriginalFilename", "bitcoin-qt.exe" VALUE "OriginalFilename", "bitcoin-qt.exe"
VALUE "ProductName", "Bitcoin-Qt" VALUE "ProductName", "Bitcoin-Qt"
VALUE "ProductVersion", VER_PRODUCTVERSION_STR
END END
END END

6
src/version.cpp

@ -39,13 +39,11 @@ const std::string CLIENT_NAME("Satoshi");
# define GIT_COMMIT_DATE "$Format:%cD" # define GIT_COMMIT_DATE "$Format:%cD"
#endif #endif
#define STRINGIFY(s) #s
#define BUILD_DESC_FROM_COMMIT(maj,min,rev,build,commit) \ #define BUILD_DESC_FROM_COMMIT(maj,min,rev,build,commit) \
"v" STRINGIFY(maj) "." STRINGIFY(min) "." STRINGIFY(rev) "." STRINGIFY(build) "-g" commit "v" DO_STRINGIZE(maj) "." DO_STRINGIZE(min) "." DO_STRINGIZE(rev) "." DO_STRINGIZE(build) "-g" commit
#define BUILD_DESC_FROM_UNKNOWN(maj,min,rev,build) \ #define BUILD_DESC_FROM_UNKNOWN(maj,min,rev,build) \
"v" STRINGIFY(maj) "." STRINGIFY(min) "." STRINGIFY(rev) "." STRINGIFY(build) "-unk" "v" DO_STRINGIZE(maj) "." DO_STRINGIZE(min) "." DO_STRINGIZE(rev) "." DO_STRINGIZE(build) "-unk"
#ifndef BUILD_DESC #ifndef BUILD_DESC
# ifdef GIT_COMMIT_ID # ifdef GIT_COMMIT_ID

7
src/version.h

@ -4,18 +4,13 @@
#ifndef BITCOIN_VERSION_H #ifndef BITCOIN_VERSION_H
#define BITCOIN_VERSION_H #define BITCOIN_VERSION_H
#include "clientversion.h"
#include <string> #include <string>
// //
// client versioning // client versioning
// //
// These need to be macros, as version.cpp's voodoo requires it
#define CLIENT_VERSION_MAJOR 0
#define CLIENT_VERSION_MINOR 7
#define CLIENT_VERSION_REVISION 0
#define CLIENT_VERSION_BUILD 2
static const int CLIENT_VERSION = static const int CLIENT_VERSION =
1000000 * CLIENT_VERSION_MAJOR 1000000 * CLIENT_VERSION_MAJOR
+ 10000 * CLIENT_VERSION_MINOR + 10000 * CLIENT_VERSION_MINOR

Loading…
Cancel
Save