Skip to content

Commit

Permalink
build: tell libc++ to avoid including transitive headers
Browse files Browse the repository at this point in the history
And apply BOOST_*_NO_DEPRECATED to debug builds only
  • Loading branch information
Pesa committed Mar 15, 2024
1 parent 85cd95e commit 1620e7d
Show file tree
Hide file tree
Showing 5 changed files with 13 additions and 21 deletions.
3 changes: 0 additions & 3 deletions .waf-tools/boost.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
#!/usr/bin/env python
# encoding: utf-8
#
# partially based on boost.py written by Gernot Vormayr
# written by Ruediger Sonderfeld <ruediger@c-plusplus.de>, 2008
# modified by Bjoern Michaelsen, 2008
Expand Down
2 changes: 0 additions & 2 deletions .waf-tools/coverage.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-

from waflib import TaskGen

def options(opt):
Expand Down
13 changes: 7 additions & 6 deletions .waf-tools/default-compiler-flags.py
Original file line number Diff line number Diff line change
@@ -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

Expand Down Expand Up @@ -128,16 +126,16 @@ def getCompilerVersion(self, conf):

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_ASIO_NO_DEPRECATED', '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']}
Expand Down Expand Up @@ -246,6 +244,9 @@ def getDebugFlags(self, conf):
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):
Expand Down
14 changes: 5 additions & 9 deletions .waf-tools/doxygen.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
#! /usr/bin/env python
# encoding: UTF-8
# Thomas Nagy 2008-2010 (ita)

"""
Doxygen support
Variables passed to bld():
Expand All @@ -27,9 +24,8 @@ def doxygen(bld):
bld(features="doxygen", doxyfile='Doxyfile', ...)
"""

from fnmatch import fnmatchcase
import os, os.path, re, stat
from waflib import Task, Utils, Node, Logs, Errors, Build
import os, os.path, re
from waflib import Task, Utils, Node
from waflib.TaskGen import feature

DOXY_STR = '"${DOXYGEN}" - '
Expand Down Expand Up @@ -207,8 +203,8 @@ def configure(conf):
conf.find_program('doxygen', var='DOXYGEN', mandatory=False)
conf.find_program('tar', var='TAR', mandatory=False)

# doxygen docs
# doxygen command
from waflib.Build import BuildContext
class doxy(BuildContext):
cmd = "doxygen"
fun = "doxygen"
cmd = 'doxygen'
fun = 'doxygen'
2 changes: 1 addition & 1 deletion .waf-tools/sanitizers.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
# Davide Pesavento (LIP6), 2016

def options(opt):
opt.add_option('--with-sanitizer', action='store', default='', dest='sanitizers',
Expand Down

0 comments on commit 1620e7d

Please # to comment.