Alexander Afanasyev | 97e4cac | 2014-03-28 10:55:11 -0700 | [diff] [blame] | 1 | # -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*- |
| 2 | # |
| 3 | # Copyright (c) 2014, Regents of the University of California |
| 4 | # |
| 5 | # GPL 3.0 license, see the COPYING.md file for more information |
Alexander Afanasyev | c78b141 | 2014-02-19 14:08:26 -0800 | [diff] [blame] | 6 | |
Alexander Afanasyev | 885a85b | 2014-04-12 21:01:13 -0700 | [diff] [blame] | 7 | from waflib import Options |
| 8 | |
Alexander Afanasyev | c78b141 | 2014-02-19 14:08:26 -0800 | [diff] [blame] | 9 | BOOST_ASIO_HAS_LOCAL_SOCKETS_CHECK = ''' |
Alexander Afanasyev | c78b141 | 2014-02-19 14:08:26 -0800 | [diff] [blame] | 10 | #include <boost/asio.hpp> |
Davide Pesavento | a4e71b4 | 2014-05-05 19:57:12 +0200 | [diff] [blame] | 11 | #ifndef BOOST_ASIO_HAS_LOCAL_SOCKETS |
Alexander Afanasyev | d0b4491 | 2014-02-27 14:44:59 -0800 | [diff] [blame] | 12 | #error "Unix sockets are not available on this platform" |
Alexander Afanasyev | c78b141 | 2014-02-19 14:08:26 -0800 | [diff] [blame] | 13 | #endif |
Alexander Afanasyev | c78b141 | 2014-02-19 14:08:26 -0800 | [diff] [blame] | 14 | ''' |
| 15 | |
Alexander Afanasyev | 885a85b | 2014-04-12 21:01:13 -0700 | [diff] [blame] | 16 | def addUnixOptions(self, opt): |
Alexander Afanasyev | d0b4491 | 2014-02-27 14:44:59 -0800 | [diff] [blame] | 17 | opt.add_option('--force-unix-socket', action='store_true', default=False, |
Davide Pesavento | a4e71b4 | 2014-05-05 19:57:12 +0200 | [diff] [blame] | 18 | dest='force_unix_socket', help='''Forcefully enable Unix sockets support''') |
Alexander Afanasyev | 885a85b | 2014-04-12 21:01:13 -0700 | [diff] [blame] | 19 | setattr(Options.OptionsContext, "addUnixOptions", addUnixOptions) |
Alexander Afanasyev | d0b4491 | 2014-02-27 14:44:59 -0800 | [diff] [blame] | 20 | |
Alexander Afanasyev | c78b141 | 2014-02-19 14:08:26 -0800 | [diff] [blame] | 21 | def configure(conf): |
Alexander Afanasyev | d0b4491 | 2014-02-27 14:44:59 -0800 | [diff] [blame] | 22 | def boost_asio_has_local_sockets(): |
Davide Pesavento | a4e71b4 | 2014-05-05 19:57:12 +0200 | [diff] [blame] | 23 | return conf.check_cxx(msg='Checking if Unix sockets are supported', |
Alexander Afanasyev | d0b4491 | 2014-02-27 14:44:59 -0800 | [diff] [blame] | 24 | fragment=BOOST_ASIO_HAS_LOCAL_SOCKETS_CHECK, |
Davide Pesavento | a4e71b4 | 2014-05-05 19:57:12 +0200 | [diff] [blame] | 25 | features='cxx', use='BOOST', mandatory=False) |
Alexander Afanasyev | d0b4491 | 2014-02-27 14:44:59 -0800 | [diff] [blame] | 26 | |
| 27 | if conf.options.force_unix_socket or boost_asio_has_local_sockets(): |
Alexander Afanasyev | c78b141 | 2014-02-19 14:08:26 -0800 | [diff] [blame] | 28 | conf.define('HAVE_UNIX_SOCKETS', 1) |
| 29 | conf.env['HAVE_UNIX_SOCKETS'] = True |