| # -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*- |
| # |
| # Copyright (c) 2014, Regents of the University of California |
| # |
| # GPL 3.0 license, see the COPYING.md file for more information |
| |
| from waflib import Options |
| |
| BOOST_ASIO_HAS_LOCAL_SOCKETS_CHECK = ''' |
| #include <boost/asio.hpp> |
| #ifndef BOOST_ASIO_HAS_LOCAL_SOCKETS |
| #error "Unix sockets are not available on this platform" |
| #endif |
| ''' |
| |
| def addUnixOptions(self, opt): |
| opt.add_option('--force-unix-socket', action='store_true', default=False, |
| dest='force_unix_socket', help='''Forcefully enable Unix sockets support''') |
| setattr(Options.OptionsContext, "addUnixOptions", addUnixOptions) |
| |
| def configure(conf): |
| def boost_asio_has_local_sockets(): |
| return conf.check_cxx(msg='Checking if Unix sockets are supported', |
| fragment=BOOST_ASIO_HAS_LOCAL_SOCKETS_CHECK, |
| features='cxx', use='BOOST', mandatory=False) |
| |
| if conf.options.force_unix_socket or boost_asio_has_local_sockets(): |
| conf.define('HAVE_UNIX_SOCKETS', 1) |
| conf.env['HAVE_UNIX_SOCKETS'] = True |