Branch data Line data Source code
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 : : /* XXX Only unix build process has been tested */ 24 : : #ifndef GITVERSION 25 : : #define GITVERSION "" 26 : : #endif 27 : : #ifndef GITTAG 28 : : #define GITTAG "" 29 : : #endif 30 : : #ifndef GITBRANCH 31 : : #define GITBRANCH "" 32 : : #endif 33 : : 34 : : const char * 35 : 3157 : Py_GetBuildInfo(void) 36 : : { 37 : : static char buildinfo[50 + sizeof(GITVERSION) + 38 : : ((sizeof(GITTAG) > sizeof(GITBRANCH)) ? 39 : : sizeof(GITTAG) : sizeof(GITBRANCH))]; 40 : 3157 : const char *revision = _Py_gitversion(); 41 [ + - ]: 3157 : const char *sep = *revision ? ":" : ""; 42 : 3157 : const char *gitid = _Py_gitidentifier(); 43 [ - + ]: 3157 : if (!(*gitid)) { 44 : 0 : gitid = "main"; 45 : : } 46 : 3157 : PyOS_snprintf(buildinfo, sizeof(buildinfo), 47 : : "%s%s%s, %.20s, %.9s", gitid, sep, revision, 48 : : DATE, TIME); 49 : 3157 : return buildinfo; 50 : : } 51 : : 52 : : const char * 53 : 6295 : _Py_gitversion(void) 54 : : { 55 : 6295 : return GITVERSION; 56 : : } 57 : : 58 : : const char * 59 : 6295 : _Py_gitidentifier(void) 60 : : { 61 : : const char *gittag, *gitid; 62 : 6295 : gittag = GITTAG; 63 [ + - + - ]: 6295 : if ((*gittag) && strcmp(gittag, "undefined") != 0) 64 : 6295 : gitid = gittag; 65 : : else 66 : 0 : gitid = GITBRANCH; 67 : 6295 : return gitid; 68 : : }