summaryrefslogtreecommitdiff
path: root/meson.build
diff options
context:
space:
mode:
Diffstat (limited to 'meson.build')
-rw-r--r--meson.build96
1 files changed, 96 insertions, 0 deletions
diff --git a/meson.build b/meson.build
new file mode 100644
index 0000000..6ca975a
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,96 @@
+# SPDX-License-Identifier: MIT
+# Copyright © 2023 Intel Corporation
+
+project(
+ 'libXau',
+ 'c',
+ version : '1.0.11',
+ license : 'MIT',
+ meson_version : '>= 0.60.0',
+)
+
+add_project_arguments(
+ '-D_GNU_SOURCE',
+ '-D__EXTENSIONS__',
+ language : 'c'
+)
+
+cc = meson.get_compiler('c')
+
+lib_args = []
+
+foreach f : ['explicit_bzero', 'pathconf']
+ if cc.has_function(f)
+ lib_args += '-DHAVE_@0@'.format(f.to_upper())
+ endif
+endforeach
+
+if cc.has_header('unistd.h')
+ lib_args += '-DHAVE_UNISTD_H'
+endif
+
+dep_xproto = dependency('xproto')
+
+if get_option('xthreads')
+ lib_args += '-DXTHREADS'
+ # This define is not in libXau specific code, but is part of the xproto header
+ # This may be only required by HP-UX.
+ if cc.has_function('gethostbyname_r') or \
+ cc.has_function('gethostbyname_r', dependencies : cc.find_library('nls'))
+ lib_args += '-DXUSE_MTSAFE_API=1'
+ endif
+ if host_machine.system() == 'sunos'
+ lib_args += ['-D_REENETRANT', '-D_POSIX_PTHREAD_SEMANTICS']
+ endif
+endif
+
+lib = library(
+ 'Xau',
+ [
+ 'AuDispose.c',
+ 'AuFileName.c',
+ 'AuGetAddr.c',
+ 'AuGetBest.c',
+ 'AuLock.c',
+ 'AuRead.c',
+ 'AuUnlock.c',
+ 'AuWrite.c',
+ ],
+ c_args : lib_args,
+ include_directories : 'include',
+ dependencies : dep_xproto,
+ version : '6.0.0',
+ install : true,
+)
+
+test(
+ 'autest',
+ executable(
+ 'autest',
+ 'Autest.c',
+ link_with : lib,
+ include_directories : 'include',
+ )
+)
+
+libxau = declare_dependency(
+ link_with : lib,
+ include_directories : 'include',
+)
+
+meson.override_dependency('xau', libxau)
+
+install_headers(
+ 'include/X11/Xauth.h',
+ subdir : 'X11',
+)
+
+pkg = import('pkgconfig')
+pkg.generate(
+ lib,
+ description : 'X authorization file management library',
+ filebase : 'xau',
+ requires : 'xproto',
+)
+
+subdir('man') \ No newline at end of file