Skip to content
meson.build 2.07 KiB
Newer Older
Yuanle Song's avatar
Yuanle Song committed
# -*- mode: conf -*-
project('zero-pinyin-service', ['c', 'cpp'],
  version: '0.10.0',
Yuanle Song's avatar
Yuanle Song committed
  license: 'GPL',
  meson_version: '>=0.1.0',
Yuanle Song's avatar
Yuanle Song committed
  default_options: [
    'warning_level=2',
    'werror=true',
    'buildtype=release',
    'strip=true',
    'b_ndebug=if-release',
    'c_std=c11'])
Yuanle Song's avatar
Yuanle Song committed
# to create a debug build
# meson setup --buildtype debugoptimized build/

add_project_arguments(
  '-Wno-unused-parameter',
  '-Wno-missing-field-initializers',
  language: ['c', 'cpp'])
add_project_arguments(
  '-DHAVE_LIBUUID',
  language: 'cpp')

if get_option('buildtype').startswith('release')
  add_project_arguments(
    '-DG_DISABLE_ASSERT',
    '-DG_DISABLE_CHECKS',
    language: ['c', 'cpp'])
endif

install_data('com.emacsos.zero.ZeroPinyinService1.ZeroPinyinServiceInterface.xml',
  install_dir: '/usr/share/dbus-1/interfaces/')
install_data('com.emacsos.zero.ZeroPinyinService1.service',
  install_dir: '/usr/share/dbus-1/services/')

Yuanle Song's avatar
Yuanle Song committed
glib = dependency('glib-2.0')
gio = dependency('gio-unix-2.0')
uuid = dependency('uuid')
sqlite3 = dependency('sqlite3')
shared_dep = [glib, gio, uuid, sqlite3]
Yuanle Song's avatar
Yuanle Song committed

gen_inc = include_directories('.')

gdbus_codegen = find_program('gdbus-codegen')
zero_pinyin_generated = custom_target('zero-pinyin-generated',
  input: 'com.emacsos.zero.ZeroPinyinService1.ZeroPinyinServiceInterface.xml',
  output: ['zero-pinyin-service-generated.h', 'zero-pinyin-service-generated.c'],
  command: [gdbus_codegen, '--generate-c-code', 'zero-pinyin-service-generated', '@INPUT@'])

lib = [
  '../PinyinParser.cc',
  '../sqlite3_util.c',
  'parse-pinyin.cpp',
  'zero-pinyin-service.c']
src = [
  lib,
  zero_pinyin_generated,
Yuanle Song's avatar
Yuanle Song committed
executable('zero-pinyin-service', src,
  include_directories: gen_inc,
Yuanle Song's avatar
Yuanle Song committed
  dependencies: shared_dep,
  install: true, install_dir: '/home/sylecn/bin/sbin/')
Yuanle Song's avatar
Yuanle Song committed

test('parse-pinyin-test',
  executable('parse-pinyin-test',
Yuanle Song's avatar
Yuanle Song committed
    ['../PinyinParser.cc', 'parse-pinyin.cpp', 'parse-pinyin-test.cpp'],
    dependencies: shared_dep))
test('zero-pinyin-service-test',
  executable('zero-pinyin-service-test',
    [lib, 'zero-pinyin-service-test.c'],
    dependencies: shared_dep))