Add option to use libc++ instead of libstdc++
This commit is contained in:
parent
162352419d
commit
6b00ff6198
13
wscript
13
wscript
@ -389,20 +389,27 @@ int main() { return 0; }''',
|
|||||||
#
|
#
|
||||||
compiler_flags.append ('-U__STRICT_ANSI__')
|
compiler_flags.append ('-U__STRICT_ANSI__')
|
||||||
|
|
||||||
|
if opt.use_libcpp:
|
||||||
|
cxx_flags.append('--stdlib=libc++')
|
||||||
|
linker_flags.append('--stdlib=libc++')
|
||||||
|
|
||||||
if conf.options.cxx11 or conf.env['build_host'] in [ 'mavericks', 'yosemite', 'el_capitan' ]:
|
if conf.options.cxx11 or conf.env['build_host'] in [ 'mavericks', 'yosemite', 'el_capitan' ]:
|
||||||
conf.check_cxx(cxxflags=["-std=c++11"])
|
conf.check_cxx(cxxflags=["-std=c++11"])
|
||||||
cxx_flags.append('-std=c++11')
|
cxx_flags.append('-std=c++11')
|
||||||
if platform == "darwin":
|
if platform == "darwin":
|
||||||
cxx_flags.append('--stdlib=libstdc++')
|
|
||||||
# Mavericks and later changed the syntax to be used when including Carbon headers,
|
# Mavericks and later changed the syntax to be used when including Carbon headers,
|
||||||
# from requiring a full path to requiring just the header name.
|
# from requiring a full path to requiring just the header name.
|
||||||
cxx_flags.append('-DCARBON_FLAT_HEADERS')
|
cxx_flags.append('-DCARBON_FLAT_HEADERS')
|
||||||
linker_flags.append('--stdlib=libstdc++')
|
|
||||||
|
if not opt.use_libcpp:
|
||||||
|
cxx_flags.append('--stdlib=libstdc++')
|
||||||
|
linker_flags.append('--stdlib=libstdc++')
|
||||||
# Prevents visibility issues in standard headers
|
# Prevents visibility issues in standard headers
|
||||||
conf.define("_DARWIN_C_SOURCE", 1)
|
conf.define("_DARWIN_C_SOURCE", 1)
|
||||||
else:
|
else:
|
||||||
cxx_flags.append('-DBOOST_NO_AUTO_PTR')
|
cxx_flags.append('-DBOOST_NO_AUTO_PTR')
|
||||||
|
|
||||||
|
|
||||||
if (is_clang and platform == "darwin") or conf.env['build_host'] in ['mavericks', 'yosemite', 'el_capitan']:
|
if (is_clang and platform == "darwin") or conf.env['build_host'] in ['mavericks', 'yosemite', 'el_capitan']:
|
||||||
# Silence warnings about the non-existing osx clang compiler flags
|
# Silence warnings about the non-existing osx clang compiler flags
|
||||||
# -compatibility_version and -current_version. These are Waf
|
# -compatibility_version and -current_version. These are Waf
|
||||||
@ -728,6 +735,8 @@ def options(opt):
|
|||||||
help='Do not ask questions that require confirmation during the build')
|
help='Do not ask questions that require confirmation during the build')
|
||||||
opt.add_option('--cxx11', action='store_true', default=False, dest='cxx11',
|
opt.add_option('--cxx11', action='store_true', default=False, dest='cxx11',
|
||||||
help='Turn on c++11 compiler flags (-std=c++11)')
|
help='Turn on c++11 compiler flags (-std=c++11)')
|
||||||
|
opt.add_option('--use-libc++', action='store_true', default=False, dest='use_libcpp',
|
||||||
|
help='use libc++ instead of default or auto-detected stdlib')
|
||||||
opt.add_option('--address-sanitizer', action='store_true', default=False, dest='asan',
|
opt.add_option('--address-sanitizer', action='store_true', default=False, dest='asan',
|
||||||
help='Turn on AddressSanitizer (requires GCC >= 4.8 or clang >= 3.1)')
|
help='Turn on AddressSanitizer (requires GCC >= 4.8 or clang >= 3.1)')
|
||||||
opt.add_option('--ptformat', action='store_true', default=False, dest='ptformat',
|
opt.add_option('--ptformat', action='store_true', default=False, dest='ptformat',
|
||||||
|
Loading…
Reference in New Issue
Block a user