#!/usr/bin/env python import sys from waflib import Logs def configure(conf): if not sys.platform.startswith('linux'): Logs.warn('libquic requires linux') conf.SET_TARGET_TYPE('quic', 'EMPTY') return if not conf.CONFIG_GET('HAVE_GNUTLS_CB_TLS_SERVER_END_POINT'): Logs.warn('libquic requires gnutls 3.7.2') conf.SET_TARGET_TYPE('quic', 'EMPTY') return if not conf.CHECK_HEADERS('linux/tls.h'): Logs.warn('libquic requires linux/tls.h') conf.SET_TARGET_TYPE('quic', 'EMPTY') return if not conf.CHECK_DECLS('TLS_CIPHER_AES_GCM_256', headers='linux/tls.h'): conf.DEFINE('TLS_CIPHER_AES_GCM_256', 52) if not conf.CHECK_DECLS('TLS_CIPHER_AES_CCM_128', headers='linux/tls.h'): conf.DEFINE('TLS_CIPHER_AES_CCM_128', 53) if not conf.CHECK_DECLS('TLS_CIPHER_CHACHA20_POLY1305', headers='linux/tls.h'): conf.DEFINE('TLS_CIPHER_CHACHA20_POLY1305', 54) if conf.CHECK_LIBQUIC(): conf.CHECK_HEADERS('netinet/quic.h', lib='quic') conf.CHECK_LIB('quic', shlib=True) conf.CHECK_FUNCS_IN('quic_handshake_step', 'quic', headers='netinet/quic.h') conf.DEFINE('HAVE_LIBQUIC', '1') conf.define('USING_SYSTEM_LIBQUIC', 1) return conf.ADD_NAMED_CFLAGS('LIBQUIC_UNPICKY_CFLAGS', '-Wno-cast-qual', testflags=True) conf.ADD_NAMED_CFLAGS('LIBQUIC_UNPICKY_CFLAGS', '-Wno-error=cast-qual', testflags=True) conf.ADD_NAMED_CFLAGS('LIBQUIC_UNPICKY_CFLAGS', '-Wno-error=format-nonliteral', testflags=True) conf.DEFINE('HAVE_LIBQUIC', '1') return def build(bld): if bld.CONFIG_SET('USING_SYSTEM_LIBQUIC'): return bld.SAMBA_LIBRARY('quic', source=''' libquic_handshake_wrapper.c ''', includes='libquic modules/include/uapi', deps='replace', public_deps='gnutls', cflags_end=bld.env.LIBQUIC_UNPICKY_CFLAGS, private_library=True, enabled=bld.CONFIG_SET('HAVE_LIBQUIC')) bld.SAMBA_SUBSYSTEM('libquic', source='', public_deps='quic', enabled=bld.CONFIG_SET('HAVE_LIBQUIC'))