(root)/
Python-3.11.7/
Modules/
getbuildinfo.c
       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  Py_GetBuildInfo(void)
      36  {
      37      static char buildinfo[50 + sizeof(GITVERSION) +
      38                            ((sizeof(GITTAG) > sizeof(GITBRANCH)) ?
      39                             sizeof(GITTAG) : sizeof(GITBRANCH))];
      40      const char *revision = _Py_gitversion();
      41      const char *sep = *revision ? ":" : "";
      42      const char *gitid = _Py_gitidentifier();
      43      if (!(*gitid)) {
      44          gitid = "main";
      45      }
      46      PyOS_snprintf(buildinfo, sizeof(buildinfo),
      47                    "%s%s%s, %.20s, %.9s", gitid, sep, revision,
      48                    DATE, TIME);
      49      return buildinfo;
      50  }
      51  
      52  const char *
      53  _Py_gitversion(void)
      54  {
      55      return GITVERSION;
      56  }
      57  
      58  const char *
      59  _Py_gitidentifier(void)
      60  {
      61      const char *gittag, *gitid;
      62      gittag = GITTAG;
      63      if ((*gittag) && strcmp(gittag, "undefined") != 0)
      64          gitid = gittag;
      65      else
      66          gitid = GITBRANCH;
      67      return gitid;
      68  }