# -*- mode: conf -*- project('pinyin_parser', ['cpp', 'c'], version: '1.0.1', license: 'EPL-2.0', meson_version: '>= 0.46.0', default_options: [ 'cpp_std=c++11', 'warning_level=2', 'werror=true', 'strip=true', 'buildtype=release']) add_project_arguments( '-Wno-unused-parameter', '-Wno-missing-field-initializers', '-DHAVE_LIBUUID', language: 'cpp') # generate pinyin_parser_wrap.c using swig. # but swig has a bug, the PyInit function name has an extra _ in it. so I use # sed to do a simple replace. swig = find_program('swig') pinyin_parser_wrap_swig = custom_target('pinyin_parser_swig.c', input: 'pinyin_parser.i', output: 'pinyin_parser_swig.c', command: [swig, '-python', '-o', '@OUTPUT@', '@INPUT@']) sed = find_program('sed') pinyin_parser_wrap = custom_target('pinyin_parser_wrap.c', input: pinyin_parser_wrap_swig, output: 'pinyin_parser_wrap.c', capture: true, command: [sed, 's/PyInit__libpinyin_parser/PyInit_libpinyin_parser/', '@INPUT@']) glib = dependency('glib-2.0') uuid = dependency('uuid') shared_dep = [glib, uuid] # requires meson 0.46.0+ pymod = import('python') py_installation = pymod.find_installation('python3') lib_src = [ '../PinyinParser.cc', 'pinyin_parser.cpp', pinyin_parser_wrap] shared_library('pinyin_parser', lib_src, dependencies: [shared_dep, py_installation.dependency(embed: true)], # note: to link against libpython, embed must be set to true. install: true, install_dir: '/home/sylecn/c/gtk-im-module/sogou/scelexport/') main_src = [ '../PinyinParser.cc', 'pinyin_parser_main.cpp'] executable('main', main_src, dependencies: shared_dep) test_src = [ '../PinyinParser.cc', 'pinyin_parser.cpp', 'pinyin_parser_test.cpp'] test('libpinyin_parser-test', executable('libtest', test_src, dependencies: shared_dep))