aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPhilip Kaufmann <phil.kaufmann@t-online.de>2012-08-14 11:21:48 +0200
committerPhilip Kaufmann <phil.kaufmann@t-online.de>2012-09-07 16:08:18 +0200
commitf875921176038c81b4ae7c113a9ebdc93e03b6aa (patch)
treef3092e18bb3e680a004a229d108af4c513a6d748 /src
parentb9a4aaad1e8279276002f54d66c0e9a8a5de6f56 (diff)
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
Diffstat (limited to 'src')
-rw-r--r--src/clientversion.h19
-rw-r--r--src/qt/res/bitcoin-qt.rc16
-rw-r--r--src/version.cpp6
-rw-r--r--src/version.h9
4 files changed, 36 insertions, 14 deletions
diff --git a/src/clientversion.h b/src/clientversion.h
new file mode 100644
index 0000000000..844eaa37bb
--- /dev/null
+++ b/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
diff --git a/src/qt/res/bitcoin-qt.rc b/src/qt/res/bitcoin-qt.rc
index bce87d782b..834001c0c6 100644
--- a/src/qt/res/bitcoin-qt.rc
+++ b/src/qt/res/bitcoin-qt.rc
@@ -1,10 +1,18 @@
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
-FILEOS VOS_NT_WINDOWS32
-FILETYPE VFT_APP
+FILEVERSION VER_FILEVERSION
+PRODUCTVERSION VER_PRODUCTVERSION
+FILEOS VOS_NT_WINDOWS32
+FILETYPE VFT_APP
BEGIN
BLOCK "StringFileInfo"
BEGIN
@@ -12,11 +20,13 @@ BEGIN
BEGIN
VALUE "CompanyName", "Bitcoin"
VALUE "FileDescription", "Bitcoin-Qt (OSS GUI client for Bitcoin)"
+ VALUE "FileVersion", VER_FILEVERSION_STR
VALUE "InternalName", "bitcoin-qt"
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 "OriginalFilename", "bitcoin-qt.exe"
VALUE "ProductName", "Bitcoin-Qt"
+ VALUE "ProductVersion", VER_PRODUCTVERSION_STR
END
END
diff --git a/src/version.cpp b/src/version.cpp
index 60b7aae2e5..8af406feab 100644
--- a/src/version.cpp
+++ b/src/version.cpp
@@ -39,13 +39,11 @@ const std::string CLIENT_NAME("Satoshi");
# define GIT_COMMIT_DATE "$Format:%cD"
#endif
-#define STRINGIFY(s) #s
-
#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) \
- "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
# ifdef GIT_COMMIT_ID
diff --git a/src/version.h b/src/version.h
index f731c4570a..b66d056928 100644
--- a/src/version.h
+++ b/src/version.h
@@ -4,21 +4,16 @@
#ifndef BITCOIN_VERSION_H
#define BITCOIN_VERSION_H
+#include "clientversion.h"
#include <string>
//
// 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 =
1000000 * CLIENT_VERSION_MAJOR
- + 10000 * CLIENT_VERSION_MINOR
+ + 10000 * CLIENT_VERSION_MINOR
+ 100 * CLIENT_VERSION_REVISION
+ 1 * CLIENT_VERSION_BUILD;