Try to get unicode_names compiling on ancient compilers

This commit is contained in:
Kovid Goyal 2018-05-01 11:31:21 +05:30
parent eaffdbb884
commit 499578beaa
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
3 changed files with 587 additions and 586 deletions

View File

@ -41,6 +41,8 @@ class Extension(object):
self.cflags.append('-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) void') self.cflags.append('-DCALIBRE_MODINIT_FUNC=extern "C" __attribute__ ((visibility ("default"))) void')
else: else:
self.cflags.append('-DCALIBRE_MODINIT_FUNC=__attribute__ ((visibility ("default"))) void') self.cflags.append('-DCALIBRE_MODINIT_FUNC=__attribute__ ((visibility ("default"))) void')
if kwargs.get('needs_c99'):
self.cflags.insert(0, '-std=c99')
self.ldflags = d['ldflags'] = kwargs.get('ldflags', []) self.ldflags = d['ldflags'] = kwargs.get('ldflags', [])
self.optional = d['options'] = kwargs.get('optional', False) self.optional = d['options'] = kwargs.get('optional', False)
of = kwargs.get('optimize_level', None) of = kwargs.get('optimize_level', None)
@ -231,8 +233,7 @@ class Build(Command):
def add_options(self, parser): def add_options(self, parser):
choices = [e['name'] for e in read_extensions() if is_ext_allowed(e)]+['all', 'headless'] choices = [e['name'] for e in read_extensions() if is_ext_allowed(e)]+['all', 'headless']
parser.add_option('-1', '--only', choices=choices, default='all', parser.add_option('-1', '--only', choices=choices, default='all',
help=('Build only the named extension. Available: '+ help=('Build only the named extension. Available: '+ ', '.join(choices)+'. Default:%default'))
', '.join(choices)+'. Default:%default'))
parser.add_option('--no-compile', default=False, action='store_true', parser.add_option('--no-compile', default=False, action='store_true',
help='Skip compiling all C/C++ extensions.') help='Skip compiling all C/C++ extensions.')
parser.add_option('--build-dir', default=None, parser.add_option('--build-dir', default=None,
@ -426,15 +427,14 @@ class Build(Command):
sipf = sip_files[0] sipf = sip_files[0]
sbf = self.j(src_dir, self.b(sipf)+'.sbf') sbf = self.j(src_dir, self.b(sipf)+'.sbf')
if self.newer(sbf, [sipf]+ext.headers): if self.newer(sbf, [sipf]+ext.headers):
cmd = [pyqt['sip_bin'], '-w', '-c', src_dir, '-b', sbf, '-I'+ cmd = [pyqt['sip_bin'], '-w', '-c', src_dir, '-b', sbf, '-I' + pyqt['pyqt_sip_dir']] + shlex.split(pyqt['sip_flags']) + [sipf]
pyqt['pyqt_sip_dir']] + shlex.split(pyqt['sip_flags']) + [sipf]
self.info(' '.join(cmd)) self.info(' '.join(cmd))
self.check_call(cmd) self.check_call(cmd)
self.info('') self.info('')
raw = open(sbf, 'rb').read().decode('utf-8') raw = open(sbf, 'rb').read().decode('utf-8')
def read(x): def read(x):
ans = re.search('^%s\s*=\s*(.+)$' % x, raw, flags=re.M).group(1).strip() ans = re.search(r'^%s\s*=\s*(.+)$' % x, raw, flags=re.M).group(1).strip()
if x != 'target': if x != 'target':
ans = ans.split() ans = ans.split()
return ans return ans

View File

@ -15,7 +15,8 @@
{ {
"name": "unicode_names", "name": "unicode_names",
"headers": "unicode_names/names.h unicode_names/data-types.h", "headers": "unicode_names/names.h unicode_names/data-types.h",
"sources": "unicode_names/unicode_names.c" "sources": "unicode_names/unicode_names.c",
"needs_c99": true
}, },
{ {
"name": "speedup", "name": "speedup",

File diff suppressed because one or more lines are too long