2018-08-10 16:37:03 +02:00
|
|
|
project(
|
|
|
|
'waybar', 'cpp', 'c',
|
2019-04-04 12:01:00 +02:00
|
|
|
version: '0.5.1',
|
2018-08-10 16:37:03 +02:00
|
|
|
license: 'MIT',
|
2018-08-30 11:30:20 +02:00
|
|
|
default_options : [
|
|
|
|
'cpp_std=c++17',
|
2018-11-08 09:57:24 +01:00
|
|
|
'buildtype=release',
|
|
|
|
'default_library=static'
|
2018-08-30 11:30:20 +02:00
|
|
|
],
|
2018-08-10 16:37:03 +02:00
|
|
|
)
|
2018-08-08 23:54:58 +02:00
|
|
|
|
2018-12-26 11:13:36 +01:00
|
|
|
cpp_args = []
|
2018-08-19 13:41:22 +02:00
|
|
|
cpp_link_args = []
|
2018-08-08 23:54:58 +02:00
|
|
|
|
|
|
|
if false # libc++
|
|
|
|
cpp_args += ['-stdlib=libc++']
|
|
|
|
cpp_link_args += ['-stdlib=libc++', '-lc++abi']
|
|
|
|
|
|
|
|
cpp_link_args += ['-lc++fs']
|
|
|
|
else
|
|
|
|
cpp_link_args += ['-lstdc++fs']
|
|
|
|
endif
|
|
|
|
|
2018-11-08 09:57:24 +01:00
|
|
|
compiler = meson.get_compiler('cpp')
|
2018-12-26 11:13:36 +01:00
|
|
|
git = find_program('git', required: false)
|
|
|
|
|
|
|
|
if not git.found()
|
|
|
|
add_project_arguments('-DVERSION="@0@"'.format(meson.project_version()), language: 'cpp')
|
|
|
|
else
|
|
|
|
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)
|
|
|
|
add_project_arguments('-DVERSION=@0@'.format(version), language: 'cpp')
|
|
|
|
endif
|
2018-11-08 09:57:24 +01:00
|
|
|
|
|
|
|
if not compiler.has_header('filesystem')
|
|
|
|
add_project_arguments('-DFILESYSTEM_EXPERIMENTAL', language: 'cpp')
|
|
|
|
endif
|
|
|
|
|
2018-08-08 23:54:58 +02:00
|
|
|
add_global_arguments(cpp_args, language : 'cpp')
|
|
|
|
add_global_link_arguments(cpp_link_args, language : 'cpp')
|
|
|
|
|
|
|
|
thread_dep = dependency('threads')
|
|
|
|
libinput = dependency('libinput')
|
2018-11-08 09:57:24 +01:00
|
|
|
fmt = dependency('fmt', version : ['>=5.2.1'], fallback : ['fmt', 'fmt_dep'])
|
2018-08-08 23:54:58 +02:00
|
|
|
wayland_client = dependency('wayland-client')
|
|
|
|
wayland_cursor = dependency('wayland-cursor')
|
|
|
|
wayland_protos = dependency('wayland-protocols')
|
|
|
|
wlroots = dependency('wlroots', fallback: ['wlroots', 'wlroots'])
|
|
|
|
gtkmm = dependency('gtkmm-3.0')
|
2018-10-25 11:47:03 +02:00
|
|
|
dbusmenu_gtk = dependency('dbusmenu-gtk3-0.4', required: get_option('dbusmenu-gtk'))
|
2018-10-27 08:19:58 +02:00
|
|
|
giounix = dependency('gio-unix-2.0', required: get_option('dbusmenu-gtk'))
|
2018-08-08 23:54:58 +02:00
|
|
|
jsoncpp = dependency('jsoncpp')
|
|
|
|
sigcpp = dependency('sigc++-2.0')
|
2018-10-21 11:58:35 +02:00
|
|
|
libnl = dependency('libnl-3.0', required: get_option('libnl'))
|
|
|
|
libnlgen = dependency('libnl-genl-3.0', required: get_option('libnl'))
|
|
|
|
libpulse = dependency('libpulse', required: get_option('pulseaudio'))
|
2019-02-19 05:11:18 +01:00
|
|
|
libudev = dependency('libudev', required: get_option('libudev'))
|
2018-08-08 23:54:58 +02:00
|
|
|
|
2018-08-20 17:20:02 +02:00
|
|
|
src_files = files(
|
|
|
|
'src/factory.cpp',
|
|
|
|
'src/ALabel.cpp',
|
|
|
|
'src/modules/memory.cpp',
|
|
|
|
'src/modules/battery.cpp',
|
|
|
|
'src/modules/clock.cpp',
|
|
|
|
'src/modules/custom.cpp',
|
|
|
|
'src/modules/cpu.cpp',
|
2019-02-17 15:27:54 +01:00
|
|
|
'src/modules/idle_inhibitor.cpp',
|
2019-03-13 13:18:08 +01:00
|
|
|
'src/modules/temperature.cpp',
|
2018-08-20 17:20:02 +02:00
|
|
|
'src/main.cpp',
|
|
|
|
'src/bar.cpp',
|
|
|
|
'src/client.cpp'
|
|
|
|
)
|
2018-08-08 23:54:58 +02:00
|
|
|
|
2019-03-30 09:15:51 +01:00
|
|
|
if true # find_program('sway', required : false).found()
|
2018-08-20 17:20:02 +02:00
|
|
|
add_project_arguments('-DHAVE_SWAY', language: 'cpp')
|
|
|
|
src_files += [
|
|
|
|
'src/modules/sway/ipc/client.cpp',
|
2018-10-30 13:39:30 +01:00
|
|
|
'src/modules/sway/mode.cpp',
|
2018-08-20 17:20:02 +02:00
|
|
|
'src/modules/sway/window.cpp',
|
|
|
|
'src/modules/sway/workspaces.cpp'
|
|
|
|
]
|
|
|
|
endif
|
|
|
|
|
|
|
|
if libnl.found() and libnlgen.found()
|
|
|
|
add_project_arguments('-DHAVE_LIBNL', language: 'cpp')
|
|
|
|
src_files += 'src/modules/network.cpp'
|
|
|
|
endif
|
|
|
|
|
|
|
|
if libpulse.found()
|
|
|
|
add_project_arguments('-DHAVE_LIBPULSE', language: 'cpp')
|
|
|
|
src_files += 'src/modules/pulseaudio.cpp'
|
|
|
|
endif
|
|
|
|
|
2018-10-25 11:47:03 +02:00
|
|
|
if dbusmenu_gtk.found()
|
|
|
|
add_project_arguments('-DHAVE_DBUSMENU', language: 'cpp')
|
|
|
|
src_files += files(
|
|
|
|
'src/modules/sni/tray.cpp',
|
2018-11-22 15:47:23 +01:00
|
|
|
'src/modules/sni/watcher.cpp',
|
|
|
|
'src/modules/sni/host.cpp',
|
|
|
|
'src/modules/sni/item.cpp'
|
2018-10-25 11:47:03 +02:00
|
|
|
)
|
|
|
|
endif
|
|
|
|
|
2019-02-19 05:11:18 +01:00
|
|
|
if libudev.found()
|
|
|
|
add_project_arguments('-DHAVE_LIBUDEV', language: 'cpp')
|
|
|
|
src_files += 'src/modules/backlight.cpp'
|
|
|
|
endif
|
|
|
|
|
2018-08-20 17:20:02 +02:00
|
|
|
subdir('protocol')
|
2018-08-16 14:29:41 +02:00
|
|
|
|
2018-08-08 23:54:58 +02:00
|
|
|
executable(
|
|
|
|
'waybar',
|
2018-08-16 14:29:41 +02:00
|
|
|
src_files,
|
2018-08-08 23:54:58 +02:00
|
|
|
dependencies: [
|
|
|
|
thread_dep,
|
|
|
|
wlroots,
|
|
|
|
client_protos,
|
|
|
|
wayland_client,
|
|
|
|
fmt,
|
|
|
|
sigcpp,
|
|
|
|
jsoncpp,
|
|
|
|
libinput,
|
|
|
|
wayland_cursor,
|
|
|
|
gtkmm,
|
2018-10-04 18:03:01 +02:00
|
|
|
dbusmenu_gtk,
|
2018-10-27 08:19:58 +02:00
|
|
|
giounix,
|
2018-08-09 16:38:24 +02:00
|
|
|
libnl,
|
|
|
|
libnlgen,
|
2019-02-10 10:35:19 +01:00
|
|
|
libpulse,
|
|
|
|
libudev
|
2018-08-08 23:54:58 +02:00
|
|
|
],
|
|
|
|
include_directories: [include_directories('include')],
|
|
|
|
install: true,
|
|
|
|
)
|
2018-08-09 17:02:30 +02:00
|
|
|
|
|
|
|
install_data(
|
|
|
|
'./resources/config',
|
|
|
|
'./resources/style.css',
|
2018-10-27 08:20:18 +02:00
|
|
|
install_dir: join_paths(get_option('out'), 'etc/xdg/waybar')
|
2018-08-09 17:02:30 +02:00
|
|
|
)
|
2018-08-16 14:29:41 +02:00
|
|
|
|
|
|
|
clangtidy = find_program('clang-tidy', required: false)
|
|
|
|
|
|
|
|
if clangtidy.found()
|
|
|
|
run_target(
|
|
|
|
'tidy',
|
|
|
|
command: [
|
|
|
|
clangtidy,
|
|
|
|
'-checks=*,-fuchsia-default-arguments',
|
|
|
|
'-p', meson.build_root()
|
|
|
|
] + src_files)
|
|
|
|
endif
|