1ae545d91Smrg# SPDX-License-Identifier: MIT 2ae545d91Smrg# Copyright © 2023 Intel Corporation 3ae545d91Smrg 4ae545d91Smrgproject( 5ae545d91Smrg 'libXau', 6ae545d91Smrg 'c', 7ae545d91Smrg version : '1.0.12', 8ae545d91Smrg license : 'MIT', 9ae545d91Smrg meson_version : '>= 0.60.0', 10ae545d91Smrg) 11ae545d91Smrg 12ae545d91Smrgadd_project_arguments( 13ae545d91Smrg '-D_GNU_SOURCE', 14ae545d91Smrg '-D__EXTENSIONS__', 15ae545d91Smrg language : 'c' 16ae545d91Smrg) 17ae545d91Smrg 18ae545d91Smrgcc = meson.get_compiler('c') 19ae545d91Smrg 20ae545d91Smrglib_args = [] 21ae545d91Smrg 22ae545d91Smrgforeach f : ['explicit_bzero', 'explicit_memset', 'pathconf'] 23ae545d91Smrg if cc.has_function(f) 24ae545d91Smrg lib_args += '-DHAVE_@0@'.format(f.to_upper()) 25ae545d91Smrg endif 26ae545d91Smrgendforeach 27ae545d91Smrg 28ae545d91Smrgif cc.has_header('unistd.h') 29ae545d91Smrg lib_args += '-DHAVE_UNISTD_H' 30ae545d91Smrgendif 31ae545d91Smrg 32ae545d91Smrgdep_xproto = dependency('xproto') 33ae545d91Smrg 34ae545d91Smrgif get_option('xthreads') 35ae545d91Smrg lib_args += '-DXTHREADS' 36ae545d91Smrg # This define is not in libXau specific code, but is part of the xproto header 37ae545d91Smrg # This may be only required by HP-UX. 38ae545d91Smrg if cc.has_function('gethostbyname_r') or \ 39ae545d91Smrg cc.has_function('gethostbyname_r', dependencies : cc.find_library('nls')) 40ae545d91Smrg lib_args += '-DXUSE_MTSAFE_API=1' 41ae545d91Smrg endif 42ae545d91Smrg if host_machine.system() == 'sunos' 43ae545d91Smrg lib_args += ['-D_REENETRANT', '-D_POSIX_PTHREAD_SEMANTICS'] 44ae545d91Smrg endif 45ae545d91Smrgendif 46ae545d91Smrg 47ae545d91Smrglib = library( 48ae545d91Smrg 'Xau', 49ae545d91Smrg [ 50ae545d91Smrg 'AuDispose.c', 51ae545d91Smrg 'AuFileName.c', 52ae545d91Smrg 'AuGetAddr.c', 53ae545d91Smrg 'AuGetBest.c', 54ae545d91Smrg 'AuLock.c', 55ae545d91Smrg 'AuRead.c', 56ae545d91Smrg 'AuUnlock.c', 57ae545d91Smrg 'AuWrite.c', 58ae545d91Smrg ], 59ae545d91Smrg c_args : lib_args, 60ae545d91Smrg include_directories : 'include', 61ae545d91Smrg dependencies : dep_xproto, 62ae545d91Smrg version : '6.0.0', 63ae545d91Smrg install : true, 64ae545d91Smrg) 65ae545d91Smrg 66ae545d91Smrgtest( 67ae545d91Smrg 'autest', 68ae545d91Smrg executable( 69ae545d91Smrg 'autest', 70ae545d91Smrg 'Autest.c', 71ae545d91Smrg link_with : lib, 72ae545d91Smrg include_directories : 'include', 73ae545d91Smrg dependencies : dep_xproto, 74ae545d91Smrg ) 75ae545d91Smrg) 76ae545d91Smrg 77ae545d91Smrglibxau = declare_dependency( 78ae545d91Smrg link_with : lib, 79ae545d91Smrg include_directories : 'include', 80ae545d91Smrg) 81ae545d91Smrg 82ae545d91Smrgmeson.override_dependency('xau', libxau) 83ae545d91Smrg 84ae545d91Smrginstall_headers( 85ae545d91Smrg 'include/X11/Xauth.h', 86ae545d91Smrg subdir : 'X11', 87ae545d91Smrg) 88ae545d91Smrg 89ae545d91Smrgpkg = import('pkgconfig') 90ae545d91Smrgpkg.generate( 91ae545d91Smrg lib, 92ae545d91Smrg description : 'X authorization file management library', 93ae545d91Smrg filebase : 'xau', 94ae545d91Smrg requires : 'xproto', 95ae545d91Smrg) 96ae545d91Smrg 97ae545d91Smrgsubdir('man') 98