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)