mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Fix ICU build on Windows
This commit is contained in:
parent
ae25a1f425
commit
d8595e5bf5
@ -48,6 +48,7 @@ class Extension(object):
|
|||||||
self.error = d['error'] = kwargs.get('error', None)
|
self.error = d['error'] = kwargs.get('error', None)
|
||||||
self.libraries = d['libraries'] = kwargs.get('libraries', [])
|
self.libraries = d['libraries'] = kwargs.get('libraries', [])
|
||||||
self.cflags = d['cflags'] = kwargs.get('cflags', [])
|
self.cflags = d['cflags'] = kwargs.get('cflags', [])
|
||||||
|
self.uses_icu = 'icuuc' in self.libraries
|
||||||
if iswindows:
|
if iswindows:
|
||||||
self.cflags.append('/DCALIBRE_MODINIT_FUNC=PyMODINIT_FUNC')
|
self.cflags.append('/DCALIBRE_MODINIT_FUNC=PyMODINIT_FUNC')
|
||||||
if self.needs_cxx and kwargs.get('needs_c++14'):
|
if self.needs_cxx and kwargs.get('needs_c++14'):
|
||||||
@ -399,7 +400,7 @@ class Build(Command):
|
|||||||
cmd = [linker]
|
cmd = [linker]
|
||||||
if iswindows:
|
if iswindows:
|
||||||
pre_ld_flags = []
|
pre_ld_flags = []
|
||||||
if ext.name in ('icu', 'matcher'):
|
if ext.uses_icu:
|
||||||
# windows has its own ICU libs that dont work
|
# windows has its own ICU libs that dont work
|
||||||
pre_ld_flags = elib
|
pre_ld_flags = elib
|
||||||
cmd += pre_ld_flags + self.env.ldflags + ext.ldflags + elib + xlib + \
|
cmd += pre_ld_flags + self.env.ldflags + ext.ldflags + elib + xlib + \
|
||||||
|
@ -197,7 +197,7 @@ tok_create(void *sqlite3, const char **azArg, int nArg, Fts5Tokenizer **ppOut) {
|
|||||||
rc = p->constructor_error;
|
rc = p->constructor_error;
|
||||||
delete p;
|
delete p;
|
||||||
}
|
}
|
||||||
} catch (std::bad_alloc &ex) {
|
} catch (std::bad_alloc) {
|
||||||
return SQLITE_NOMEM;
|
return SQLITE_NOMEM;
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
return SQLITE_ERROR;
|
return SQLITE_ERROR;
|
||||||
@ -210,7 +210,7 @@ tok_tokenize(Fts5Tokenizer *tokenizer_ptr, void *callback_ctx, int flags, const
|
|||||||
Tokenizer *p = reinterpret_cast<Tokenizer*>(tokenizer_ptr);
|
Tokenizer *p = reinterpret_cast<Tokenizer*>(tokenizer_ptr);
|
||||||
try {
|
try {
|
||||||
return p->tokenize(callback_ctx, flags, text, text_sz, callback);
|
return p->tokenize(callback_ctx, flags, text, text_sz, callback);
|
||||||
} catch (std::bad_alloc &ex) {
|
} catch (std::bad_alloc) {
|
||||||
return SQLITE_NOMEM;
|
return SQLITE_NOMEM;
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
return SQLITE_ERROR;
|
return SQLITE_ERROR;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user