1 /** 2 * @file 3 * @brief Contains version information 4 **/ 5 6 #pragma once 7 8 #define CRAWL "Dungeon Crawl Stone Soup" 9 10 enum rel_type 11 { 12 VER_ALPHA, 13 VER_BETA, 14 VER_FINAL, 15 }; 16 17 namespace Version 18 { 19 /// The major version string. 20 /** 21 * This version is just the major release number, e.g. '0.10' for 22 * all of 0.10-a0, 0.10, and 0.10.1 (assuming this last is even 23 * released). 24 */ 25 extern const char* Major; 26 27 /// The short version string. 28 /** 29 * This version will generally match the last version tag. For instance, 30 * if the last tag of Crawl before this build was '0.1.2', you'd see 31 * '0.1.2'. This version number does not include some rather important 32 * extra information useful for getting the exact revision (the Git commit 33 * hash and the number of revisions since the tag). For that extra information, 34 * use Version::Long instead. 35 */ 36 extern const char* Short; 37 38 /// The long version string. 39 /** 40 * This string contains detailed version information about the CrissCross 41 * build in use. The string will always start with the Git tag that this 42 * build descended from. If this build is not an exact match for a given 43 * tag, this string will also include the number of commits since the tag 44 * and the Git commit id (the SHA-1 hash). 45 */ 46 extern const char* Long; 47 48 /// The release type. 49 /** 50 * Indicates whether it's a devel or a stable version. 51 */ 52 extern const rel_type ReleaseType; 53 54 void record(string prev); 55 string history(); 56 size_t history_size(); 57 } 58 59 extern const char* compilation_info; 60