build: align minimum build dependencies with ndn-cxx
* Recommend boost >= 1.65.1 and gcc >= 7.4.0
* Require clang >= 4.0, or Xcode >= 9.0 on macOS
* Silence an ABI-related diagnostic message from gcc on armv7
* Fix redundant-tags warning with gcc 10
* Add CentOS-specific instructions to docs/INSTALL.rst
* Add Xcode 11.5 to Travis CI
Refs: #5087, #5106
Change-Id: I70746729a132ecb07d4788934385bb403039dba9
diff --git a/wscript b/wscript
index a7e4906..003fc6c 100644
--- a/wscript
+++ b/wscript
@@ -1,6 +1,6 @@
# -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
"""
-Copyright (c) 2014-2019, Regents of the University of California,
+Copyright (c) 2014-2020, Regents of the University of California,
Arizona Board of Regents,
Colorado State University,
University Pierre & Marie Curie, Sorbonne University,
@@ -34,27 +34,27 @@
def options(opt):
opt.load(['compiler_cxx', 'gnu_dirs'])
- opt.load(['default-compiler-flags', 'compiler-features',
+ opt.load(['default-compiler-flags',
'coverage', 'pch', 'sanitizers', 'boost',
'dependency-checker', 'unix-socket', 'websocket',
'doxygen', 'sphinx_build'],
tooldir=['.waf-tools'])
- nfdopt = opt.add_option_group('NFD Options')
+ optgrp = opt.add_option_group('NFD Options')
- opt.addUnixOptions(nfdopt)
- opt.addDependencyOptions(nfdopt, 'libresolv')
- opt.addDependencyOptions(nfdopt, 'librt')
- opt.addDependencyOptions(nfdopt, 'libpcap')
- nfdopt.add_option('--without-libpcap', action='store_true', default=False,
+ opt.addUnixOptions(optgrp)
+ opt.addDependencyOptions(optgrp, 'libresolv')
+ opt.addDependencyOptions(optgrp, 'librt')
+ opt.addDependencyOptions(optgrp, 'libpcap')
+ optgrp.add_option('--without-libpcap', action='store_true', default=False,
help='Disable libpcap (Ethernet face support will be disabled)')
- nfdopt.add_option('--without-systemd', action='store_true', default=False,
+ optgrp.add_option('--without-systemd', action='store_true', default=False,
help='Disable systemd integration')
- opt.addWebsocketOptions(nfdopt)
+ opt.addWebsocketOptions(optgrp)
- nfdopt.add_option('--with-tests', action='store_true', default=False,
+ optgrp.add_option('--with-tests', action='store_true', default=False,
help='Build unit tests')
- nfdopt.add_option('--with-other-tests', action='store_true', default=False,
+ optgrp.add_option('--with-other-tests', action='store_true', default=False,
help='Build other tests')
PRIVILEGE_CHECK_CODE = '''
@@ -84,8 +84,8 @@
def configure(conf):
conf.load(['compiler_cxx', 'gnu_dirs',
- 'default-compiler-flags', 'compiler-features',
- 'pch', 'boost', 'dependency-checker', 'websocket',
+ 'default-compiler-flags', 'boost',
+ 'pch', 'dependency-checker', 'websocket',
'doxygen', 'sphinx_build'])
conf.env.WITH_TESTS = conf.options.with_tests
@@ -114,9 +114,13 @@
conf.check_boost(lib=boost_libs, mt=True)
if conf.env.BOOST_VERSION_NUMBER < 105800:
- conf.fatal('Minimum required Boost version is 1.58.0\n'
- 'Please upgrade your distribution or manually install a newer version of Boost'
- ' (https://redmine.named-data.net/projects/nfd/wiki/Boost_FAQ)')
+ conf.fatal('The minimum supported version of Boost is 1.65.1.\n'
+ 'Please upgrade your distribution or manually install a newer version of Boost.\n'
+ 'For more information, see https://redmine.named-data.net/projects/nfd/wiki/Boost')
+ elif conf.env.BOOST_VERSION_NUMBER < 106501:
+ Logs.warn('WARNING: Using a version of Boost older than 1.65.1 is not officially supported and may not work.\n'
+ 'If you encounter any problems, please upgrade your distribution or manually install a newer version of Boost.\n'
+ 'For more information, see https://redmine.named-data.net/projects/nfd/wiki/Boost')
conf.load('unix-socket')