Skip to content
meson.build 1.58 KiB
Newer Older
# -*- mode: conf -*-
project('pinyin_parser', ['cpp', 'c'],
  version: '1.0.0',
  license: 'EPL-2.0',
  default_options: [
    'warning_level=2',
    'werror=true',
    'strip=true',
    'buildtype=release'])

add_project_arguments(
  '-Wno-unused-parameter',
  '-Wno-missing-field-initializers',
  '-DHAVE_LIBUUID',
  '-std=c++11',
  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]

lib_src = [
  '../PinyinParser.cc',
  'pinyin_parser.cpp',
  pinyin_parser_wrap]
shared_library('pinyin_parser',
  lib_src,
  dependencies: [shared_dep, dependency('python3')],
  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))