diff options
author | Leon Henrik Plickat <leonhenrik.plickat@stud.uni-goettingen.de> | 2020-09-24 18:01:28 +0200 |
---|---|---|
committer | Leon Henrik Plickat <leonhenrik.plickat@stud.uni-goettingen.de> | 2020-09-24 18:01:28 +0200 |
commit | 9ff4f4959b8d78104fa4defb3c4cea9606e3c484 (patch) | |
tree | ac80aef7e1caff0d0af491ea4816ca63706a8116 /meson.build | |
download | wlclock-9ff4f4959b8d78104fa4defb3c4cea9606e3c484.tar.gz wlclock-9ff4f4959b8d78104fa4defb3c4cea9606e3c484.tar.bz2 |
Init
Diffstat (limited to 'meson.build')
-rw-r--r-- | meson.build | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..31a32e1 --- /dev/null +++ b/meson.build @@ -0,0 +1,95 @@ +project( + 'wlclock', + 'c', + version: '0.1.0', + license: 'GPLv3', + default_options: [ + 'c_std=c11', + 'warning_level=3', + 'werror=true', + ] +) + +cc = meson.get_compiler('c') + +add_project_arguments(cc.get_supported_arguments([ + '-D_POSIX_C_SOURCE=200809L', + '-DVERSION="0.1.0"', + '-fsigned-char', + '-Wno-unused-parameter', + '-Wpointer-arith', + '-Wformat-security', + '-Wunreachable-code', + '-Wformat', +]), language: 'c') + +if get_option('handle-signals').enabled() + add_project_arguments(cc.get_supported_arguments([ '-DHANDLE_SIGNALS' ]), language: 'c') +endif + +wayland_protocols = dependency('wayland-protocols') +wayland_client = dependency('wayland-client', include_type: 'system') +wayland_cursor = dependency('wayland-cursor', include_type: 'system') +cairo = dependency('cairo') +realtime = cc.find_library('rt') + +if ['dragonfly', 'freebsd', 'netbsd', 'openbsd'].contains(host_machine.system()) + libepoll = dependency('epoll-shim', required: get_option('handle-signals')) +else + libepoll = [] +endif + +subdir('protocol') + +executable( + 'wlclock', + files( + 'src/buffer.c', + 'src/misc.c', + 'src/output.c', + 'src/surface.c', + 'src/wlclock.c', + ), + dependencies: [ + wayland_client, + wayland_protocols, + wayland_cursor, + cairo, + wl_protocols, + realtime, + libepoll, + ], + include_directories: include_directories('src'), + install: true, +) + +scdoc = dependency( + 'scdoc', + version: '>=1.9.2', + native: true, + required: get_option('man-pages'), +) +if scdoc.found() + scdoc_prog = find_program(scdoc.get_pkgconfig_variable('scdoc'), native: true) + sh = find_program('sh', native: true) + mandir = get_option('mandir') + man_files = [ + 'doc/wlclock.1.scd' + ] + foreach filename : man_files + topic = filename.split('.')[-3].split('/')[-1] + section = filename.split('.')[-2] + output = '@0@.@1@'.format(topic, section) + + custom_target( + output, + input: filename, + output: output, + command: [ + sh, '-c', '@0@ < @INPUT@ > @1@'.format(scdoc_prog.path(), output) + ], + install: true, + install_dir: '@0@/man@1@'.format(mandir, section) + ) + endforeach +endif |