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