summaryrefslogtreecommitdiff
path: root/xserver/os
diff options
context:
space:
mode:
authorMatthieu Herrb <matthieu@cvs.openbsd.org>2023-01-22 09:21:12 +0000
committerMatthieu Herrb <matthieu@cvs.openbsd.org>2023-01-22 09:21:12 +0000
commit5137be12226ec726cde8f1b16f38c9d0f63c8281 (patch)
tree2fa203cf313cd57f13dba789aae25c5cdf0aaf9b /xserver/os
parent2ca49aa841311a3b1769ec80cd148c2b7d1c7501 (diff)
Add back the meson build system to xserver.
Not having those file only create noise when merging upstream releases.
Diffstat (limited to 'xserver/os')
-rw-r--r--xserver/os/meson.build108
1 files changed, 108 insertions, 0 deletions
diff --git a/xserver/os/meson.build b/xserver/os/meson.build
new file mode 100644
index 000000000..ab28fc4ed
--- /dev/null
+++ b/xserver/os/meson.build
@@ -0,0 +1,108 @@
+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').to_int() == 0
+ srcs_libc += 'reallocarray.c'
+endif
+if conf_data.get('HAVE_STRCASECMP').to_int() == 0
+ srcs_libc += 'strcasecmp.c'
+endif
+if conf_data.get('HAVE_STRCASESTR').to_int() == 0
+ srcs_libc += 'strcasestr.c'
+endif
+if conf_data.get('HAVE_STRLCAT').to_int() == 0
+ srcs_libc += 'strlcat.c'
+endif
+if conf_data.get('HAVE_STRLCPY').to_int() == 0
+ srcs_libc += 'strlcpy.c'
+endif
+if conf_data.get('HAVE_STRNDUP').to_int() == 0
+ srcs_libc += 'strndup.c'
+endif
+if conf_data.get('HAVE_TIMINGSAFE_MEMCMP').to_int() == 0
+ srcs_libc += 'timingsafe_memcmp.c'
+endif
+if conf_data.get('HAVE_POLL').to_int() == 0
+ srcs_os += 'xserver_poll.c'
+endif
+
+if conf_data.get('BUSFAULT').to_int() != 0
+ 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,
+)