Use Meson feature options

This commit is contained in:
emersion 2019-01-17 18:02:25 +01:00
parent 5a0c4234b8
commit 08a5b304e4
Failed to generate hash of commit
4 changed files with 17 additions and 11 deletions

View file

@ -2,6 +2,7 @@ project(
'sway', 'sway',
'c', 'c',
license: 'MIT', license: 'MIT',
meson_version: '>=0.48.0',
default_options: [ default_options: [
'c_std=c11', 'c_std=c11',
'warning_level=2', 'warning_level=2',
@ -53,21 +54,26 @@ libpam = cc.find_library('pam', required: false)
crypt = cc.find_library('crypt', required: false) crypt = cc.find_library('crypt', required: false)
systemd = dependency('libsystemd', required: false) systemd = dependency('libsystemd', required: false)
elogind = dependency('libelogind', required: false) elogind = dependency('libelogind', required: false)
xcb = dependency('xcb', required: get_option('xwayland'))
math = cc.find_library('m') math = cc.find_library('m')
rt = cc.find_library('rt') rt = cc.find_library('rt')
git = find_program('git', required: false) git = find_program('git', required: false)
have_xwayland = xcb.found()
tray_deps_found = systemd.found() or elogind.found()
if get_option('tray').enabled() and not tray_deps_found
error('Building with -Dtray=enabled, but libsystemd and libelogind have not been not found')
endif
have_tray = (not get_option('tray').disabled()) and tray_deps_found
conf_data = configuration_data() conf_data = configuration_data()
conf_data.set10('HAVE_XWAYLAND', get_option('enable-xwayland')) conf_data.set10('HAVE_XWAYLAND', have_xwayland)
if get_option('enable-xwayland')
xcb = dependency('xcb')
endif
conf_data.set10('HAVE_GDK_PIXBUF', gdk_pixbuf.found()) conf_data.set10('HAVE_GDK_PIXBUF', gdk_pixbuf.found())
conf_data.set10('HAVE_SYSTEMD', systemd.found()) conf_data.set10('HAVE_SYSTEMD', systemd.found())
conf_data.set10('HAVE_ELOGIND', elogind.found()) conf_data.set10('HAVE_ELOGIND', elogind.found())
conf_data.set10('HAVE_TRAY', get_option('enable-tray') and (systemd.found() or elogind.found())) conf_data.set10('HAVE_TRAY', have_tray)
if not systemd.found() and not elogind.found() if not systemd.found() and not elogind.found()
warning('The sway binary must be setuid when compiled without (e)logind') warning('The sway binary must be setuid when compiled without (e)logind')

View file

@ -5,5 +5,5 @@ option('default-wallpaper', type: 'boolean', value: true, description: 'Install
option('zsh-completions', type: 'boolean', value: true, description: 'Install zsh shell completions.') option('zsh-completions', type: 'boolean', value: true, description: 'Install zsh shell completions.')
option('bash-completions', type: 'boolean', value: true, description: 'Install bash shell completions.') option('bash-completions', type: 'boolean', value: true, description: 'Install bash shell completions.')
option('fish-completions', type: 'boolean', value: true, description: 'Install fish shell completions.') option('fish-completions', type: 'boolean', value: true, description: 'Install fish shell completions.')
option('enable-xwayland', type: 'boolean', value: true, description: 'Enable support for X11 applications') option('xwayland', type: 'feature', value: 'auto', description: 'Enable support for X11 applications')
option('enable-tray', type: 'boolean', value: false, description: 'Enable support for swaybar tray') option('tray', type: 'feature', value: 'auto', description: 'Enable support for swaybar tray')

View file

@ -194,7 +194,7 @@ sway_deps = [
xkbcommon, xkbcommon,
] ]
if get_option('enable-xwayland') if have_xwayland
sway_sources += 'desktop/xwayland.c' sway_sources += 'desktop/xwayland.c'
sway_deps += xcb sway_deps += xcb
endif endif

View file

@ -1,4 +1,4 @@
tray_files = get_option('enable-tray') ? [ tray_files = have_tray ? [
'tray/host.c', 'tray/host.c',
'tray/icon.c', 'tray/icon.c',
'tray/item.c', 'tray/item.c',
@ -19,7 +19,7 @@ swaybar_deps = [
wayland_cursor, wayland_cursor,
wlroots, wlroots,
] ]
if get_option('enable-tray') if have_tray
if systemd.found() if systemd.found()
swaybar_deps += systemd swaybar_deps += systemd
elif elogind.found() elif elogind.found()