mirror of
https://github.com/labwc/labwc.git
synced 2026-04-12 08:21:13 -04:00
The previous `UseIn` key was deprecated in xdg-desktop-portal 1.17/1.18. It has been superceded by the portals.conf structure so that each desktop can configure the precise desired structure for portals. In addition, support was added to the Desktop Entry Specifications to support a `DesktopNames` key that login managers will use to set XDG_CURRENT_DESKTOP. * [portals.conf Documentation](https://github.com/flatpak/xdg-desktop-portal/blob/main/doc/portals.conf.rst.in) * [Example sway-portals.conf](https://salsa.debian.org/swaywm-team/sway/-/blob/debian/sid/debian/sway-portals.conf) * [Desktop Entry Specifications](https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html) Ref: flatpak/xdg-desktop-portal#955
149 lines
3.5 KiB
Meson
149 lines
3.5 KiB
Meson
project(
|
|
'labwc',
|
|
'c',
|
|
version: '0.7.1',
|
|
license: 'GPL-2.0-only',
|
|
meson_version: '>=0.59.0',
|
|
default_options: [
|
|
'c_std=c11',
|
|
'warning_level=2',
|
|
],
|
|
)
|
|
|
|
add_project_arguments(
|
|
[
|
|
'-DWLR_USE_UNSTABLE',
|
|
],
|
|
language: 'c',
|
|
)
|
|
|
|
cc = meson.get_compiler('c')
|
|
|
|
add_project_arguments(cc.get_supported_arguments([
|
|
'-Wundef',
|
|
'-Wlogical-op',
|
|
'-Wmissing-include-dirs',
|
|
'-Wold-style-definition',
|
|
'-Wpointer-arith',
|
|
'-Winit-self',
|
|
'-Wstrict-prototypes',
|
|
'-Wimplicit-fallthrough=2',
|
|
'-Wendif-labels',
|
|
'-Wstrict-aliasing=2',
|
|
'-Woverflow',
|
|
'-Wmissing-prototypes',
|
|
'-Walloca',
|
|
'-Wunused-macros',
|
|
|
|
'-Wno-unused-parameter',
|
|
]), language: 'c')
|
|
|
|
version='"@0@"'.format(meson.project_version())
|
|
git = find_program('git', native: true, required: false)
|
|
if git.found()
|
|
git_commit = run_command([git, 'describe', '--dirty'], check: false)
|
|
if git_commit.returncode() == 0
|
|
version = '"@0@"'.format(git_commit.stdout().strip())
|
|
endif
|
|
endif
|
|
add_project_arguments('-DLABWC_VERSION=@0@'.format(version), language: 'c')
|
|
|
|
wlroots = dependency(
|
|
'wlroots',
|
|
default_options: ['default_library=static', 'examples=false'],
|
|
version: ['>=0.17.0', '<0.18.0'],
|
|
)
|
|
|
|
wlroots_has_xwayland = wlroots.get_variable('have_xwayland') == 'true'
|
|
|
|
wayland_server = dependency('wayland-server', version: '>=1.19.0')
|
|
wayland_protos = dependency('wayland-protocols')
|
|
xkbcommon = dependency('xkbcommon')
|
|
xcb = dependency('xcb', required: get_option('xwayland'))
|
|
xcb_icccm = dependency('xcb-icccm', required: get_option('xwayland'))
|
|
drm_full = dependency('libdrm')
|
|
drm = drm_full.partial_dependency(compile_args: true, includes: true)
|
|
xml2 = dependency('libxml-2.0')
|
|
glib = dependency('glib-2.0')
|
|
cairo = dependency('cairo')
|
|
pangocairo = dependency('pangocairo')
|
|
input = dependency('libinput', version: '>=1.14')
|
|
pixman = dependency('pixman-1')
|
|
math = cc.find_library('m')
|
|
png = dependency('libpng')
|
|
svg = dependency('librsvg-2.0', version: '>=2.46', required: false)
|
|
|
|
if get_option('xwayland').enabled() and not wlroots_has_xwayland
|
|
error('no wlroots Xwayland support')
|
|
endif
|
|
have_xwayland = xcb.found() and wlroots_has_xwayland
|
|
conf_data = configuration_data()
|
|
conf_data.set10('HAVE_XWAYLAND', have_xwayland)
|
|
|
|
if get_option('svg').disabled()
|
|
have_rsvg = false
|
|
else
|
|
have_rsvg = svg.found()
|
|
endif
|
|
conf_data.set10('HAVE_RSVG', have_rsvg)
|
|
|
|
if get_option('static_analyzer').enabled()
|
|
add_project_arguments(['-fanalyzer'], language: 'c')
|
|
endif
|
|
|
|
msgfmt = find_program('msgfmt', required: get_option('nls'))
|
|
if msgfmt.found()
|
|
source_root = meson.current_source_dir()
|
|
conf_data.set('HAVE_NLS', 1)
|
|
subdir('po')
|
|
else
|
|
conf_data.set('HAVE_NLS', 0)
|
|
endif
|
|
|
|
labwc_inc = include_directories('include')
|
|
|
|
subdir('protocols')
|
|
|
|
labwc_deps = [
|
|
server_protos,
|
|
wayland_server,
|
|
wlroots,
|
|
xkbcommon,
|
|
xcb_icccm,
|
|
xml2,
|
|
glib,
|
|
cairo,
|
|
drm,
|
|
pangocairo,
|
|
input,
|
|
pixman,
|
|
math,
|
|
png,
|
|
]
|
|
if have_rsvg
|
|
labwc_deps += [
|
|
svg,
|
|
]
|
|
endif
|
|
|
|
subdir('include')
|
|
subdir('src')
|
|
subdir('docs')
|
|
|
|
executable(
|
|
meson.project_name(),
|
|
labwc_sources,
|
|
include_directories: [labwc_inc],
|
|
dependencies: labwc_deps,
|
|
install: true,
|
|
)
|
|
|
|
install_data('data/labwc.desktop', install_dir: get_option('datadir') / 'wayland-sessions')
|
|
|
|
install_data('data/labwc-portals.conf', install_dir: get_option('datadir') / 'xdg-desktop-portal')
|
|
|
|
icons = ['labwc-symbolic.svg', 'labwc.svg']
|
|
foreach icon : icons
|
|
icon_path = join_paths('data', icon)
|
|
install_data(icon_path, install_dir: get_option('datadir') / 'icons/hicolor/scalable/apps')
|
|
endforeach
|