summaryrefslogtreecommitdiff
path: root/os/meson.build
blob: 0e41f9c0208c58ce7536d26f4893b75d487f6d85 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
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
srcs_libc = []
if not conf_data.get('HAVE_REALLOCARRAY')
    srcs_libc += 'reallocarray.c'
endif
if not conf_data.get('HAVE_STRCASECMP')
    srcs_libc += 'strcasecmp.c'
endif
if not conf_data.get('HAVE_STRCASESTR')
    srcs_libc += 'strcasestr.c'
endif
if not conf_data.get('HAVE_STRLCAT')
    srcs_libc += 'strlcat.c'
endif
if not conf_data.get('HAVE_STRLCPY')
    srcs_libc += 'strlcpy.c'
endif
if not conf_data.get('HAVE_STRNDUP')
    srcs_libc += 'strndup.c'
endif
if not conf_data.get('HAVE_TIMINGSAFE_MEMCMP')
    srcs_libc += 'timingsafe_memcmp.c'
endif
if not conf_data.get('HAVE_POLL')
    srcs_os += 'xserver_poll.c'
endif

if conf_data.get('BUSFAULT')
    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

    srcs_os += 'rpcauth.c'
endif

libxlibc = []
if srcs_libc.length() > 0
    libxlibc = static_library('libxlibc',
        srcs_libc,
        include_directories: inc,
        dependencies: [
            xproto_dep,
        ],
    )
endif

libxserver_os = static_library('libxserver_os',
    srcs_os,
    include_directories: inc,
    dependencies: [
        common_dep,
        dl_dep,
        sha1_dep,
        rpc_dep,
        dependency('xau')
    ],
    link_with: libxlibc,
)