aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2019-01-18 15:39:07 -0500
committerGitHub <noreply@github.com>2019-01-18 15:39:07 -0500
commit639b66b6769722b5decc8f7a21dd7c5037f3c65c (patch)
treecd93e26b01fe51b76b124b334057011c81974859
parent60220fcecd1d30c022b3137372d339204e8238c6 (diff)
parent765d7bc94f1b02f0b1135b6412dab8654ec2ac31 (diff)
Merge pull request #3452 from emersion/meson-features
Use Meson feature options
-rw-r--r--meson.build42
-rw-r--r--meson_options.txt8
-rw-r--r--sway/meson.build3
-rw-r--r--swaybar/meson.build5
-rw-r--r--swaybg/meson.build1
-rw-r--r--swaymsg/meson.build13
-rw-r--r--swaynag/meson.build1
7 files changed, 30 insertions, 43 deletions
diff --git a/meson.build b/meson.build
index 2285cbdf..bb1c4ddf 100644
--- a/meson.build
+++ b/meson.build
@@ -2,6 +2,7 @@ project(
'sway',
'c',
license: 'MIT',
+ meson_version: '>=0.48.0',
default_options: [
'c_std=c11',
'warning_level=2',
@@ -45,37 +46,39 @@ xkbcommon = dependency('xkbcommon')
cairo = dependency('cairo')
pango = dependency('pango')
pangocairo = dependency('pangocairo')
-gdk_pixbuf = dependency('gdk-pixbuf-2.0', required: false)
+gdk_pixbuf = dependency('gdk-pixbuf-2.0', required: get_option('gdk-pixbuf'))
pixman = dependency('pixman-1')
libevdev = dependency('libevdev')
libinput = dependency('libinput', version: '>=1.6.0')
-libpam = cc.find_library('pam', required: false)
-crypt = cc.find_library('crypt', required: false)
systemd = dependency('libsystemd', required: false)
elogind = dependency('libelogind', required: false)
+xcb = dependency('xcb', required: get_option('xwayland'))
math = cc.find_library('m')
rt = cc.find_library('rt')
git = find_program('git', required: false)
-conf_data = configuration_data()
+have_xwayland = xcb.found()
-conf_data.set10('HAVE_XWAYLAND', get_option('enable-xwayland'))
-if get_option('enable-xwayland')
- xcb = dependency('xcb')
+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.set10('HAVE_XWAYLAND', have_xwayland)
conf_data.set10('HAVE_GDK_PIXBUF', gdk_pixbuf.found())
conf_data.set10('HAVE_SYSTEMD', systemd.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()
warning('The sway binary must be setuid when compiled without (e)logind')
warning('You must do this manually post-install: chmod a+s /path/to/sway')
endif
-scdoc = find_program('scdoc', required: false)
-
+scdoc = find_program('scdoc', required: get_option('man-pages'))
if scdoc.found()
sh = find_program('sh')
mandir = get_option('mandir')
@@ -123,17 +126,6 @@ else
endif
add_project_arguments('-DSWAY_VERSION=@0@'.format(version), language: 'c')
-if get_option('use_rpath')
- if get_option('custom_rpath') == ''
- # default to platform specific libdir, one level up from the binary
- rpathdir = join_paths('$ORIGIN', '..', '$LIB')
- else
- rpathdir = get_option('custom_rpath')
- endif
-else
- rpathdir = ''
-endif
-
sway_inc = include_directories('include')
subdir('include')
@@ -180,7 +172,7 @@ install_data(
install_dir: datadir + '/wayland-sessions'
)
-if (get_option('default-wallpaper'))
+if get_option('default-wallpaper')
wallpaper_files = files(
'assets/Sway_Wallpaper_Blue_768x1024.png',
'assets/Sway_Wallpaper_Blue_768x1024_Portrait.png',
@@ -196,7 +188,7 @@ if (get_option('default-wallpaper'))
install_data(wallpaper_files, install_dir: wallpaper_install_dir)
endif
-if (get_option('zsh-completions'))
+if get_option('zsh-completions')
zsh_files = files(
'completions/zsh/_sway',
'completions/zsh/_swaymsg',
@@ -206,7 +198,7 @@ if (get_option('zsh-completions'))
install_data(zsh_files, install_dir: zsh_install_dir)
endif
-if (get_option('bash-completions'))
+if get_option('bash-completions')
bash_files = files(
'completions/bash/sway',
'completions/bash/swaybar',
@@ -217,7 +209,7 @@ if (get_option('bash-completions'))
install_data(bash_files, install_dir: bash_install_dir)
endif
-if (get_option('fish-completions'))
+if get_option('fish-completions')
fish_files = files(
'completions/fish/sway.fish',
'completions/fish/swaymsg.fish',
diff --git a/meson_options.txt b/meson_options.txt
index 4640618e..04b29e17 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -1,9 +1,9 @@
option('sway-version', type : 'string', description: 'The version string reported in `sway --version`.')
-option('use_rpath', type: 'boolean', value: false, description: 'install binaries with rpath set')
-option('custom_rpath', type: 'string', value: '', description: 'override rpath with a custom one')
option('default-wallpaper', type: 'boolean', value: true, description: 'Install the default wallpaper.')
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('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('enable-tray', type: 'boolean', value: false, description: 'Enable support for swaybar tray')
+option('xwayland', type: 'feature', value: 'auto', description: 'Enable support for X11 applications')
+option('tray', type: 'feature', value: 'auto', description: 'Enable support for swaybar tray')
+option('gdk-pixbuf', type: 'feature', value: 'auto', description: 'Enable support for more image formats in swaybg')
+option('man-pages', type: 'feature', value: 'auto', description: 'Generate and install man pages')
diff --git a/sway/meson.build b/sway/meson.build
index 0a08ee74..94d5abdb 100644
--- a/sway/meson.build
+++ b/sway/meson.build
@@ -194,7 +194,7 @@ sway_deps = [
xkbcommon,
]
-if get_option('enable-xwayland')
+if have_xwayland
sway_sources += 'desktop/xwayland.c'
sway_deps += xcb
endif
@@ -205,6 +205,5 @@ executable(
include_directories: [sway_inc],
dependencies: sway_deps,
link_with: [lib_sway_common],
- install_rpath : rpathdir,
install: true
)
diff --git a/swaybar/meson.build b/swaybar/meson.build
index 312ca97b..b35f8169 100644
--- a/swaybar/meson.build
+++ b/swaybar/meson.build
@@ -1,4 +1,4 @@
-tray_files = get_option('enable-tray') ? [
+tray_files = have_tray ? [
'tray/host.c',
'tray/icon.c',
'tray/item.c',
@@ -19,7 +19,7 @@ swaybar_deps = [
wayland_cursor,
wlroots,
]
-if get_option('enable-tray')
+if have_tray
if systemd.found()
swaybar_deps += systemd
elif elogind.found()
@@ -42,6 +42,5 @@ executable(
include_directories: [sway_inc],
dependencies: swaybar_deps,
link_with: [lib_sway_common, lib_sway_client],
- install_rpath : rpathdir,
install: true
)
diff --git a/swaybg/meson.build b/swaybg/meson.build
index 095c5488..8704de6d 100644
--- a/swaybg/meson.build
+++ b/swaybg/meson.build
@@ -14,6 +14,5 @@ executable(
wlroots,
],
link_with: [lib_sway_common, lib_sway_client],
- install_rpath : rpathdir,
install: true
)
diff --git a/swaymsg/meson.build b/swaymsg/meson.build
index 7318349d..b78e6cb0 100644
--- a/swaymsg/meson.build
+++ b/swaymsg/meson.build
@@ -1,9 +1,8 @@
executable(
- 'swaymsg',
- 'main.c',
- include_directories: [sway_inc],
- dependencies: [jsonc, wlroots],
- link_with: [lib_sway_common],
- install_rpath : rpathdir,
- install: true
+ 'swaymsg',
+ 'main.c',
+ include_directories: [sway_inc],
+ dependencies: [jsonc, wlroots],
+ link_with: [lib_sway_common],
+ install: true
)
diff --git a/swaynag/meson.build b/swaynag/meson.build
index 223a0bc7..2ba3ed95 100644
--- a/swaynag/meson.build
+++ b/swaynag/meson.build
@@ -19,6 +19,5 @@ executable(
wlroots,
],
link_with: [lib_sway_common, lib_sway_client],
- install_rpath : rpathdir,
install: true
)