| #include "Python.h" |
| |
| #ifndef DONT_HAVE_STDIO_H |
| #include <stdio.h> |
| #endif |
| |
| #ifndef DATE |
| #ifdef __DATE__ |
| #define DATE __DATE__ |
| #else |
| #define DATE "xx/xx/xx" |
| #endif |
| #endif |
| |
| #ifndef TIME |
| #ifdef __TIME__ |
| #define TIME __TIME__ |
| #else |
| #define TIME "xx:xx:xx" |
| #endif |
| #endif |
| |
| /* on unix, SVNVERSION is passed on the command line. |
| * on Windows, the string is interpolated using |
| * subwcrev.exe |
| */ |
| #ifndef SVNVERSION |
| #define SVNVERSION "$WCRANGE$$WCMODS?M:$" |
| #endif |
| |
| /* XXX Only unix build process has been tested */ |
| #ifndef HGVERSION |
| #define HGVERSION "" |
| #endif |
| #ifndef HGTAG |
| #define HGTAG "" |
| #endif |
| #ifndef HGBRANCH |
| #define HGBRANCH "" |
| #endif |
| |
| const char * |
| Py_GetBuildInfo(void) |
| { |
| static char buildinfo[50 + sizeof(HGVERSION) + |
| ((sizeof(HGTAG) > sizeof(HGBRANCH)) ? |
| sizeof(HGTAG) : sizeof(HGBRANCH))]; |
| const char *revision = _Py_hgversion(); |
| const char *sep = *revision ? ":" : ""; |
| const char *hgid = _Py_hgidentifier(); |
| if (!(*hgid)) |
| hgid = "default"; |
| PyOS_snprintf(buildinfo, sizeof(buildinfo), |
| "%s%s%s, %.20s, %.9s", hgid, sep, revision, |
| DATE, TIME); |
| return buildinfo; |
| } |
| |
| const char * |
| _Py_svnversion(void) |
| { |
| /* the following string can be modified by subwcrev.exe */ |
| static const char svnversion[] = SVNVERSION; |
| if (svnversion[0] != '$') |
| return svnversion; /* it was interpolated, or passed on command line */ |
| return "Unversioned directory"; |
| } |
| |
| const char * |
| _Py_hgversion(void) |
| { |
| return HGVERSION; |
| } |
| |
| const char * |
| _Py_hgidentifier(void) |
| { |
| const char *hgtag, *hgid; |
| hgtag = HGTAG; |
| if ((*hgtag) && strcmp(hgtag, "tip") != 0) |
| hgid = hgtag; |
| else |
| hgid = HGBRANCH; |
| return hgid; |
| } |