build_version.py
上传用户:king477883
上传日期:2021-03-01
资源大小:9553k
文件大小:2k
源码类别:

游戏引擎

开发平台:

C++ Builder

  1. #!/usr/bin/env python
  2. #
  3. # Print the build information embedded in a header file.
  4. #
  5. # Expects to be invoked from the command line with a file name and a
  6. # list of directories to search.  The file name will be one of the
  7. # following:
  8. #
  9. #   llversionserver.h
  10. #   llversionviewer.h
  11. #
  12. # The directory list that follows will include indra/llcommon, where
  13. # these files live.
  14. import errno, os, re
  15. def get_version(filename):
  16.     fp = open(filename)
  17.     data = fp.read()
  18.     fp.close()
  19.     vals = {}
  20.     m = re.search('const S32 LL_VERSION_MAJOR = (d+);', data)
  21.     vals['major'] = m.group(1)
  22.     m = re.search('const S32 LL_VERSION_MINOR = (d+);', data)
  23.     vals['minor'] = m.group(1)
  24.     m = re.search('const S32 LL_VERSION_PATCH = (d+);', data)
  25.     vals['patch'] = m.group(1)
  26.     m = re.search('const S32 LL_VERSION_BUILD = (d+);', data)
  27.     vals['build'] = m.group(1)
  28.     return "%(major)s.%(minor)s.%(patch)s.%(build)s" % vals
  29. if __name__ == '__main__':
  30.     import sys
  31.     try:
  32.         for path in sys.argv[2:]:
  33.             name = os.path.join(path, sys.argv[1])
  34.             try:
  35.                 print get_version(name)
  36.                 break
  37.             except OSError, err:
  38.                 if err.errno != errno.ENOENT:
  39.                     raise
  40.         else:
  41.             print >> sys.stderr, 'File not found:', sys.argv[1]
  42.             sys.exit(1)
  43.     except AttributeError:
  44.         print >> sys.stderr, 'Error: malformatted file: ', name
  45.         sys.exit(1)
  46.     except IndexError:
  47.         print >> sys.stderr, ('Usage: %s llversion[...].h [directories]' %
  48.                               sys.argv[0])