Newer
Older
# -*- mode: conf -*-
project('zero-panel', 'c',
default_options: [
'warning_level=3',
'werror=true',
'buildtype=debugoptimized'])
add_project_arguments(
'-std=c11',
'-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_data('README',
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])