From ba6246ada199beafdc9c3585000bf9f59e4e91f8 Mon Sep 17 00:00:00 2001 From: Tony Crisci Date: Wed, 29 Nov 2017 09:03:12 -0500 Subject: working meson build --- meson.build | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 meson.build (limited to 'meson.build') diff --git a/meson.build b/meson.build new file mode 100644 index 00000000..06eed97f --- /dev/null +++ b/meson.build @@ -0,0 +1,66 @@ +project( + 'sway', + 'c', + license: 'MIT', + default_options: [ + 'c_std=c11', + 'warning_level=2', + 'werror=true', + ], +) + +cc = meson.get_compiler('c') + +jsonc = dependency('json-c', version: '>=0.12.1') +pcre = dependency('libpcre') +wlroots = dependency('wlroots') +wayland_server = dependency('wayland-server') +wayland_client = dependency('wayland-client') +wayland_egl = dependency('wayland-egl') +wayland_protos = dependency('wayland-protocols') +xkbcommon = dependency('xkbcommon') +pango = dependency('pango') +pixman = dependency('pixman-1') +libcap = dependency('libcap') + +math = cc.find_library('m') + +# TODO version +add_project_arguments('-DSWAY_VERSION="5"', language: 'c') + +sway_inc = include_directories('include') + +sway_sources = [ + 'sway/main.c', + 'sway/server.c', + 'sway/commands.c', + 'sway/commands/exit.c', + 'sway/ipc-json.c', + 'sway/ipc-server.c', + 'sway/desktop/output.c', + 'sway/desktop/xdg_shell_v6.c', + 'sway/tree/container.c', + 'sway/tree/layout.c', + 'sway/tree/workspace.c', + 'common/log.c', + 'common/list.c', + 'common/stringop.c', + 'common/readline.c', + 'common/ipc-client.c', +] + +sway_deps = [ + pixman, + wayland_server, + jsonc, + wlroots, + libcap, + math, +] + +executable( + 'sway', + sway_sources, + include_directories: [sway_inc], + dependencies: sway_deps +) -- cgit v1.2.3 From 88cc7e31781a0d42bdd4f9eee646c02ff03857c4 Mon Sep 17 00:00:00 2001 From: Tony Crisci Date: Thu, 30 Nov 2017 03:39:27 -0500 Subject: use meson subdirectories --- common/meson.build | 8 ++++++++ meson.build | 35 ++--------------------------------- sway/meson.build | 29 +++++++++++++++++++++++++++++ 3 files changed, 39 insertions(+), 33 deletions(-) create mode 100644 common/meson.build create mode 100644 sway/meson.build (limited to 'meson.build') diff --git a/common/meson.build b/common/meson.build new file mode 100644 index 00000000..ca1f1752 --- /dev/null +++ b/common/meson.build @@ -0,0 +1,8 @@ +sway_common = files( + 'log.c', + 'list.c', + 'util.c', + 'stringop.c', + 'readline.c', + 'ipc-client.c' +) diff --git a/meson.build b/meson.build index 06eed97f..a28e1097 100644 --- a/meson.build +++ b/meson.build @@ -30,37 +30,6 @@ add_project_arguments('-DSWAY_VERSION="5"', language: 'c') sway_inc = include_directories('include') -sway_sources = [ - 'sway/main.c', - 'sway/server.c', - 'sway/commands.c', - 'sway/commands/exit.c', - 'sway/ipc-json.c', - 'sway/ipc-server.c', - 'sway/desktop/output.c', - 'sway/desktop/xdg_shell_v6.c', - 'sway/tree/container.c', - 'sway/tree/layout.c', - 'sway/tree/workspace.c', - 'common/log.c', - 'common/list.c', - 'common/stringop.c', - 'common/readline.c', - 'common/ipc-client.c', -] +subdir('common') +subdir('sway') -sway_deps = [ - pixman, - wayland_server, - jsonc, - wlroots, - libcap, - math, -] - -executable( - 'sway', - sway_sources, - include_directories: [sway_inc], - dependencies: sway_deps -) diff --git a/sway/meson.build b/sway/meson.build new file mode 100644 index 00000000..1f17ed31 --- /dev/null +++ b/sway/meson.build @@ -0,0 +1,29 @@ +sway_sources = sway_common + files( + 'main.c', + 'server.c', + 'commands.c', + 'commands/exit.c', + 'ipc-json.c', + 'ipc-server.c', + 'desktop/output.c', + 'desktop/xdg_shell_v6.c', + 'tree/container.c', + 'tree/layout.c', + 'tree/workspace.c', +) + +sway_deps = [ + pixman, + wayland_server, + jsonc, + wlroots, + libcap, + math, +] + +executable( + 'sway', + sway_sources, + include_directories: [sway_inc], + dependencies: sway_deps +) -- cgit v1.2.3 From 6924064766ac772564d1b924df8c2071c1660235 Mon Sep 17 00:00:00 2001 From: Tony Crisci Date: Thu, 30 Nov 2017 03:41:51 -0500 Subject: fix meson.build whitespace --- meson.build | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'meson.build') diff --git a/meson.build b/meson.build index a28e1097..6f2681af 100644 --- a/meson.build +++ b/meson.build @@ -11,18 +11,17 @@ project( cc = meson.get_compiler('c') -jsonc = dependency('json-c', version: '>=0.12.1') -pcre = dependency('libpcre') -wlroots = dependency('wlroots') +jsonc = dependency('json-c', version: '>=0.12.1') +pcre = dependency('libpcre') +wlroots = dependency('wlroots') wayland_server = dependency('wayland-server') wayland_client = dependency('wayland-client') wayland_egl = dependency('wayland-egl') wayland_protos = dependency('wayland-protocols') xkbcommon = dependency('xkbcommon') -pango = dependency('pango') -pixman = dependency('pixman-1') -libcap = dependency('libcap') - +pango = dependency('pango') +pixman = dependency('pixman-1') +libcap = dependency('libcap') math = cc.find_library('m') # TODO version -- cgit v1.2.3 From 86d1ecf783f8fd164ed63501c859b65cfc6bc022 Mon Sep 17 00:00:00 2001 From: Tony Crisci Date: Thu, 30 Nov 2017 04:29:32 -0500 Subject: meson add version info --- meson.build | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'meson.build') diff --git a/meson.build b/meson.build index 6f2681af..af383fbf 100644 --- a/meson.build +++ b/meson.build @@ -24,8 +24,11 @@ pixman = dependency('pixman-1') libcap = dependency('libcap') math = cc.find_library('m') -# TODO version -add_project_arguments('-DSWAY_VERSION="5"', language: 'c') +git_commit_hash = run_command(['git', 'describe', '--always', '--tags']).stdout().strip() +git_branch = run_command(['git', 'rev-parse', '--abbrev-ref', 'HEAD']).stdout().strip() +version = '"@0@ (" __DATE__ ", branch \'@1@\')"'.format(git_commit_hash, git_branch) + +add_project_arguments('-DSWAY_VERSION=@0@'.format(version), language: 'c') sway_inc = include_directories('include') -- cgit v1.2.3 From 739bafbd8ecdbbf2eb3fd42e1b3d9249236a3fcf Mon Sep 17 00:00:00 2001 From: Tony Crisci Date: Thu, 30 Nov 2017 04:48:08 -0500 Subject: make meson version configurable --- meson.build | 16 +++++++++++++--- meson_options.txt | 1 + 2 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 meson_options.txt (limited to 'meson.build') diff --git a/meson.build b/meson.build index af383fbf..ac161987 100644 --- a/meson.build +++ b/meson.build @@ -23,10 +23,20 @@ pango = dependency('pango') pixman = dependency('pixman-1') libcap = dependency('libcap') math = cc.find_library('m') +git = find_program('git', required: false) -git_commit_hash = run_command(['git', 'describe', '--always', '--tags']).stdout().strip() -git_branch = run_command(['git', 'rev-parse', '--abbrev-ref', 'HEAD']).stdout().strip() -version = '"@0@ (" __DATE__ ", branch \'@1@\')"'.format(git_commit_hash, git_branch) +version = get_option('sway_version') +if version != '' + version = '"@0@"'.format(version) +else + if not git.found() + error('git is required to make the version string') + endif + + git_commit_hash = run_command([git.path(), 'describe', '--always', '--tags']).stdout().strip() + git_branch = run_command([git.path(), 'rev-parse', '--abbrev-ref', 'HEAD']).stdout().strip() + version = '"@0@ (" __DATE__ ", branch \'@1@\')"'.format(git_commit_hash, git_branch) +endif add_project_arguments('-DSWAY_VERSION=@0@'.format(version), language: 'c') diff --git a/meson_options.txt b/meson_options.txt new file mode 100644 index 00000000..5015a986 --- /dev/null +++ b/meson_options.txt @@ -0,0 +1 @@ +option('sway_version', type : 'string', description : 'The version string reported in `sway --version`.') -- cgit v1.2.3 From 2f3633433e2f1d840f3a98ca777d79d658a66e3f Mon Sep 17 00:00:00 2001 From: Tony Crisci Date: Thu, 30 Nov 2017 08:31:13 -0500 Subject: add meson install files --- config.in | 4 ++-- meson.build | 54 ++++++++++++++++++++++++++++++++++++++++++++++- meson_options.txt | 3 ++- security.d/00-defaults.in | 18 ++++++++-------- sway/meson.build | 3 ++- 5 files changed, 68 insertions(+), 14 deletions(-) (limited to 'meson.build') diff --git a/config.in b/config.in index b39a39aa..086b66dc 100644 --- a/config.in +++ b/config.in @@ -21,7 +21,7 @@ set $menu dmenu_run ### Output configuration # # Default wallpaper (more resolutions are available in __DATADIR__/backgrounds/sway/) -output * bg __DATADIR__/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill +output * bg @datadir@/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill # # Example configuration: # @@ -194,4 +194,4 @@ bar { } } -include __SYSCONFDIR__/sway/config.d/* +include @sysconfdir@/sway/config.d/* diff --git a/meson.build b/meson.build index ac161987..494f2866 100644 --- a/meson.build +++ b/meson.build @@ -11,6 +11,11 @@ project( cc = meson.get_compiler('c') +is_freebsd = host_machine.system().startswith('freebsd') +datadir = get_option('datadir') +sysconfdir = get_option('sysconfdir') +prefix = get_option('prefix') + jsonc = dependency('json-c', version: '>=0.12.1') pcre = dependency('libpcre') wlroots = dependency('wlroots') @@ -37,7 +42,6 @@ else git_branch = run_command([git.path(), 'rev-parse', '--abbrev-ref', 'HEAD']).stdout().strip() version = '"@0@ (" __DATE__ ", branch \'@1@\')"'.format(git_commit_hash, git_branch) endif - add_project_arguments('-DSWAY_VERSION=@0@'.format(version), language: 'c') sway_inc = include_directories('include') @@ -45,3 +49,51 @@ sway_inc = include_directories('include') subdir('common') subdir('sway') +config = configuration_data() +config.set('sysconfdir', join_paths(prefix, sysconfdir)) +config.set('datadir', join_paths(prefix, datadir)) +config.set('prefix', prefix) + +configure_file( + configuration: config, + input: 'config.in', + output: '@BASENAME@', + install_dir: sysconfdir + '/sway' +) + +if is_freebsd + configure_file( + configuration: config, + input: 'security.d/10-freebsd.in', + output: '@BASENAME@', + install_dir: sysconfdir + '/sway/security.d' + ) +else + configure_file( + configuration: config, + input: 'security.d/00-defaults.in', + output: '@BASENAME@', + install_dir: sysconfdir + '/sway/security.d' + ) +endif + +install_data( + 'sway.desktop', + install_dir: datadir + '/wayland-sessions' +) + +if (get_option('default_wallpaper')) + wallpaper_files = files( + 'assets/Sway_Wallpaper_Blue_768x1024.png', + 'assets/Sway_Wallpaper_Blue_768x1024_Portrait.png', + 'assets/Sway_Wallpaper_Blue_1136x640.png', + 'assets/Sway_Wallpaper_Blue_1136x640_Portrait.png', + 'assets/Sway_Wallpaper_Blue_1366x768.png', + 'assets/Sway_Wallpaper_Blue_1920x1080.png', + 'assets/Sway_Wallpaper_Blue_2048x1536.png', + 'assets/Sway_Wallpaper_Blue_2048x1536_Portrait.png', + ) + wallpaper_install_dir = datadir + '/backgrounds/sway' + + install_data(wallpaper_files, install_dir: wallpaper_install_dir) +endif diff --git a/meson_options.txt b/meson_options.txt index 5015a986..03bc1986 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -1 +1,2 @@ -option('sway_version', type : 'string', description : 'The version string reported in `sway --version`.') +option('sway_version', type : 'string', description: 'The version string reported in `sway --version`.') +option('default_wallpaper', type: 'boolean', value: true, description: 'Install the default wallpaper.') diff --git a/security.d/00-defaults.in b/security.d/00-defaults.in index 05098dea..e4626477 100644 --- a/security.d/00-defaults.in +++ b/security.d/00-defaults.in @@ -6,17 +6,17 @@ # installation. # # DO NOT CHANGE THIS FILE. Override these defaults by writing new files in -# __SYSCONFDIR__/sway/security.d/* +# @sysconfdir@/sway/security.d/* # Configures enabled compositor features for specific programs permit * fullscreen keyboard mouse -permit __PREFIX__/bin/swaylock lock -permit __PREFIX__/bin/swaybg background -permit __PREFIX__/bin/swaygrab screenshot -permit __PREFIX__/bin/swaybar panel +permit @prefix@/bin/swaylock lock +permit @prefix@/bin/swaybg background +permit @prefix@/bin/swaygrab screenshot +permit @prefix@/bin/swaybar panel # Configures enabled IPC features for specific programs -ipc __PREFIX__/bin/swaymsg { +ipc @prefix@/bin/swaymsg { * enabled events { @@ -24,7 +24,7 @@ ipc __PREFIX__/bin/swaymsg { } } -ipc __PREFIX__/bin/swaybar { +ipc @prefix@/bin/swaybar { bar-config enabled outputs enabled workspaces enabled @@ -36,12 +36,12 @@ ipc __PREFIX__/bin/swaybar { } } -ipc __PREFIX__/bin/swaygrab { +ipc @prefix@/bin/swaygrab { outputs enabled tree enabled } -ipc __PREFIX__/bin/swaylock { +ipc @prefix@/bin/swaylock { outputs enabled } diff --git a/sway/meson.build b/sway/meson.build index b02506c8..cf2aa913 100644 --- a/sway/meson.build +++ b/sway/meson.build @@ -26,5 +26,6 @@ executable( sway_sources, include_directories: [sway_inc], dependencies: sway_deps, - link_with: [lib_sway_common] + link_with: [lib_sway_common], + install: true ) -- cgit v1.2.3 From 03182706cffc4e996d352c51b143df805f80a928 Mon Sep 17 00:00:00 2001 From: Tony Crisci Date: Thu, 30 Nov 2017 11:34:44 -0500 Subject: meson build manpages --- meson.build | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'meson.build') diff --git a/meson.build b/meson.build index 494f2866..34122acc 100644 --- a/meson.build +++ b/meson.build @@ -29,6 +29,39 @@ pixman = dependency('pixman-1') libcap = dependency('libcap') math = cc.find_library('m') git = find_program('git', required: false) +a2x = find_program('a2x', required: false) + +if a2x.found() + mandir = get_option('mandir') + man_files = [ + 'sway/sway.1.txt', + 'sway/sway.5.txt', + 'sway/sway-bar.5.txt', + 'sway/sway-input.5.txt', + 'sway/sway-security.7.txt', + 'swaymsg/swaymsg.1.txt', + ] + foreach filename : man_files + topic = filename.split('.')[-3].split('/')[-1] + section = filename.split('.')[-2] + + custom_target( + 'man-@0@-@1@'.format(topic, section), + input: filename, + output: '@BASENAME@', + command: [ + a2x, + '--no-xmllint', + '--doctype', 'manpage', + '--format', 'manpage', + '--destination-dir', meson.current_build_dir(), + '@INPUT@' + ], + install: true, + install_dir: '@0@/man@1@'.format(mandir, section) + ) + endforeach +endif version = get_option('sway_version') if version != '' -- cgit v1.2.3 From 1d702b6376b49c2e115c5b985ca241aedc40a48b Mon Sep 17 00:00:00 2001 From: Tony Crisci Date: Thu, 30 Nov 2017 11:40:49 -0500 Subject: meson build swaymsg --- meson.build | 1 + swaymsg/meson.build | 8 ++++++++ 2 files changed, 9 insertions(+) create mode 100644 swaymsg/meson.build (limited to 'meson.build') diff --git a/meson.build b/meson.build index 34122acc..1c322131 100644 --- a/meson.build +++ b/meson.build @@ -81,6 +81,7 @@ sway_inc = include_directories('include') subdir('common') subdir('sway') +subdir('swaymsg') config = configuration_data() config.set('sysconfdir', join_paths(prefix, sysconfdir)) diff --git a/swaymsg/meson.build b/swaymsg/meson.build new file mode 100644 index 00000000..2d678878 --- /dev/null +++ b/swaymsg/meson.build @@ -0,0 +1,8 @@ +executable( + 'swaymsg', + 'main.c', + include_directories: [sway_inc], + dependencies: [jsonc], + link_with: [lib_sway_common], + install: true +) -- cgit v1.2.3 From fe5c0316096b47d9a9bbede1d35e52e04ad9b40f Mon Sep 17 00:00:00 2001 From: Tony Crisci Date: Thu, 30 Nov 2017 11:51:58 -0500 Subject: meson zsh completions install --- meson.build | 12 ++++++++++++ meson_options.txt | 1 + 2 files changed, 13 insertions(+) (limited to 'meson.build') diff --git a/meson.build b/meson.build index 1c322131..05d92a91 100644 --- a/meson.build +++ b/meson.build @@ -131,3 +131,15 @@ if (get_option('default_wallpaper')) install_data(wallpaper_files, install_dir: wallpaper_install_dir) endif + +if (get_option('zsh_completions')) + zsh_files = files( + 'completions/zsh/_sway', + 'completions/zsh/_swaygrab', + 'completions/zsh/_swaylock', + 'completions/zsh/_swaymsg', + ) + zsh_install_dir = datadir + '/zsh/site-functions' + + install_data(zsh_files, install_dir: zsh_install_dir) +endif diff --git a/meson_options.txt b/meson_options.txt index 03bc1986..541ccf13 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -1,2 +1,3 @@ option('sway_version', type : 'string', description: 'The version string reported in `sway --version`.') option('default_wallpaper', type: 'boolean', value: true, description: 'Install the default wallpaper.') +option('zsh_completions', type: 'boolean', value: true, description: 'Install zsh shell completions.') -- cgit v1.2.3 From 0f7a7f4084487d846100119b13b26a63ffe9b437 Mon Sep 17 00:00:00 2001 From: Tony Crisci Date: Fri, 1 Dec 2017 05:42:12 -0500 Subject: meson dont warn on unused param --- meson.build | 2 ++ 1 file changed, 2 insertions(+) (limited to 'meson.build') diff --git a/meson.build b/meson.build index 05d92a91..695e237e 100644 --- a/meson.build +++ b/meson.build @@ -9,6 +9,8 @@ project( ], ) +add_project_arguments('-Wno-unused-parameter', language: 'c') + cc = meson.get_compiler('c') is_freebsd = host_machine.system().startswith('freebsd') -- cgit v1.2.3