Skip to content
Snippets Groups Projects
gen-backend-versions.py 1.47 KiB
Newer Older
  • Learn to ignore specific revisions
  •     with open('src/cffi/recompiler.py', encoding='UTF-8') as f:
    
                m = re.match(r'^VERSION_BASE = (0x[0-9A-F]+)$', line)
    
                if m:
                    return int(m.group(1), 16)
        raise Exception('Version not found')
    
    
    def backend_supported_versions():
        versions = {}
    
        with open('src/c/cffi1_module.c', encoding='UTF-8') as f:
    
            for line in f:
                m = re.match(r'^#define CFFI_VERSION_(MIN|MAX) *(0x[0-9A-F]+)$',
                             line)
                if m:
                    versions[m.group(1)] = int(m.group(2), 16)
                    if len(versions) == 2:
                        return versions['MIN'], versions['MAX']
        raise Exception('Versions not found')
    
    
    versions = backend_supported_versions()
    target = target_version()
    
        subst = {
            'pkg': pkg,
            'min': versions[0],
            'max': versions[1],
            'target': target,
        }
        with open('debian/{0}-backend.substvars'.format(pkg), 'a',
                  encoding='UTF-8') as f:
            f.write('cffi:Provides={pkg}-backend-api-min (= {min}), '
    
                    '{pkg}-backend-api-max (= {max}), '
                    '{pkg}-backend-api-{target}\n'.format(**subst))
    
        with open('debian/{0}.pydist'.format(pkg), 'w', encoding='UTF-8') as f:
    
            f.write('cffi {pkg}-backend-api-min (<= {target}), '
                    '{pkg}-backend-api-max (>= {target})\n'
                    .format(**subst))