summaryrefslogtreecommitdiff
path: root/meson.build
diff options
context:
space:
mode:
Diffstat (limited to 'meson.build')
-rw-r--r--meson.build48
1 files changed, 48 insertions, 0 deletions
diff --git a/meson.build b/meson.build
new file mode 100644
index 0000000..c61b6f7
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,48 @@
+project('monmon', 'cpp',
+ version: '0.1',
+ default_options: ['cpp_std=c++11'])
+
+cpp_optional_flags = ['-fno-rtti', '-fno-exceptions',
+ '-fvisibility=hidden',
+ '-Wall', '-Wextra',
+ '-Wno-missing-field-initializers',
+ '-Wno-maybe-uninitialized']
+cpp_flags = ['-DHAVE_CONFIG_H']
+if get_option('buildtype') == 'release'
+ # If asserts are disabled parameters and variables used for only that
+ # end up causing warnings
+ cpp_optional_flags += ['-Wno-unused-parameter', '-Wno-unused-variable']
+ cpp_flags += '-DNDEBUG'
+endif
+cpp = meson.get_compiler('cpp')
+foreach flag : cpp_optional_flags
+ if cpp.has_argument(flag)
+ cpp_flags += flag
+ endif
+endforeach
+add_global_arguments(cpp_flags, language: 'cpp')
+
+conf = configuration_data()
+conf.set('VERSION', '"' + meson.project_version() + '"')
+conf.set10('FAKE_MONITOR', get_option('fake_monitor'))
+
+xcb_deps = [dependency('xcb', version : '>= 1.10'),
+ dependency('xcb-image', version : '>= 0.3.8'),
+ dependency('xcb-event', version : '>= 0.3.8'),
+ dependency('xcb-ewmh', version : '>= 0.3.8'),
+ dependency('xcb-keysyms', version : '>= 0.3.8'),
+ dependency('xcb-icccm', version : '>= 0.3.8')]
+dep_cairo = dependency('cairo-xcb', version : '>= 1.12.0')
+dep_pango = dependency('pangocairo', version : '>= 1.40.0')
+dep_icecc = dependency('icecc', version : '>= 1.1')
+dep_thread = dependency('threads')
+
+configure_file(output: 'config.h',
+ configuration: conf)
+
+executable('monmon',
+ sources: ['src/main.cc', 'src/x.cc', 'src/args.cc',
+ 'src/poll_looper.cc', 'src/looper.cc', 'src/clock.cc',
+ 'src/io.cc', 'src/monitor.cc', 'src/fake_monitor.cc'],
+ dependencies: [dep_thread, dep_pango, dep_cairo, dep_icecc,
+ xcb_deps])