meson: add ICU wrap
This commit is contained in:
parent
64df2d61c7
commit
d6ee06eb54
14 changed files with 736 additions and 17 deletions
19
meson.build
19
meson.build
|
@ -115,23 +115,8 @@ else # this will only be hit with msvc
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
icu_uc_dep = dependency('icu-uc', version: '>=4.8.1.1', required: cxx.get_id() != 'msvc')
|
deps += dependency('icu-uc', version: '>=4.8.1.1')
|
||||||
icu_i18n_dep = dependency('icu-i18n', version: '>=4.8.1.1', required: cxx.get_id() != 'msvc')
|
deps += dependency('icu-i18n', version: '>=4.8.1.1')
|
||||||
if not (icu_uc_dep.found() and icu_i18n_dep.found())
|
|
||||||
if get_option('icu_path') != ''
|
|
||||||
deps_inc += include_directories(get_option('icu_path') / 'include')
|
|
||||||
else
|
|
||||||
error('ICU not found and no icu_path defined.')
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
if not icu_uc_dep.found()
|
|
||||||
icu_uc_dep = cxx.find_library('icuuc', dirs: get_option('icu_path') / 'lib64')
|
|
||||||
endif
|
|
||||||
deps += icu_uc_dep
|
|
||||||
if not icu_i18n_dep.found()
|
|
||||||
icu_i18n_dep = cxx.find_library('icuin', dirs: get_option('icu_path') / 'lib64')
|
|
||||||
endif
|
|
||||||
deps += icu_i18n_dep
|
|
||||||
|
|
||||||
dep_avail = []
|
dep_avail = []
|
||||||
foreach dep: [
|
foreach dep: [
|
||||||
|
|
11
subprojects/icu.wrap
Normal file
11
subprojects/icu.wrap
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
[wrap-file]
|
||||||
|
directory = icu
|
||||||
|
source_url = https://github.com/unicode-org/icu/releases/download/release-67-1/icu4c-67_1-src.tgz
|
||||||
|
source_filename = icu4c-67_1-src.tgz
|
||||||
|
source_hash = 94a80cd6f251a53bd2a997f6f1b5ac6653fe791dfab66e1eb0227740fb86d5dc
|
||||||
|
patch_directory = icu
|
||||||
|
|
||||||
|
[provide]
|
||||||
|
icu-uc = icuuc_dep
|
||||||
|
icu-io = icuio_dep
|
||||||
|
icu-i18n = icui18n_dep
|
32
subprojects/packagefiles/icu/meson.build
Normal file
32
subprojects/packagefiles/icu/meson.build
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
project('icu', 'c', 'cpp',
|
||||||
|
version: '67.1',
|
||||||
|
meson_version: '>=0.55.0',
|
||||||
|
default_options: 'cpp_std=c++17')
|
||||||
|
|
||||||
|
cpp = meson.get_compiler('cpp')
|
||||||
|
|
||||||
|
if host_machine.system() == 'windows'
|
||||||
|
add_project_arguments('-DWIN32', '-DWIN64', '-D_MBCS', '/utf-8', language : 'cpp')
|
||||||
|
add_project_arguments('-DWIN32', '-DWIN64', '-D_MBCS', '/utf-8', language : 'c')
|
||||||
|
endif
|
||||||
|
|
||||||
|
if cpp.has_header('elf.h')
|
||||||
|
add_project_arguments('-DU_HAVE_ELF_H=1', language: 'c')
|
||||||
|
add_project_arguments('-DU_HAVE_ELF_H=1', language: 'cpp')
|
||||||
|
endif
|
||||||
|
|
||||||
|
dl_dep = cpp.find_library('dl', required: false)
|
||||||
|
thread_dep = dependency('threads')
|
||||||
|
|
||||||
|
# Compiler flags the users of this library must use.
|
||||||
|
usage_args = []
|
||||||
|
|
||||||
|
if get_option('default_library') == 'static'
|
||||||
|
add_project_arguments('-DU_STATIC_IMPLEMENTATION', language : 'c')
|
||||||
|
add_project_arguments('-DU_STATIC_IMPLEMENTATION', language : 'cpp')
|
||||||
|
usage_args = ['-DU_STATIC_IMPLEMENTATION']
|
||||||
|
elif host_machine.system() == 'windows'
|
||||||
|
error('Shared library build not supported on Windows. Set default_library to static.')
|
||||||
|
endif
|
||||||
|
|
||||||
|
subdir('source')
|
202
subprojects/packagefiles/icu/source/common/meson.build
Normal file
202
subprojects/packagefiles/icu/source/common/meson.build
Normal file
|
@ -0,0 +1,202 @@
|
||||||
|
uc_sources = files(
|
||||||
|
'errorcode.cpp',
|
||||||
|
'putil.cpp',
|
||||||
|
'umath.cpp',
|
||||||
|
'utypes.cpp',
|
||||||
|
'uinvchar.cpp',
|
||||||
|
'umutex.cpp',
|
||||||
|
'ucln_cmn.cpp',
|
||||||
|
'uinit.cpp',
|
||||||
|
'uobject.cpp',
|
||||||
|
'cmemory.cpp',
|
||||||
|
'charstr.cpp',
|
||||||
|
'cstr.cpp',
|
||||||
|
'udata.cpp',
|
||||||
|
'ucmndata.cpp',
|
||||||
|
'udatamem.cpp',
|
||||||
|
'umapfile.cpp',
|
||||||
|
'udataswp.cpp',
|
||||||
|
'utrie_swap.cpp',
|
||||||
|
'ucol_swp.cpp',
|
||||||
|
'utrace.cpp',
|
||||||
|
'uhash.cpp',
|
||||||
|
'uhash_us.cpp',
|
||||||
|
'uenum.cpp',
|
||||||
|
'ustrenum.cpp',
|
||||||
|
'uvector.cpp',
|
||||||
|
'ustack.cpp',
|
||||||
|
'uvectr32.cpp',
|
||||||
|
'uvectr64.cpp',
|
||||||
|
'ucnv.cpp',
|
||||||
|
'ucnv_bld.cpp',
|
||||||
|
'ucnv_cnv.cpp',
|
||||||
|
'ucnv_io.cpp',
|
||||||
|
'ucnv_cb.cpp',
|
||||||
|
'ucnv_err.cpp',
|
||||||
|
'ucnvlat1.cpp',
|
||||||
|
'ucnv_u7.cpp',
|
||||||
|
'ucnv_u8.cpp',
|
||||||
|
'ucnv_u16.cpp',
|
||||||
|
'ucnv_u32.cpp',
|
||||||
|
'ucnvscsu.cpp',
|
||||||
|
'ucnvbocu.cpp',
|
||||||
|
'ucnv_ext.cpp',
|
||||||
|
'ucnvmbcs.cpp',
|
||||||
|
'ucnv2022.cpp',
|
||||||
|
'ucnvhz.cpp',
|
||||||
|
'ucnv_lmb.cpp',
|
||||||
|
'ucnvisci.cpp',
|
||||||
|
'ucnvdisp.cpp',
|
||||||
|
'ucnv_set.cpp',
|
||||||
|
'ucnv_ct.cpp',
|
||||||
|
'resource.cpp',
|
||||||
|
'uresbund.cpp',
|
||||||
|
'ures_cnv.cpp',
|
||||||
|
'uresdata.cpp',
|
||||||
|
'resbund.cpp',
|
||||||
|
'resbund_cnv.cpp',
|
||||||
|
'ucurr.cpp',
|
||||||
|
'localebuilder.cpp',
|
||||||
|
'localeprioritylist.cpp',
|
||||||
|
'messagepattern.cpp',
|
||||||
|
'ucat.cpp',
|
||||||
|
'locmap.cpp',
|
||||||
|
'uloc.cpp',
|
||||||
|
'locid.cpp',
|
||||||
|
'locutil.cpp',
|
||||||
|
'locavailable.cpp',
|
||||||
|
'locdispnames.cpp',
|
||||||
|
'locdspnm.cpp',
|
||||||
|
'loclikely.cpp',
|
||||||
|
'locresdata.cpp',
|
||||||
|
'lsr.cpp',
|
||||||
|
'loclikelysubtags.cpp',
|
||||||
|
'locdistance.cpp',
|
||||||
|
'localematcher.cpp',
|
||||||
|
'bytestream.cpp',
|
||||||
|
'stringpiece.cpp',
|
||||||
|
'bytesinkutil.cpp',
|
||||||
|
'stringtriebuilder.cpp',
|
||||||
|
'bytestriebuilder.cpp',
|
||||||
|
'bytestrie.cpp',
|
||||||
|
'bytestrieiterator.cpp',
|
||||||
|
'ucharstrie.cpp',
|
||||||
|
'ucharstriebuilder.cpp',
|
||||||
|
'ucharstrieiterator.cpp',
|
||||||
|
'dictionarydata.cpp',
|
||||||
|
'edits.cpp',
|
||||||
|
'appendable.cpp',
|
||||||
|
'ustr_cnv.cpp',
|
||||||
|
'unistr_cnv.cpp',
|
||||||
|
'unistr.cpp',
|
||||||
|
'unistr_case.cpp',
|
||||||
|
'unistr_props.cpp',
|
||||||
|
'utf_impl.cpp',
|
||||||
|
'ustring.cpp',
|
||||||
|
'ustrcase.cpp',
|
||||||
|
'ucasemap.cpp',
|
||||||
|
'ucasemap_titlecase_brkiter.cpp',
|
||||||
|
'cstring.cpp',
|
||||||
|
'ustrfmt.cpp',
|
||||||
|
'ustrtrns.cpp',
|
||||||
|
'ustr_wcs.cpp',
|
||||||
|
'utext.cpp',
|
||||||
|
'unistr_case_locale.cpp',
|
||||||
|
'ustrcase_locale.cpp',
|
||||||
|
'unistr_titlecase_brkiter.cpp',
|
||||||
|
'ustr_titlecase_brkiter.cpp',
|
||||||
|
'normalizer2impl.cpp',
|
||||||
|
'normalizer2.cpp',
|
||||||
|
'filterednormalizer2.cpp',
|
||||||
|
'normlzr.cpp',
|
||||||
|
'unorm.cpp',
|
||||||
|
'unormcmp.cpp',
|
||||||
|
'loadednormalizer2impl.cpp',
|
||||||
|
'chariter.cpp',
|
||||||
|
'schriter.cpp',
|
||||||
|
'uchriter.cpp',
|
||||||
|
'uiter.cpp',
|
||||||
|
'patternprops.cpp',
|
||||||
|
'uchar.cpp',
|
||||||
|
'uprops.cpp',
|
||||||
|
'ucase.cpp',
|
||||||
|
'propname.cpp',
|
||||||
|
'ubidi_props.cpp',
|
||||||
|
'characterproperties.cpp',
|
||||||
|
'ubidi.cpp',
|
||||||
|
'ubidiwrt.cpp',
|
||||||
|
'ubidiln.cpp',
|
||||||
|
'ushape.cpp',
|
||||||
|
'uscript.cpp',
|
||||||
|
'uscript_props.cpp',
|
||||||
|
'usc_impl.cpp',
|
||||||
|
'unames.cpp',
|
||||||
|
'utrie.cpp',
|
||||||
|
'utrie2.cpp',
|
||||||
|
'utrie2_builder.cpp',
|
||||||
|
'ucptrie.cpp',
|
||||||
|
'umutablecptrie.cpp',
|
||||||
|
'bmpset.cpp',
|
||||||
|
'unisetspan.cpp',
|
||||||
|
'uset_props.cpp',
|
||||||
|
'uniset_props.cpp',
|
||||||
|
'uniset_closure.cpp',
|
||||||
|
'uset.cpp',
|
||||||
|
'uniset.cpp',
|
||||||
|
'usetiter.cpp',
|
||||||
|
'ruleiter.cpp',
|
||||||
|
'caniter.cpp',
|
||||||
|
'unifilt.cpp',
|
||||||
|
'unifunct.cpp',
|
||||||
|
'uarrsort.cpp',
|
||||||
|
'brkiter.cpp',
|
||||||
|
'ubrk.cpp',
|
||||||
|
'brkeng.cpp',
|
||||||
|
'dictbe.cpp',
|
||||||
|
'filteredbrk.cpp',
|
||||||
|
'rbbi.cpp',
|
||||||
|
'rbbidata.cpp',
|
||||||
|
'rbbinode.cpp',
|
||||||
|
'rbbirb.cpp',
|
||||||
|
'rbbiscan.cpp',
|
||||||
|
'rbbisetb.cpp',
|
||||||
|
'rbbistbl.cpp',
|
||||||
|
'rbbitblb.cpp',
|
||||||
|
'rbbi_cache.cpp',
|
||||||
|
'serv.cpp',
|
||||||
|
'servnotf.cpp',
|
||||||
|
'servls.cpp',
|
||||||
|
'servlk.cpp',
|
||||||
|
'servlkf.cpp',
|
||||||
|
'servrbf.cpp',
|
||||||
|
'servslkf.cpp',
|
||||||
|
'uidna.cpp',
|
||||||
|
'usprep.cpp',
|
||||||
|
'uts46.cpp',
|
||||||
|
'punycode.cpp',
|
||||||
|
'util.cpp',
|
||||||
|
'util_props.cpp',
|
||||||
|
'parsepos.cpp',
|
||||||
|
'locbased.cpp',
|
||||||
|
'cwchar.cpp',
|
||||||
|
'wintz.cpp',
|
||||||
|
'dtintrv.cpp',
|
||||||
|
'ucnvsel.cpp',
|
||||||
|
'propsvec.cpp',
|
||||||
|
'ulist.cpp',
|
||||||
|
'uloc_tag.cpp',
|
||||||
|
'icudataver.cpp',
|
||||||
|
'icuplug.cpp',
|
||||||
|
'sharedobject.cpp',
|
||||||
|
'simpleformatter.cpp',
|
||||||
|
'unifiedcache.cpp',
|
||||||
|
'uloc_keytype.cpp',
|
||||||
|
'ubiditransform.cpp',
|
||||||
|
'pluralmap.cpp',
|
||||||
|
'static_unicode_sets.cpp',
|
||||||
|
'restrace.cpp',
|
||||||
|
)
|
||||||
|
|
||||||
|
uc_args = ['-DU_COMMON_IMPLEMENTATION']
|
||||||
|
uc_link = []
|
||||||
|
uc_deps = dl_dep
|
53
subprojects/packagefiles/icu/source/data/generate_icupkg_inc.py
Executable file
53
subprojects/packagefiles/icu/source/data/generate_icupkg_inc.py
Executable file
|
@ -0,0 +1,53 @@
|
||||||
|
import json
|
||||||
|
import sys
|
||||||
|
|
||||||
|
host = sys.argv[1]
|
||||||
|
cpu_family = sys.argv[2]
|
||||||
|
outfile = sys.argv[3]
|
||||||
|
|
||||||
|
with open('meson-info/intro-targets.json', 'r') as f:
|
||||||
|
targets = json.load(f)
|
||||||
|
|
||||||
|
def get_arguments(name):
|
||||||
|
target = next(target for target in targets
|
||||||
|
if target['name'] == name)
|
||||||
|
sources = next(sources for sources in target['target_sources']
|
||||||
|
if sources['language'] == 'c')
|
||||||
|
return sources['compiler'] + sources['parameters']
|
||||||
|
|
||||||
|
def quote(arguments):
|
||||||
|
return " ".join(json.dumps(arg) for arg in arguments)
|
||||||
|
|
||||||
|
obj_arguments = get_arguments("pkgdata") + ['-c']
|
||||||
|
lib_arguments = get_arguments("icutest") + ['-Wl,-Bsymbolic']
|
||||||
|
|
||||||
|
config = {
|
||||||
|
'A': 'a',
|
||||||
|
'LIBPREFIX': 'lib',
|
||||||
|
'LIB_EXT_ORDER': '.',
|
||||||
|
'COMPILE': quote(obj_arguments),
|
||||||
|
'LIBFLAGS': '', # already included in COMPILE
|
||||||
|
'LDICUDTFLAGS': '-nodefaultlibs -nostdlib',
|
||||||
|
'RPATH_FLAGS': '',
|
||||||
|
'BIR_LDFLAGS': '-Wl,-Bsymbolic',
|
||||||
|
'AR': 'ar',
|
||||||
|
'ARFLAGS': 'r',
|
||||||
|
'RANLIB': 'ranlib',
|
||||||
|
'LD_SONAME': '',
|
||||||
|
'INSTALL_CMD': ''
|
||||||
|
}
|
||||||
|
|
||||||
|
if host == 'darwin':
|
||||||
|
config['GENCCODE_ASSEMBLY_TYPE'] = '-a gcc-darwin'
|
||||||
|
config['SO'] = 'dylib'
|
||||||
|
config['SOBJ'] = 'dylib'
|
||||||
|
config['GENLIB'] = quote(lib_arguments + ['-dynamiclib', '-dynamic'])
|
||||||
|
else:
|
||||||
|
config['GENCCODE_ASSEMBLY_TYPE'] = '-a gcc'
|
||||||
|
config['SO'] = 'so'
|
||||||
|
config['SOBJ'] = 'so'
|
||||||
|
config['GENLIB'] = quote(lib_arguments + ['-shared'])
|
||||||
|
|
||||||
|
with open(outfile, 'w') as f:
|
||||||
|
for k, v in config.items():
|
||||||
|
f.write("{}={}\n".format(k, v))
|
44
subprojects/packagefiles/icu/source/data/meson.build
Normal file
44
subprojects/packagefiles/icu/source/data/meson.build
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
icudata_lst = custom_target('icudata.lst',
|
||||||
|
# not sure how to ensure that @PRIVATE_DIR@ exists
|
||||||
|
#command: [icupkg, '-d', '@PRIVATE_DIR@', '--list', '-x', '*', '@INPUT@', '-o', '@OUTPUT@'],
|
||||||
|
command: [icupkg, '-d', '@OUTDIR@', '--list', '-x', '*', '@INPUT@', '-o', '@OUTPUT@'],
|
||||||
|
input: files('in/icudt67l.dat'),
|
||||||
|
output: 'icudata.lst')
|
||||||
|
|
||||||
|
is_static = get_option('default_library') == 'static'
|
||||||
|
|
||||||
|
if host_machine.system() == 'windows' # only msvc supported
|
||||||
|
data_lib_static = custom_target(
|
||||||
|
'icudata_static', command: [pkgdata, '-q', '-c', '-e', 'icudt67', '-L', 'icudata_static',
|
||||||
|
'-d', '@OUTDIR@', '-s', '@OUTDIR@', '-p', 'icudt67l',
|
||||||
|
'-m', 'static', '@INPUT@'],
|
||||||
|
input: icudata_lst, output: 'icudata_static.lib')
|
||||||
|
else
|
||||||
|
if host_machine.system() == 'darwin'
|
||||||
|
suffix = is_static ? '.a' : '.dylib'
|
||||||
|
else
|
||||||
|
suffix = is_static ? '.a' : '.so'
|
||||||
|
endif
|
||||||
|
suffix = '.a'
|
||||||
|
|
||||||
|
icupkg_inc = custom_target('icupkg.inc',
|
||||||
|
command: [python3, '@INPUT@', host_machine.system(),
|
||||||
|
host_machine.cpu_family(), '@OUTPUT@'],
|
||||||
|
input: 'generate_icupkg_inc.py',
|
||||||
|
output: 'icupkg.inc')
|
||||||
|
data_lib_static = custom_target(
|
||||||
|
'icudata_static', command: [pkgdata, '-q', '-c', '-e', 'icudt67', '-L', 'icudata_static',
|
||||||
|
'-d', '@OUTDIR@', '-s', '@OUTDIR@',
|
||||||
|
'-p', 'icudt67l', '-O', icupkg_inc,
|
||||||
|
'-m', 'static', '@INPUT@'],
|
||||||
|
input: icudata_lst, output: 'libicudata_static' + suffix)
|
||||||
|
endif
|
||||||
|
|
||||||
|
if is_static
|
||||||
|
data_lib = data_lib_static
|
||||||
|
else
|
||||||
|
# convert to proper library object to make sure rpath gets set properly
|
||||||
|
data_lib = library('icudata', link_whole: data_lib_static)
|
||||||
|
endif
|
||||||
|
|
||||||
|
# -nodefaultlibs -nostdlib for stubdata
|
239
subprojects/packagefiles/icu/source/i18n/meson.build
Normal file
239
subprojects/packagefiles/icu/source/i18n/meson.build
Normal file
|
@ -0,0 +1,239 @@
|
||||||
|
i18n_sources = files(
|
||||||
|
'ucln_in.cpp',
|
||||||
|
'fmtable.cpp',
|
||||||
|
'format.cpp',
|
||||||
|
'msgfmt.cpp',
|
||||||
|
'umsg.cpp',
|
||||||
|
'numfmt.cpp',
|
||||||
|
'unum.cpp',
|
||||||
|
'decimfmt.cpp',
|
||||||
|
'dcfmtsym.cpp',
|
||||||
|
'fmtable_cnv.cpp',
|
||||||
|
'choicfmt.cpp',
|
||||||
|
'datefmt.cpp',
|
||||||
|
'smpdtfmt.cpp',
|
||||||
|
'reldtfmt.cpp',
|
||||||
|
'dtfmtsym.cpp',
|
||||||
|
'udat.cpp',
|
||||||
|
'dtptngen.cpp',
|
||||||
|
'udatpg.cpp',
|
||||||
|
'nfrs.cpp',
|
||||||
|
'nfrule.cpp',
|
||||||
|
'nfsubs.cpp',
|
||||||
|
'rbnf.cpp',
|
||||||
|
'numsys.cpp',
|
||||||
|
'unumsys.cpp',
|
||||||
|
'ucsdet.cpp',
|
||||||
|
'ucal.cpp',
|
||||||
|
'calendar.cpp',
|
||||||
|
'gregocal.cpp',
|
||||||
|
'timezone.cpp',
|
||||||
|
'simpletz.cpp',
|
||||||
|
'olsontz.cpp',
|
||||||
|
'astro.cpp',
|
||||||
|
'taiwncal.cpp',
|
||||||
|
'buddhcal.cpp',
|
||||||
|
'persncal.cpp',
|
||||||
|
'islamcal.cpp',
|
||||||
|
'japancal.cpp',
|
||||||
|
'gregoimp.cpp',
|
||||||
|
'hebrwcal.cpp',
|
||||||
|
'indiancal.cpp',
|
||||||
|
'chnsecal.cpp',
|
||||||
|
'cecal.cpp',
|
||||||
|
'coptccal.cpp',
|
||||||
|
'dangical.cpp',
|
||||||
|
'ethpccal.cpp',
|
||||||
|
'coleitr.cpp',
|
||||||
|
'coll.cpp',
|
||||||
|
'sortkey.cpp',
|
||||||
|
'bocsu.cpp',
|
||||||
|
'ucoleitr.cpp',
|
||||||
|
'ucol.cpp',
|
||||||
|
'ucol_res.cpp',
|
||||||
|
'ucol_sit.cpp',
|
||||||
|
'collation.cpp',
|
||||||
|
'collationsettings.cpp',
|
||||||
|
'collationdata.cpp',
|
||||||
|
'collationtailoring.cpp',
|
||||||
|
'collationdatareader.cpp',
|
||||||
|
'collationdatawriter.cpp',
|
||||||
|
'collationfcd.cpp',
|
||||||
|
'collationiterator.cpp',
|
||||||
|
'utf16collationiterator.cpp',
|
||||||
|
'utf8collationiterator.cpp',
|
||||||
|
'uitercollationiterator.cpp',
|
||||||
|
'collationsets.cpp',
|
||||||
|
'collationcompare.cpp',
|
||||||
|
'collationfastlatin.cpp',
|
||||||
|
'collationkeys.cpp',
|
||||||
|
'rulebasedcollator.cpp',
|
||||||
|
'collationroot.cpp',
|
||||||
|
'collationrootelements.cpp',
|
||||||
|
'collationdatabuilder.cpp',
|
||||||
|
'collationweights.cpp',
|
||||||
|
'collationruleparser.cpp',
|
||||||
|
'collationbuilder.cpp',
|
||||||
|
'collationfastlatinbuilder.cpp',
|
||||||
|
'listformatter.cpp',
|
||||||
|
'ulistformatter.cpp',
|
||||||
|
'strmatch.cpp',
|
||||||
|
'usearch.cpp',
|
||||||
|
'search.cpp',
|
||||||
|
'stsearch.cpp',
|
||||||
|
'translit.cpp',
|
||||||
|
'utrans.cpp',
|
||||||
|
'esctrn.cpp',
|
||||||
|
'unesctrn.cpp',
|
||||||
|
'funcrepl.cpp',
|
||||||
|
'strrepl.cpp',
|
||||||
|
'tridpars.cpp',
|
||||||
|
'cpdtrans.cpp',
|
||||||
|
'rbt.cpp',
|
||||||
|
'rbt_data.cpp',
|
||||||
|
'rbt_pars.cpp',
|
||||||
|
'rbt_rule.cpp',
|
||||||
|
'rbt_set.cpp',
|
||||||
|
'nultrans.cpp',
|
||||||
|
'remtrans.cpp',
|
||||||
|
'casetrn.cpp',
|
||||||
|
'titletrn.cpp',
|
||||||
|
'tolowtrn.cpp',
|
||||||
|
'toupptrn.cpp',
|
||||||
|
'anytrans.cpp',
|
||||||
|
'name2uni.cpp',
|
||||||
|
'uni2name.cpp',
|
||||||
|
'nortrans.cpp',
|
||||||
|
'quant.cpp',
|
||||||
|
'transreg.cpp',
|
||||||
|
'brktrans.cpp',
|
||||||
|
'regexcmp.cpp',
|
||||||
|
'rematch.cpp',
|
||||||
|
'repattrn.cpp',
|
||||||
|
'regexst.cpp',
|
||||||
|
'regextxt.cpp',
|
||||||
|
'regeximp.cpp',
|
||||||
|
'uregex.cpp',
|
||||||
|
'uregexc.cpp',
|
||||||
|
'ulocdata.cpp',
|
||||||
|
'measfmt.cpp',
|
||||||
|
'currfmt.cpp',
|
||||||
|
'curramt.cpp',
|
||||||
|
'currunit.cpp',
|
||||||
|
'measure.cpp',
|
||||||
|
'utmscale.cpp',
|
||||||
|
'csdetect.cpp',
|
||||||
|
'csmatch.cpp',
|
||||||
|
'csr2022.cpp',
|
||||||
|
'csrecog.cpp',
|
||||||
|
'csrmbcs.cpp',
|
||||||
|
'csrsbcs.cpp',
|
||||||
|
'csrucode.cpp',
|
||||||
|
'csrutf8.cpp',
|
||||||
|
'inputext.cpp',
|
||||||
|
'wintzimpl.cpp',
|
||||||
|
'windtfmt.cpp',
|
||||||
|
'winnmfmt.cpp',
|
||||||
|
'basictz.cpp',
|
||||||
|
'dtrule.cpp',
|
||||||
|
'rbtz.cpp',
|
||||||
|
'tzrule.cpp',
|
||||||
|
'tztrans.cpp',
|
||||||
|
'vtzone.cpp',
|
||||||
|
'zonemeta.cpp',
|
||||||
|
'standardplural.cpp',
|
||||||
|
'upluralrules.cpp',
|
||||||
|
'plurrule.cpp',
|
||||||
|
'plurfmt.cpp',
|
||||||
|
'selfmt.cpp',
|
||||||
|
'dtitvfmt.cpp',
|
||||||
|
'dtitvinf.cpp',
|
||||||
|
'udateintervalformat.cpp',
|
||||||
|
'tmunit.cpp',
|
||||||
|
'tmutamt.cpp',
|
||||||
|
'tmutfmt.cpp',
|
||||||
|
'currpinf.cpp',
|
||||||
|
'uspoof.cpp',
|
||||||
|
'uspoof_impl.cpp',
|
||||||
|
'uspoof_build.cpp',
|
||||||
|
'uspoof_conf.cpp',
|
||||||
|
'smpdtfst.cpp',
|
||||||
|
'ztrans.cpp',
|
||||||
|
'zrule.cpp',
|
||||||
|
'vzone.cpp',
|
||||||
|
'fphdlimp.cpp',
|
||||||
|
'fpositer.cpp',
|
||||||
|
'ufieldpositer.cpp',
|
||||||
|
'decNumber.cpp',
|
||||||
|
'decContext.cpp',
|
||||||
|
'alphaindex.cpp',
|
||||||
|
'tznames.cpp',
|
||||||
|
'tznames_impl.cpp',
|
||||||
|
'tzgnames.cpp',
|
||||||
|
'tzfmt.cpp',
|
||||||
|
'compactdecimalformat.cpp',
|
||||||
|
'gender.cpp',
|
||||||
|
'region.cpp',
|
||||||
|
'scriptset.cpp',
|
||||||
|
'uregion.cpp',
|
||||||
|
'reldatefmt.cpp',
|
||||||
|
'quantityformatter.cpp',
|
||||||
|
'measunit.cpp',
|
||||||
|
'measunit_extra.cpp',
|
||||||
|
'sharedbreakiterator.cpp',
|
||||||
|
'scientificnumberformatter.cpp',
|
||||||
|
'dayperiodrules.cpp',
|
||||||
|
'nounit.cpp',
|
||||||
|
'number_affixutils.cpp',
|
||||||
|
'number_compact.cpp',
|
||||||
|
'number_decimalquantity.cpp',
|
||||||
|
'number_decimfmtprops.cpp',
|
||||||
|
'number_fluent.cpp',
|
||||||
|
'number_formatimpl.cpp',
|
||||||
|
'number_grouping.cpp',
|
||||||
|
'number_integerwidth.cpp',
|
||||||
|
'number_longnames.cpp',
|
||||||
|
'number_modifiers.cpp',
|
||||||
|
'number_notation.cpp',
|
||||||
|
'number_output.cpp',
|
||||||
|
'number_padding.cpp',
|
||||||
|
'number_patternmodifier.cpp',
|
||||||
|
'number_patternstring.cpp',
|
||||||
|
'number_rounding.cpp',
|
||||||
|
'number_scientific.cpp',
|
||||||
|
'number_utils.cpp',
|
||||||
|
'number_asformat.cpp',
|
||||||
|
'number_mapper.cpp',
|
||||||
|
'number_multiplier.cpp',
|
||||||
|
'number_currencysymbols.cpp',
|
||||||
|
'number_skeletons.cpp',
|
||||||
|
'number_capi.cpp',
|
||||||
|
'double-conversion-string-to-double.cpp',
|
||||||
|
'double-conversion-double-to-string.cpp',
|
||||||
|
'double-conversion-bignum-dtoa.cpp',
|
||||||
|
'double-conversion-bignum.cpp',
|
||||||
|
'double-conversion-cached-powers.cpp',
|
||||||
|
'double-conversion-fast-dtoa.cpp',
|
||||||
|
'double-conversion-strtod.cpp',
|
||||||
|
'string_segment.cpp',
|
||||||
|
'numparse_parsednumber.cpp',
|
||||||
|
'numparse_impl.cpp',
|
||||||
|
'numparse_symbols.cpp',
|
||||||
|
'numparse_decimal.cpp',
|
||||||
|
'numparse_scientific.cpp',
|
||||||
|
'numparse_currency.cpp',
|
||||||
|
'numparse_affixes.cpp',
|
||||||
|
'numparse_compositions.cpp',
|
||||||
|
'numparse_validators.cpp',
|
||||||
|
'numrange_fluent.cpp',
|
||||||
|
'numrange_impl.cpp',
|
||||||
|
'erarules.cpp',
|
||||||
|
'formattedvalue.cpp',
|
||||||
|
'formattedval_iterimpl.cpp',
|
||||||
|
'formattedval_sbimpl.cpp',
|
||||||
|
'formatted_string_builder.cpp',
|
||||||
|
)
|
||||||
|
|
||||||
|
i18n_args = '-DU_I18N_IMPLEMENTATION'
|
||||||
|
i18n_link = ['uc']
|
||||||
|
i18n_deps = []
|
18
subprojects/packagefiles/icu/source/io/meson.build
Normal file
18
subprojects/packagefiles/icu/source/io/meson.build
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
io_sources = files(
|
||||||
|
'locbund.cpp',
|
||||||
|
'ufile.cpp',
|
||||||
|
'ufmt_cmn.cpp',
|
||||||
|
'uprintf.cpp',
|
||||||
|
'uprntf_p.cpp',
|
||||||
|
'uscanf.cpp',
|
||||||
|
'uscanf_p.cpp',
|
||||||
|
'ustdio.cpp',
|
||||||
|
'sprintf.cpp',
|
||||||
|
'sscanf.cpp',
|
||||||
|
'ustream.cpp',
|
||||||
|
'ucln_io.cpp',
|
||||||
|
)
|
||||||
|
|
||||||
|
io_args = '-DU_IO_IMPLEMENTATION'
|
||||||
|
io_link = ['i18n', 'uc']
|
||||||
|
io_deps = []
|
80
subprojects/packagefiles/icu/source/meson.build
Normal file
80
subprojects/packagefiles/icu/source/meson.build
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
python3 = import('python').find_installation('python3')
|
||||||
|
|
||||||
|
incdir = include_directories('common', 'i18n')
|
||||||
|
toolinc = include_directories('tools/toolutil')
|
||||||
|
ctestinc = include_directories('tools/ctestfw')
|
||||||
|
|
||||||
|
subdir('stubdata')
|
||||||
|
|
||||||
|
# get sources and dependencies for required libraries
|
||||||
|
subdir('common')
|
||||||
|
subdir('i18n')
|
||||||
|
subdir('io')
|
||||||
|
subdir('tools/toolutil')
|
||||||
|
|
||||||
|
# create [library name]_lib_stub artifacts linking against stub data
|
||||||
|
icu_libs = ['uc', 'i18n', 'io', 'tu']
|
||||||
|
foreach lib: icu_libs
|
||||||
|
liblinks = []
|
||||||
|
foreach link: get_variable(lib + '_link')
|
||||||
|
liblinks += get_variable(link + '_lib_stub')
|
||||||
|
endforeach
|
||||||
|
set_variable(lib + '_lib_stub', library(
|
||||||
|
'icu' + lib + '_stub',
|
||||||
|
get_variable(lib + '_sources'),
|
||||||
|
include_directories: incdir,
|
||||||
|
c_args: get_variable(lib + '_args'),
|
||||||
|
cpp_args: get_variable(lib + '_args'),
|
||||||
|
link_with: liblinks + [stubdata_lib],
|
||||||
|
dependencies: get_variable(lib + '_deps')
|
||||||
|
))
|
||||||
|
endforeach
|
||||||
|
|
||||||
|
# build tools and full data library using the libraries linked with the stub library
|
||||||
|
subdir('tools/icupkg')
|
||||||
|
subdir('tools/pkgdata')
|
||||||
|
subdir('data')
|
||||||
|
|
||||||
|
# rebuild libraries linking with the full data library
|
||||||
|
foreach lib: icu_libs
|
||||||
|
liblinks = []
|
||||||
|
foreach link: get_variable(lib + '_link')
|
||||||
|
liblinks += get_variable(link + '_lib')
|
||||||
|
endforeach
|
||||||
|
set_variable(lib + '_lib', library(
|
||||||
|
'icu' + lib,
|
||||||
|
get_variable(lib + '_sources'),
|
||||||
|
include_directories: incdir,
|
||||||
|
c_args: get_variable(lib + '_args'),
|
||||||
|
cpp_args: get_variable(lib + '_args'),
|
||||||
|
link_with: liblinks + [data_lib],
|
||||||
|
dependencies: get_variable(lib + '_deps')
|
||||||
|
))
|
||||||
|
endforeach
|
||||||
|
|
||||||
|
# icutest not needed for bootstrapping, link with non-boostrap libs
|
||||||
|
subdir('tools/ctestfw')
|
||||||
|
|
||||||
|
icudata_dep = declare_dependency(link_with: [data_lib],
|
||||||
|
compile_args: usage_args,
|
||||||
|
include_directories: incdir)
|
||||||
|
|
||||||
|
icuuc_dep = declare_dependency(link_with: [uc_lib],
|
||||||
|
compile_args: usage_args,
|
||||||
|
include_directories: incdir)
|
||||||
|
|
||||||
|
icuio_dep = declare_dependency(link_with: [io_lib],
|
||||||
|
compile_args: usage_args,
|
||||||
|
include_directories: incdir)
|
||||||
|
|
||||||
|
icui18n_dep = declare_dependency(link_with: [i18n_lib],
|
||||||
|
compile_args: usage_args,
|
||||||
|
include_directories: incdir)
|
||||||
|
|
||||||
|
icutu_dep = declare_dependency(link_with: [tu_lib],
|
||||||
|
compile_args: usage_args,
|
||||||
|
include_directories: incdir)
|
||||||
|
|
||||||
|
icutest_dep = declare_dependency(link_with: [test_lib],
|
||||||
|
compile_args: usage_args,
|
||||||
|
include_directories: [incdir, ctestinc])
|
1
subprojects/packagefiles/icu/source/stubdata/meson.build
Normal file
1
subprojects/packagefiles/icu/source/stubdata/meson.build
Normal file
|
@ -0,0 +1 @@
|
||||||
|
stubdata_lib = library('icudata', 'stubdata.cpp', include_directories: incdir)
|
|
@ -0,0 +1,18 @@
|
||||||
|
test_sources = files(
|
||||||
|
'ctest.c',
|
||||||
|
'tstdtmod.cpp',
|
||||||
|
'testdata.cpp',
|
||||||
|
'datamap.cpp',
|
||||||
|
'uperf.cpp',
|
||||||
|
'ucln_ct.c',
|
||||||
|
)
|
||||||
|
|
||||||
|
test_args = '-DT_CTEST_IMPLEMENTATION'
|
||||||
|
|
||||||
|
test_lib = library('icutest',
|
||||||
|
test_sources,
|
||||||
|
include_directories: [incdir, toolinc],
|
||||||
|
c_args: test_args,
|
||||||
|
cpp_args: test_args,
|
||||||
|
link_with: [data_lib, tu_lib, uc_lib],
|
||||||
|
)
|
|
@ -0,0 +1,3 @@
|
||||||
|
icupkg = executable('icupkg', 'icupkg.cpp',
|
||||||
|
include_directories: [incdir, toolinc],
|
||||||
|
link_with: [tu_lib_stub, i18n_lib_stub, uc_lib_stub, stubdata_lib])
|
|
@ -0,0 +1,3 @@
|
||||||
|
pkgdata = executable('pkgdata', 'pkgdata.cpp', 'pkgtypes.c',
|
||||||
|
include_directories: [incdir, toolinc],
|
||||||
|
link_with: [tu_lib_stub, i18n_lib_stub, uc_lib_stub, stubdata_lib])
|
|
@ -0,0 +1,30 @@
|
||||||
|
tu_sources = files(
|
||||||
|
'filestrm.cpp',
|
||||||
|
'package.cpp',
|
||||||
|
'pkgitems.cpp',
|
||||||
|
'swapimpl.cpp',
|
||||||
|
'toolutil.cpp',
|
||||||
|
'unewdata.cpp',
|
||||||
|
'collationinfo.cpp',
|
||||||
|
'denseranges.cpp',
|
||||||
|
'ucm.cpp',
|
||||||
|
'ucmstate.cpp',
|
||||||
|
'uoptions.cpp',
|
||||||
|
'uparse.cpp',
|
||||||
|
'ucbuf.cpp',
|
||||||
|
'xmlparser.cpp',
|
||||||
|
'writesrc.cpp',
|
||||||
|
'pkg_icu.cpp',
|
||||||
|
'pkg_genc.cpp',
|
||||||
|
'pkg_gencmn.cpp',
|
||||||
|
'ppucd.cpp',
|
||||||
|
'flagparser.cpp',
|
||||||
|
'filetools.cpp',
|
||||||
|
'udbgutil.cpp',
|
||||||
|
'dbgutil.cpp',
|
||||||
|
'ucln_tu.cpp',
|
||||||
|
)
|
||||||
|
|
||||||
|
tu_args = ['-DU_TOOLUTIL_IMPLEMENTATION']
|
||||||
|
tu_link = ['uc', 'i18n']
|
||||||
|
tu_deps = []
|
Loading…
Reference in a new issue