2017-12-29 17:12:55 +01:00
|
|
|
icu_dep = dependency('icu-i18n', version: '>= 50', required: get_option('icu'))
|
|
|
|
conf.set('HAVE_ICU', icu_dep.found())
|
|
|
|
|
|
|
|
icu_sources = [
|
|
|
|
'CaseFold.cxx',
|
|
|
|
'Compare.cxx',
|
|
|
|
'Collate.cxx',
|
|
|
|
'Converter.cxx',
|
|
|
|
]
|
|
|
|
|
|
|
|
if is_windows
|
|
|
|
icu_sources += 'Win32.cxx'
|
|
|
|
endif
|
|
|
|
|
2022-04-20 16:10:39 +02:00
|
|
|
iconv_dep = []
|
2017-12-29 17:12:55 +01:00
|
|
|
if icu_dep.found()
|
|
|
|
icu_sources += [
|
|
|
|
'Util.cxx',
|
|
|
|
'Init.cxx',
|
|
|
|
]
|
2022-07-20 00:11:59 +02:00
|
|
|
else
|
|
|
|
if meson.version().version_compare('>= 0.60')
|
|
|
|
iconv_dep = dependency('iconv', required: get_option('iconv'))
|
|
|
|
conf.set('HAVE_ICONV', iconv_dep.found())
|
|
|
|
elif not get_option('iconv').disabled()
|
|
|
|
iconv_open_snippet = '''#include <iconv.h>
|
|
|
|
int main() {
|
|
|
|
iconv_open("","");
|
|
|
|
}'''
|
|
|
|
have_iconv = compiler.links(iconv_open_snippet, name: 'iconv_open')
|
|
|
|
if not have_iconv
|
|
|
|
iconv_dep = compiler.find_library('iconv', required: false)
|
|
|
|
have_iconv = compiler.links(iconv_open_snippet, dependencies: iconv_dep, name: 'iconv_open')
|
|
|
|
endif
|
|
|
|
if not have_iconv and get_option('iconv').enabled()
|
|
|
|
error('iconv() not available')
|
|
|
|
endif
|
|
|
|
conf.set('HAVE_ICONV', have_iconv)
|
2017-12-29 17:12:55 +01:00
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
|
|
|
icu = static_library(
|
|
|
|
'icu',
|
|
|
|
icu_sources,
|
|
|
|
include_directories: inc,
|
|
|
|
dependencies: [
|
|
|
|
icu_dep,
|
2022-04-20 16:10:39 +02:00
|
|
|
iconv_dep,
|
2021-05-27 16:06:11 +02:00
|
|
|
fmt_dep,
|
2017-12-29 17:12:55 +01:00
|
|
|
],
|
|
|
|
)
|
|
|
|
|
|
|
|
icu_dep = declare_dependency(
|
|
|
|
link_with: icu,
|
|
|
|
dependencies: [
|
|
|
|
util_dep,
|
|
|
|
],
|
|
|
|
)
|