build: tell libc++ to avoid including transitive headers
And apply BOOST_*_NO_DEPRECATED to debug builds only
Change-Id: Ic65c7ceae07ab6ecd3b3f7322b68f817a41f7716
diff --git a/.waf-tools/default-compiler-flags.py b/.waf-tools/default-compiler-flags.py
index 7784d9f..681913f 100644
--- a/.waf-tools/default-compiler-flags.py
+++ b/.waf-tools/default-compiler-flags.py
@@ -1,5 +1,3 @@
-# -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
-
import platform
from waflib import Configure, Logs, Utils
@@ -128,16 +126,16 @@
def getGeneralFlags(self, conf):
"""Get dict of CXXFLAGS, LINKFLAGS, and DEFINES that are always needed"""
+ return {'CXXFLAGS': [], 'LINKFLAGS': [], 'DEFINES': []}
+
+ def getDebugFlags(self, conf):
+ """Get dict of CXXFLAGS, LINKFLAGS, and DEFINES that are needed only in debug mode"""
return {
'CXXFLAGS': [],
'LINKFLAGS': [],
'DEFINES': ['BOOST_FILESYSTEM_NO_DEPRECATED'],
}
- def getDebugFlags(self, conf):
- """Get dict of CXXFLAGS, LINKFLAGS, and DEFINES that are needed only in debug mode"""
- return {'CXXFLAGS': [], 'LINKFLAGS': [], 'DEFINES': []}
-
def getOptimizedFlags(self, conf):
"""Get dict of CXXFLAGS, LINKFLAGS, and DEFINES that are needed only in optimized mode"""
return {'CXXFLAGS': [], 'LINKFLAGS': [], 'DEFINES': ['NDEBUG']}
@@ -245,6 +243,9 @@
elif self.getCompilerVersion(conf) >= (15, 0, 0):
# https://releases.llvm.org/15.0.0/projects/libcxx/docs/UsingLibcxx.html#enabling-the-safe-libc-mode
flags['DEFINES'] += ['_LIBCPP_ENABLE_ASSERTIONS=1']
+ # Tell libc++ to avoid including transitive headers
+ # https://libcxx.llvm.org/DesignDocs/HeaderRemovalPolicy.html
+ flags['DEFINES'] += ['_LIBCPP_REMOVE_TRANSITIVE_INCLUDES=1']
return flags
def getOptimizedFlags(self, conf):