xserver-multidpi/os/meson.build
Povilas Kanapickas 68c2cfadd6 meson: Make sure defines are either set to 1 or not defined
This will make the behavior of meson consistent with autotools. The
configuration macros are exposed to public headers so any inconsistency
is likely to break code for anyone who's not careful to use #ifdef
instead of #if.

Signed-off-by: Povilas Kanapickas <povilas@radix.lt>
2021-04-09 11:18:54 +00:00

109 lines
2.4 KiB
Meson

srcs_os = [
'WaitFor.c',
'access.c',
'auth.c',
'backtrace.c',
'client.c',
'connection.c',
'inputthread.c',
'io.c',
'mitauth.c',
'oscolor.c',
'osinit.c',
'ospoll.c',
'utils.c',
'xdmauth.c',
'xsha1.c',
'xstrans.c',
'xprintf.c',
'log.c',
]
# Wrapper code for missing C library functions. Note that conf_data contains either '1' or false.
srcs_libc = []
if conf_data.get('HAVE_REALLOCARRAY') == false
srcs_libc += 'reallocarray.c'
endif
if conf_data.get('HAVE_STRCASECMP') == false
srcs_libc += 'strcasecmp.c'
endif
if conf_data.get('HAVE_STRCASESTR') == false
srcs_libc += 'strcasestr.c'
endif
if conf_data.get('HAVE_STRLCAT') == false
srcs_libc += 'strlcat.c'
endif
if conf_data.get('HAVE_STRLCPY') == false
srcs_libc += 'strlcpy.c'
endif
if conf_data.get('HAVE_STRNDUP') == false
srcs_libc += 'strndup.c'
endif
if conf_data.get('HAVE_TIMINGSAFE_MEMCMP') == false
srcs_libc += 'timingsafe_memcmp.c'
endif
if conf_data.get('HAVE_POLL') == false
srcs_os += 'xserver_poll.c'
endif
if conf_data.get('BUSFAULT') != false
srcs_os += 'busfault.c'
endif
if get_option('xdmcp')
srcs_os += 'xdmcp.c'
endif
rpc_dep = []
if get_option('secure-rpc')
# prefer libtirpc (if available), otherwise ensure RPC functions are
# provided by libc.
rpc_dep = dependency('libtirpc', required: false)
if not (rpc_dep.found() or cc.has_header('rpc/rpc.h'))
error('secure-rpc requested, but neither libtirpc or libc RPC support were found')
endif
# XXX: also check if RPC library provides xdr_opaque_auth, authdes_(sec)create ???
srcs_os += 'rpcauth.c'
endif
os_dep = []
os_c_args = []
if get_option('xres')
# Only the XRes extension cares about the client ID.
os_c_args += '-DCLIENTIDS'
if host_machine.system() == 'openbsd'
os_dep += cc.find_library('kvm')
endif
endif
libxlibc = []
if srcs_libc.length() > 0
libxlibc = static_library('libxlibc',
srcs_libc,
include_directories: inc,
dependencies: [
xproto_dep,
],
)
endif
if enable_input_thread
os_dep += cc.find_library('pthread')
endif
libxserver_os = static_library('libxserver_os',
srcs_os,
include_directories: inc,
dependencies: [
dtrace_dep,
common_dep,
dl_dep,
sha1_dep,
rpc_dep,
os_dep,
dependency('xau')
],
c_args: os_c_args,
link_with: libxlibc,
)