24 size_t end = version.find(
'.');
25 *major = atoi(version.substr(0, end).c_str());
27 if (end != string::npos) {
28 size_t start = end + 1;
29 end = version.find(
'.', start);
30 *minor = atoi(version.substr(start, end).c_str());
35 int bin_major, bin_minor;
37 int file_major, file_minor;
40 if (bin_major > file_major) {
41 Warning(
"ninja executable version (%s) greater than build file "
42 "ninja_required_version (%s); versions may be incompatible.",
47 if ((bin_major == file_major && bin_minor < file_minor) ||
48 bin_major < file_major) {
49 Fatal(
"ninja version (%s) incompatible with build file "
50 "ninja_required_version version (%s).",
const char * kNinjaVersion
The version number of the current Ninja release.
void CheckNinjaVersion(const string &version)
Check whether version is compatible with the current Ninja version, aborting if not.
void ParseVersion(const string &version, int *major, int *minor)
Parse the major/minor components of a version string.
void Fatal(const char *msg,...)
Log a fatal message and exit.
void Warning(const char *msg,...)
Log a warning message.