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 |
|
---|
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 |
|
---|
42 | const char *
|
---|
43 | Py_GetBuildInfo(void)
|
---|
44 | {
|
---|
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;
|
---|
57 | }
|
---|
58 |
|
---|
59 | const char *
|
---|
60 | _Py_svnversion(void)
|
---|
61 | {
|
---|
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";
|
---|
67 | }
|
---|
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 | }
|
---|