build: raise minimum build requirements

 * Make gcc 7.4 and boost 1.65.1 hard dependencies, both are
   available out-of-the-box on Ubuntu 18.04
 * Require Xcode 10 on macOS but recommend 11.3 or later
 * If using clang on non-Apple platforms, the minimum supported
   version is now 6.0

Change-Id: I79c84a266741c9a66655da4fd467fe0d8218e8f0
diff --git a/.waf-tools/default-compiler-flags.py b/.waf-tools/default-compiler-flags.py
index f3be6e7..f086c17 100644
--- a/.waf-tools/default-compiler-flags.py
+++ b/.waf-tools/default-compiler-flags.py
@@ -16,20 +16,21 @@
     errmsg = ''
     warnmsg = ''
     if cxx == 'gcc':
-        if ccver < (5, 3, 0):
+        if ccver < (7, 4, 0):
             errmsg = ('The version of gcc you are using is too old.\n'
-                      'The minimum supported gcc version is 7.4.0.')
-        elif ccver < (7, 4, 0):
-            warnmsg = ('Using a version of gcc older than 7.4.0 is not '
-                       'officially supported and may result in build failures.')
+                      'The minimum supported gcc version is 7.4.')
         conf.flags = GccFlags()
     elif cxx == 'clang':
-        if Utils.unversioned_sys_platform() == 'darwin' and ccver < (9, 0, 0):
-            errmsg = ('The version of Xcode you are using is too old.\n'
-                      'The minimum supported Xcode version is 9.0.')
-        elif ccver < (4, 0, 0):
+        if Utils.unversioned_sys_platform() == 'darwin':
+            if ccver < (10, 0, 0):
+                errmsg = ('The version of Xcode you are using is too old.\n'
+                          'The minimum supported Xcode version is 11.3.')
+            elif ccver < (11, 0, 0):
+                warnmsg = ('Using a version of Xcode older than 11.3 is not '
+                           'officially supported and may result in build failures.')
+        elif ccver < (6, 0, 0):
             errmsg = ('The version of clang you are using is too old.\n'
-                      'The minimum supported clang version is 4.0.')
+                      'The minimum supported clang version is 6.0.')
         conf.flags = ClangFlags()
     else:
         warnmsg = '%s compiler is unsupported' % cxx
@@ -181,7 +182,7 @@
         flags['CXXFLAGS'] += ['-fdiagnostics-color',
                               '-Wredundant-tags',
                               ]
-        if platform.machine() == 'armv7l' and self.getCompilerVersion(conf) >= (7, 1, 0):
+        if platform.machine() == 'armv7l':
             flags['CXXFLAGS'] += ['-Wno-psabi'] # Bug #5106
         return flags
 
@@ -190,7 +191,7 @@
         flags['CXXFLAGS'] += ['-fdiagnostics-color',
                               '-Wredundant-tags',
                               ]
-        if platform.machine() == 'armv7l' and self.getCompilerVersion(conf) >= (7, 1, 0):
+        if platform.machine() == 'armv7l':
             flags['CXXFLAGS'] += ['-Wno-psabi'] # Bug #5106
         return flags
 
@@ -212,8 +213,6 @@
                               '-Wundefined-func-template',
                               '-Wno-unused-local-typedef', # Bugs #2657 and #3209
                               ]
-        if self.getCompilerVersion(conf) < (6, 0, 0):
-            flags['CXXFLAGS'] += ['-Wno-missing-braces'] # Bug #4721
         return flags
 
     def getOptimizedFlags(self, conf):
@@ -222,6 +221,4 @@
                               '-Wundefined-func-template',
                               '-Wno-unused-local-typedef', # Bugs #2657 and #3209
                               ]
-        if self.getCompilerVersion(conf) < (6, 0, 0):
-            flags['CXXFLAGS'] += ['-Wno-missing-braces'] # Bug #4721
         return flags