build: require gcc >= 5.3, boost >= 1.58, openssl >= 1.0.2
This effectively drops support for all versions of Ubuntu older than 16.04
Change-Id: Ie3ab7df9147e97f6467658a6399a4f9379f089c1
Refs: #4462
diff --git a/.waf-tools/compiler-features.py b/.waf-tools/compiler-features.py
index 502596c..1602f16 100644
--- a/.waf-tools/compiler-features.py
+++ b/.waf-tools/compiler-features.py
@@ -23,31 +23,8 @@
@conf
def check_std_to_string(self):
if self.check_cxx(msg='Checking for std::to_string',
- fragment=STD_TO_STRING,
- features='cxx', mandatory=False):
+ fragment=STD_TO_STRING, mandatory=False):
self.define('HAVE_STD_TO_STRING', 1)
-VECTOR_INSERT_ERASE_CONST_ITERATOR = '''
-#include <vector>
-int
-main()
-{
- std::vector<int> v;
- std::vector<int>::const_iterator it = v.cbegin();
-
- v.insert(it, 2);
- it = v.cend() - 1;
- v.erase(it);
-}
-'''
-
-@conf
-def check_vector_const_iterators(self):
- if self.check_cxx(msg='Checking for std::vector::insert with const_iterator',
- fragment=VECTOR_INSERT_ERASE_CONST_ITERATOR,
- features='cxx', mandatory=False):
- self.define('HAVE_VECTOR_INSERT_ERASE_CONST_ITERATOR', 1)
-
def configure(conf):
conf.check_std_to_string()
- conf.check_vector_const_iterators()
diff --git a/.waf-tools/default-compiler-flags.py b/.waf-tools/default-compiler-flags.py
index 54db7ea..e9fdcc6 100644
--- a/.waf-tools/default-compiler-flags.py
+++ b/.waf-tools/default-compiler-flags.py
@@ -15,14 +15,14 @@
errmsg = ''
warnmsg = ''
if cxx == 'gcc':
- if ccver < (4, 8, 2):
+ if ccver < (5, 3, 0):
errmsg = ('The version of gcc you are using is too old.\n'
- 'The minimum supported gcc version is 4.8.2.')
+ 'The minimum supported gcc version is 5.3.0.')
conf.flags = GccFlags()
elif cxx == 'clang':
- if ccver < (3, 4, 0):
+ if ccver < (3, 5, 0):
errmsg = ('The version of clang you are using is too old.\n'
- 'The minimum supported clang version is 3.4.0.')
+ 'The minimum supported clang version is 3.5.0.')
conf.flags = ClangFlags()
else:
warnmsg = 'Note: %s compiler is unsupported' % cxx
@@ -164,16 +164,12 @@
class GccFlags(GccBasicFlags):
def getDebugFlags(self, conf):
flags = super(GccFlags, self).getDebugFlags(conf)
- if self.getCompilerVersion(conf) < (5, 1, 0):
- flags['CXXFLAGS'] += ['-Wno-missing-field-initializers']
- flags['CXXFLAGS'] += ['-fdiagnostics-color'] # gcc >= 4.9
+ flags['CXXFLAGS'] += ['-fdiagnostics-color']
return flags
def getOptimizedFlags(self, conf):
flags = super(GccFlags, self).getOptimizedFlags(conf)
- if self.getCompilerVersion(conf) < (5, 1, 0):
- flags['CXXFLAGS'] += ['-Wno-missing-field-initializers']
- flags['CXXFLAGS'] += ['-fdiagnostics-color'] # gcc >= 4.9
+ flags['CXXFLAGS'] += ['-fdiagnostics-color']
return flags
class ClangFlags(GccBasicFlags):
diff --git a/.waf-tools/type_traits.py b/.waf-tools/type_traits.py
deleted file mode 100644
index efc4e3d..0000000
--- a/.waf-tools/type_traits.py
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
-
-def checkForTypeProperty(conf, prop, tparams):
- if conf.check_cxx(msg=('Checking for std::%s' % prop),
- fragment=('#include <type_traits>\nstatic_assert(std::%s<%s>::value, "");' %
- (prop, tparams)),
- features='cxx', mandatory=False):
- define = 'HAVE_' + prop.upper()
- conf.define(define, 1)
- conf.env[define] = True
-
-def configure(conf):
- checkForTypeProperty(conf, 'is_default_constructible', 'int')
- checkForTypeProperty(conf, 'is_nothrow_move_constructible', 'int')
- checkForTypeProperty(conf, 'is_nothrow_move_assignable', 'int')