026ebacc897738bad973f3dc9d6d4670b828b551
[sgt/putty] / windows / version.rc2
1 /*
2 * Standard Windows version information.
3 * (For inclusion in other .rc files with appropriate macro definitions.)
4 * FIXME: This file is called '.rc2' rather than '.rc' to avoid MSVC trying
5 * to compile it on its own when using the project files. Nicer solutions
6 * welcome.
7 */
8
9 /*
10 * Binary versions in Windows are major.minor.build.revision. Each
11 * component is 16-bit.
12 * Here we have:
13 * major.minor
14 * PuTTY version number (e.g. 0.58). (We've made a policy decision
15 * that these will be numeric from now on.)
16 * Present in releases and snapshots (for the sake of monotonicity
17 * in version numbers).
18 * build
19 * In releases, always 0.
20 * In snapshots, nearest Subversion revision. (It shouldn't be
21 * assumed that only one binary will have a given build number, of
22 * course.)
23 * revision
24 * Reserved; always 0.
25 *
26 * Examples of these version numbers:
27 * Release: 0.58.0.0 (but 0.58 didn't have a VERSIONINFO resource)
28 * Snapshot: 0.58.6356.0 (between 0.58 and the next release)
29 * Local: 0.0.0.0
30 */
31
32 /*
33 * Mechanics of version naming/numbering.
34 * (This is a ripoff of ../version.c.)
35 */
36
37 #define STR1(x) #x
38 #define STR(x) STR1(x)
39
40 /* We keep this around even for snapshots, for monotonicity of version
41 * numbering. It needs to be kept up to date. NB _comma_-separated. */
42 #define BASE_VERSION 0,62
43
44 #if defined SNAPSHOT
45
46 /* Make SVN_REV mandatory for snapshots, to avoid issuing binary
47 * version numbers that look like full releases. */
48 #ifndef SVN_REV
49 #error SVN_REV not defined/nonzero for snapshot build
50 #endif
51
52 #define VERSION_TEXT "Development snapshot " STR(SNAPSHOT) ":r" STR(SVN_REV)
53 #ifdef MODIFIED
54 #define BINARY_VERSION 0,0,0,0
55 #else
56 #define BINARY_VERSION BASE_VERSION,SVN_REV,0
57 #endif
58
59 #elif defined RELEASE
60
61 #define VERSION_TEXT "Release " STR(RELEASE)
62 #define BINARY_VERSION BASE_VERSION,0,0
63
64 #elif defined PRERELEASE
65
66 #define VERSION_TEXT "Pre-release " STR(PRERELEASE) ":r" STR(SVN_REV);
67 #define BINARY_VERSION BASE_VERSION,SVN_REV,0
68
69 #elif defined SVN_REV
70
71 #define VERSION_TEXT "Custom build r" STR(SVN_REV)
72 #ifdef MODIFIED
73 #define BINARY_VERSION 0,0,0,0
74 #else
75 #define BINARY_VERSION BASE_VERSION,SVN_REV,0
76 #endif
77
78 #else
79
80 /* We can't reliably get the same date and time as version.c, so
81 * we won't bother trying. */
82 #define VERSION_TEXT "Unidentified build"
83 #define BINARY_VERSION 0,0,0,0
84
85 #endif
86
87 /*
88 * The actual VERSIONINFO resource.
89 */
90 VS_VERSION_INFO VERSIONINFO
91 /* (None of this "fixed" info appears to be trivially user-visible on
92 * Win98SE. The binary version does show up on Win2K.) */
93 FILEVERSION BINARY_VERSION
94 PRODUCTVERSION BINARY_VERSION /* version of whole suite */
95 FILEFLAGSMASK VS_FF_DEBUG | VS_FF_PRERELEASE | VS_FF_PRIVATEBUILD
96 FILEFLAGS 0x0L
97 #if defined DEBUG
98 | VS_FF_DEBUG
99 #endif
100 #if defined SNAPSHOT
101 | VS_FF_PRERELEASE
102 #elif !defined RELEASE
103 | VS_FF_PRIVATEBUILD
104 #endif
105 FILEOS VOS__WINDOWS32
106 FILETYPE VFT_APP
107 FILESUBTYPE 0x0L /* n/a for VFT_APP */
108 BEGIN
109 /* (On Win98SE and Win2K, we can see most of this on the Version tab
110 * in the file properties in Explorer.) */
111 BLOCK "StringFileInfo"
112 BEGIN
113 /* "lang-charset" LLLLCCCC = (UK English, Unicode) */
114 BLOCK "080904B0"
115 BEGIN
116 VALUE "CompanyName", "Simon Tatham" /* required :/ */
117 VALUE "ProductName", "PuTTY suite"
118 VALUE "FileDescription", APPDESC
119 VALUE "InternalName", APPNAME
120 VALUE "OriginalFilename", APPNAME
121 VALUE "FileVersion", VERSION_TEXT
122 VALUE "ProductVersion", VERSION_TEXT
123 VALUE "LegalCopyright", "Copyright \251 1997-2013 Simon Tatham."
124 #if (!defined SNAPSHOT) && (!defined RELEASE)
125 /* Only if VS_FF_PRIVATEBUILD. */
126 VALUE "PrivateBuild", VERSION_TEXT /* NBI */
127 #endif
128 END
129 END
130 BLOCK "VarFileInfo"
131 BEGIN
132 /* Once again -- same meanings -- apparently necessary */
133 VALUE "Translation", 0x809, 1200
134 END
135 END
136
137 #undef VERSION_TEXT
138 #undef BASE_VERSION
139 #undef BINARY_VERSION