Files
2026-07-26 21:19:04 +02:00

49 lines
1.4 KiB
Meson

project('att_lock', 'c',
version : '0.1.0',
license : 'MIT',
default_options : ['c_std=c11', 'warning_level=2'])
add_project_arguments('-D_GNU_SOURCE', language : 'c')
cc = meson.get_compiler('c')
wayland_client = dependency('wayland-client')
cairo = dependency('cairo')
xkbcommon = dependency('xkbcommon')
# libxcrypt ships a pkg-config file (libcrypt); fall back to a bare library lookup.
crypt = dependency('libcrypt', required : false)
if not crypt.found()
crypt = cc.find_library('crypt', has_headers : 'crypt.h')
endif
pam = cc.find_library('pam', has_headers : 'security/pam_appl.h')
wayland_scanner = find_program('wayland-scanner')
protocol_xml = 'protocols/ext-session-lock-v1.xml'
session_lock_client_header = custom_target('ext-session-lock-client-header',
input : protocol_xml,
output : 'ext-session-lock-v1-client-protocol.h',
command : [wayland_scanner, 'client-header', '@INPUT@', '@OUTPUT@'])
session_lock_private_code = custom_target('ext-session-lock-private-code',
input : protocol_xml,
output : 'ext-session-lock-v1-protocol.c',
command : [wayland_scanner, 'private-code', '@INPUT@', '@OUTPUT@'])
sources = files(
'src/main.c',
'src/pattern.c',
'src/render.c',
'src/auth.c',
)
executable('att_lock',
sources,
session_lock_client_header,
session_lock_private_code,
dependencies : [wayland_client, cairo, xkbcommon, crypt, pam],
install : true)