diff options
author | Dylan Baker <dylan@pnwbakers.com> | 2023-06-20 15:46:23 -0700 |
---|---|---|
committer | Dylan Baker <dylan@pnwbakers.com> | 2023-07-13 15:26:17 -0700 |
commit | 68e74d37b99f56bbd1a5f2fb8cb4ad6116f27bd3 (patch) | |
tree | aab43287eff02394981c905bfef7b30f7d8fdb60 /meson.build | |
parent | df1bf4fe528a5a9eef420f78efb225e4696ac467 (diff) |
add Meson build system
This is, I think, equal to the autotools build-system in every practical
way. The man pages have hardcoded numbers. I think this is okay, as all
modern operating systems seem to use the same man page numbering now.
I've also chosen to not generate a config.h file with Meson. This makes
using libXau as a subproject safer, since we don't have to worry about
conflicting config.h files, plus there are only a couple of declarations
that are actually used. This also saves some configure time in writing
out an additional file.
Diffstat (limited to 'meson.build')
-rw-r--r-- | meson.build | 96 |
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 |