[2] | 1 | #include "Python.h"
|
---|
| 2 |
|
---|
| 3 | #ifndef DONT_HAVE_STDIO_H
|
---|
| 4 | #include <stdio.h>
|
---|
| 5 | #endif
|
---|
| 6 |
|
---|
| 7 | #ifndef DATE
|
---|
| 8 | #ifdef __DATE__
|
---|
| 9 | #define DATE __DATE__
|
---|
| 10 | #else
|
---|
| 11 | #define DATE "xx/xx/xx"
|
---|
| 12 | #endif
|
---|
| 13 | #endif
|
---|
| 14 |
|
---|
| 15 | #ifndef TIME
|
---|
| 16 | #ifdef __TIME__
|
---|
| 17 | #define TIME __TIME__
|
---|
| 18 | #else
|
---|
| 19 | #define TIME "xx:xx:xx"
|
---|
| 20 | #endif
|
---|
| 21 | #endif
|
---|
| 22 |
|
---|
| 23 | /* on unix, SVNVERSION is passed on the command line.
|
---|
| 24 | * on Windows, the string is interpolated using
|
---|
| 25 | * subwcrev.exe
|
---|
| 26 | */
|
---|
| 27 | #ifndef SVNVERSION
|
---|
| 28 | #define SVNVERSION "$WCRANGE$$WCMODS?M:$"
|
---|
| 29 | #endif
|
---|
| 30 |
|
---|
[391] | 31 | /* XXX Only unix build process has been tested */
|
---|
| 32 | #ifndef HGVERSION
|
---|
| 33 | #define HGVERSION ""
|
---|
| 34 | #endif
|
---|
| 35 | #ifndef HGTAG
|
---|
| 36 | #define HGTAG ""
|
---|
| 37 | #endif
|
---|
| 38 | #ifndef HGBRANCH
|
---|
| 39 | #define HGBRANCH ""
|
---|
| 40 | #endif
|
---|
| 41 |
|
---|
[2] | 42 | const char *
|
---|
| 43 | Py_GetBuildInfo(void)
|
---|
| 44 | {
|
---|
[391] | 45 | static char buildinfo[50 + sizeof(HGVERSION) +
|
---|
| 46 | ((sizeof(HGTAG) > sizeof(HGBRANCH)) ?
|
---|
| 47 | sizeof(HGTAG) : sizeof(HGBRANCH))];
|
---|
| 48 | const char *revision = _Py_hgversion();
|
---|
| 49 | const char *sep = *revision ? ":" : "";
|
---|
| 50 | const char *hgid = _Py_hgidentifier();
|
---|
| 51 | if (!(*hgid))
|
---|
| 52 | hgid = "default";
|
---|
| 53 | PyOS_snprintf(buildinfo, sizeof(buildinfo),
|
---|
| 54 | "%s%s%s, %.20s, %.9s", hgid, sep, revision,
|
---|
| 55 | DATE, TIME);
|
---|
| 56 | return buildinfo;
|
---|
[2] | 57 | }
|
---|
| 58 |
|
---|
| 59 | const char *
|
---|
| 60 | _Py_svnversion(void)
|
---|
| 61 | {
|
---|
[391] | 62 | /* the following string can be modified by subwcrev.exe */
|
---|
| 63 | static const char svnversion[] = SVNVERSION;
|
---|
| 64 | if (svnversion[0] != '$')
|
---|
| 65 | return svnversion; /* it was interpolated, or passed on command line */
|
---|
| 66 | return "Unversioned directory";
|
---|
[2] | 67 | }
|
---|
[391] | 68 |
|
---|
| 69 | const char *
|
---|
| 70 | _Py_hgversion(void)
|
---|
| 71 | {
|
---|
| 72 | return HGVERSION;
|
---|
| 73 | }
|
---|
| 74 |
|
---|
| 75 | const char *
|
---|
| 76 | _Py_hgidentifier(void)
|
---|
| 77 | {
|
---|
| 78 | const char *hgtag, *hgid;
|
---|
| 79 | hgtag = HGTAG;
|
---|
| 80 | if ((*hgtag) && strcmp(hgtag, "tip") != 0)
|
---|
| 81 | hgid = hgtag;
|
---|
| 82 | else
|
---|
| 83 | hgid = HGBRANCH;
|
---|
| 84 | return hgid;
|
---|
| 85 | }
|
---|