Skip to content
meson.build 2.14 KiB
Newer Older
# -*- mode: conf -*-
project('zero-panel', 'c',
  version: '1.3.5',
  license: 'EPL-2.0',
  meson_version: '>=0.46.0',
  default_options: [
    'warning_level=3',
    'werror=true',
    'buildtype=debugoptimized',
    'c_std=c11'])

add_project_arguments(
  '-Wno-unused-parameter',
  '-Wno-missing-field-initializers',
  language: 'c')

install_data('com.emacsos.zero.Panel1.PanelInterface.xml',
  install_dir: '/usr/share/dbus-1/interfaces/')
install_data('com.emacsos.zero.Panel1.service',
  install_dir: '/usr/share/dbus-1/services/')
install_subdir('themes',
  install_dir: '/usr/share/zero-panel/',
  strip_directory: true)
install_man(['zero-panel.1'])
install_data('README.org',
  install_dir: '/usr/share/doc/zero-panel/')

gdbus_codegen = find_program('gdbus-codegen')
zero_panel_generated = custom_target('zero-panel-generated',
  input: 'com.emacsos.zero.Panel1.PanelInterface.xml',
  output: ['zero-panel-generated.h', 'zero-panel-generated.c'],
  install: true,
  install_dir: [get_option('includedir') + '/' + 'zero-panel', false],
  command: [gdbus_codegen, '--generate-c-code', 'zero-panel-generated', '@INPUT@'])

# warning_level 3 -Wpedantic requires this change.
sed = find_program('sed')
zero_panel_generated_c_fixed = custom_target('zero-panel-generated-fixed.c',
  input: zero_panel_generated,
  output: 'zero-panel-generated-fixed.c',
  capture: true,
  command: [sed, '{ s/zero_panel_proxy_iface_init));/zero_panel_proxy_iface_init))/g; s/G_TYPE_OBJECT);/G_TYPE_OBJECT)/g; s/zero_panel_skeleton_iface_init));/zero_panel_skeleton_iface_init))/g }', '@INPUT@'])

gtk3 = dependency('gtk+-3.0')

# a library for zero-panel C clients
install_headers('zero-panel.h', subdir: 'zero-panel')

pkg = import('pkgconfig')
lib = library('zero-panel',
  [zero_panel_generated_c_fixed],
  dependencies: [gtk3],
  install: true)
pkg.generate(lib, subdirs: 'zero-panel')

# zero-panel executable
zero_panel = [
  zero_panel_generated_c_fixed,
  'server.c']
executable('zero-panel', zero_panel,
  dependencies: [gtk3],
  install: true,
  install_dir: '/home/sylecn/d/')

executable('zero-panel-client-demo',
  [zero_panel_generated_c_fixed,
   'client-demo.c'],
  dependencies: [gtk3])