import re, os, os.path, string def get_build_info(file): BUILD = {'api_versions':[0x100], 'shadow':1, 'headers':[], 'api_version_check':0, 'include_dirs':[], 'sources':[]} x = open(file).read() x = string.replace(x, '\r\n', '\n') x = string.replace(x, '\r', '\n') for name, value in re.findall(r'[#]\s*BUILD\s+([^\s]+)\s+((?:[^\n\\]+|\\.|\\\n)+)', x): BUILD[name] = eval(string.strip(string.replace(value, '\\\n', ' '))) BUILD['api_versions'].sort() BUILD['api_versions'].reverse() return BUILD def outdated(x, dependencies): if not os.path.exists(x): return 1 x_mtime = os.path.getmtime(x) for dependency in dependencies: if x_mtime < os.path.getmtime(dependency): return 1 return 0 def mkdir(x): head, tail = os.path.split(x) if head != '': mkdir(head) if not os.path.exists(x): os.mkdir(x) build_re = re.compile("__build__\s*=\s*(.+)") def get_version(): return string.strip(open(os.path.join('OpenGL', 'version')).read()) def increment_build(): p = os.path.join('OpenGL', '__init__.py') x = open(p).read() builds = build_re.findall(x) if len(builds): x = build_re.sub('__build__ = %d' % (int(builds[0]) + 1), x) open(p, 'w').write(x)