| 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,61 |
| 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-2011 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 |