mirror of
https://github.com/boostorg/build.git
synced 2026-02-14 00:32:11 +00:00
Merge branch 'develop' into pr/660
This commit is contained in:
@@ -451,19 +451,19 @@ rule configure-version-specific ( toolset : version : conditions )
|
||||
# version 7.* explicitly or if we auto-detected the version ourselves.
|
||||
if ! [ MATCH ^(6\\.) : $(version) ]
|
||||
{
|
||||
toolset.flags $(toolset).compile CFLAGS $(conditions) : "/Zc:forScope" "/Zc:wchar_t" ;
|
||||
toolset.flags $(toolset).compile OPTIONS $(conditions) : "/Zc:forScope" "/Zc:wchar_t" ;
|
||||
toolset.flags $(toolset).compile.c++ C++FLAGS $(conditions) : /wd4675 ;
|
||||
|
||||
# Explicitly disable the 'function is deprecated' warning. Some msvc
|
||||
# versions have a bug, causing them to emit the deprecation warning even
|
||||
# with /W0.
|
||||
toolset.flags $(toolset).compile CFLAGS $(conditions)/<warnings>off : /wd4996 ;
|
||||
toolset.flags $(toolset).compile OPTIONS $(conditions)/<warnings>off : /wd4996 ;
|
||||
|
||||
if [ MATCH "^([78]\\.)" : $(version) ]
|
||||
{
|
||||
# 64-bit compatibility warning deprecated since 9.0, see
|
||||
# http://msdn.microsoft.com/en-us/library/yt4xw8fh.aspx
|
||||
toolset.flags $(toolset).compile CFLAGS $(conditions)/<warnings>all : /Wp64 ;
|
||||
toolset.flags $(toolset).compile OPTIONS $(conditions)/<warnings>all : /Wp64 ;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -472,17 +472,17 @@ rule configure-version-specific ( toolset : version : conditions )
|
||||
# variables and functions that have internal linkage
|
||||
if ! [ version.version-less [ SPLIT_BY_CHARACTERS [ MATCH "^([0123456789.]+)" : $(version) ] : . ] : 12 ]
|
||||
{
|
||||
toolset.flags $(toolset).compile CFLAGS $(conditions) : "/Zc:inline" ;
|
||||
toolset.flags $(toolset).compile OPTIONS $(conditions) : "/Zc:inline" ;
|
||||
|
||||
# /Gy analog for variables: https://devblogs.microsoft.com/cppblog/introducing-gw-compiler-switch/
|
||||
toolset.flags $(toolset).compile CFLAGS $(conditions)/<optimization>speed $(conditions)/<optimization>space : /Gw ;
|
||||
toolset.flags $(toolset).compile OPTIONS $(conditions)/<optimization>speed $(conditions)/<optimization>space : /Gw ;
|
||||
}
|
||||
|
||||
# 14.0 introduced /Zc:throwingNew opt-in flag that disables a workaround
|
||||
# for not throwing operator new in VC up to 6.0
|
||||
if ! [ version.version-less [ SPLIT_BY_CHARACTERS [ MATCH "^([0123456789.]+)" : $(version) ] : . ] : 14 ]
|
||||
{
|
||||
toolset.flags $(toolset).compile CFLAGS $(conditions) : "/Zc:throwingNew" ;
|
||||
toolset.flags $(toolset).compile C++FLAGS $(conditions) : "/Zc:throwingNew" ;
|
||||
}
|
||||
|
||||
# 14.27 (VS2019 Version 16.7) introduced support for ASAN on x86 and x64 CPUs
|
||||
@@ -563,34 +563,34 @@ rule configure-version-specific ( toolset : version : conditions )
|
||||
if [ MATCH "^([67])" : $(version) ]
|
||||
{
|
||||
# 8.0 deprecates some of the options.
|
||||
toolset.flags $(toolset).compile CFLAGS $(conditions)/<optimization>speed $(conditions)/<optimization>space : /Ogiy /Gs ;
|
||||
toolset.flags $(toolset).compile CFLAGS $(conditions)/<optimization>speed : /Ot ;
|
||||
toolset.flags $(toolset).compile CFLAGS $(conditions)/<optimization>space : /Os ;
|
||||
toolset.flags $(toolset).compile OPTIONS $(conditions)/<optimization>speed $(conditions)/<optimization>space : /Ogiy /Gs ;
|
||||
toolset.flags $(toolset).compile OPTIONS $(conditions)/<optimization>speed : /Ot ;
|
||||
toolset.flags $(toolset).compile OPTIONS $(conditions)/<optimization>space : /Os ;
|
||||
|
||||
toolset.flags $(toolset).compile CFLAGS $(conditions)/$(.cpu-arch-i386)/<instruction-set> : /GB ;
|
||||
toolset.flags $(toolset).compile CFLAGS $(conditions)/$(.cpu-arch-i386)/<instruction-set>i486 : /G4 ;
|
||||
toolset.flags $(toolset).compile CFLAGS $(conditions)/$(.cpu-arch-i386)/<instruction-set>$(.cpu-type-g5) : /G5 ;
|
||||
toolset.flags $(toolset).compile CFLAGS $(conditions)/$(.cpu-arch-i386)/<instruction-set>$(.cpu-type-g6) : /G6 ;
|
||||
toolset.flags $(toolset).compile CFLAGS $(conditions)/$(.cpu-arch-i386)/<instruction-set>$(.cpu-type-g7) : /G7 ;
|
||||
toolset.flags $(toolset).compile OPTIONS $(conditions)/$(.cpu-arch-i386)/<instruction-set> : /GB ;
|
||||
toolset.flags $(toolset).compile OPTIONS $(conditions)/$(.cpu-arch-i386)/<instruction-set>i486 : /G4 ;
|
||||
toolset.flags $(toolset).compile OPTIONS $(conditions)/$(.cpu-arch-i386)/<instruction-set>$(.cpu-type-g5) : /G5 ;
|
||||
toolset.flags $(toolset).compile OPTIONS $(conditions)/$(.cpu-arch-i386)/<instruction-set>$(.cpu-type-g6) : /G6 ;
|
||||
toolset.flags $(toolset).compile OPTIONS $(conditions)/$(.cpu-arch-i386)/<instruction-set>$(.cpu-type-g7) : /G7 ;
|
||||
|
||||
# Improve floating-point accuracy. Otherwise, some of C++ Boost's "math"
|
||||
# tests will fail.
|
||||
toolset.flags $(toolset).compile CFLAGS $(conditions) : /Op ;
|
||||
toolset.flags $(toolset).compile OPTIONS $(conditions) : /Op ;
|
||||
|
||||
# 7.1 and below have single-threaded static RTL.
|
||||
toolset.flags $(toolset).compile CFLAGS $(conditions)/<runtime-debugging>off/<runtime-link>static/<threading>single : /ML ;
|
||||
toolset.flags $(toolset).compile CFLAGS $(conditions)/<runtime-debugging>on/<runtime-link>static/<threading>single : /MLd ;
|
||||
toolset.flags $(toolset).compile OPTIONS $(conditions)/<runtime-debugging>off/<runtime-link>static/<threading>single : /ML ;
|
||||
toolset.flags $(toolset).compile OPTIONS $(conditions)/<runtime-debugging>on/<runtime-link>static/<threading>single : /MLd ;
|
||||
}
|
||||
else
|
||||
{
|
||||
# 8.0 and above adds some more options.
|
||||
toolset.flags $(toolset).compile CFLAGS $(conditions)/$(.cpu-arch-amd64)/<instruction-set> : "/favor:blend" ;
|
||||
toolset.flags $(toolset).compile CFLAGS $(conditions)/$(.cpu-arch-amd64)/<instruction-set>$(.cpu-type-em64t) : "/favor:EM64T" ;
|
||||
toolset.flags $(toolset).compile CFLAGS $(conditions)/$(.cpu-arch-amd64)/<instruction-set>$(.cpu-type-amd64) : "/favor:AMD64" ;
|
||||
toolset.flags $(toolset).compile OPTIONS $(conditions)/$(.cpu-arch-amd64)/<instruction-set> : "/favor:blend" ;
|
||||
toolset.flags $(toolset).compile OPTIONS $(conditions)/$(.cpu-arch-amd64)/<instruction-set>$(.cpu-type-em64t) : "/favor:EM64T" ;
|
||||
toolset.flags $(toolset).compile OPTIONS $(conditions)/$(.cpu-arch-amd64)/<instruction-set>$(.cpu-type-amd64) : "/favor:AMD64" ;
|
||||
|
||||
# 8.0 and above only has multi-threaded static RTL.
|
||||
toolset.flags $(toolset).compile CFLAGS $(conditions)/<runtime-debugging>off/<runtime-link>static/<threading>single : /MT ;
|
||||
toolset.flags $(toolset).compile CFLAGS $(conditions)/<runtime-debugging>on/<runtime-link>static/<threading>single : /MTd ;
|
||||
toolset.flags $(toolset).compile OPTIONS $(conditions)/<runtime-debugging>off/<runtime-link>static/<threading>single : /MT ;
|
||||
toolset.flags $(toolset).compile OPTIONS $(conditions)/<runtime-debugging>on/<runtime-link>static/<threading>single : /MTd ;
|
||||
|
||||
# Specify target machine type so the linker will not need to guess.
|
||||
toolset.flags $(toolset).link LINKFLAGS $(conditions)/$(.cpu-arch-amd64) : "/MACHINE:X64" ;
|
||||
@@ -1899,25 +1899,25 @@ local rule register-toolset-really ( )
|
||||
# Declare flags for compilation.
|
||||
#
|
||||
|
||||
toolset.flags msvc.compile CFLAGS <optimization>speed : /O2 ;
|
||||
toolset.flags msvc.compile CFLAGS <optimization>space : /O1 ;
|
||||
toolset.flags msvc.compile OPTIONS <optimization>speed : /O2 ;
|
||||
toolset.flags msvc.compile OPTIONS <optimization>space : /O1 ;
|
||||
|
||||
toolset.flags msvc.compile CFLAGS $(.cpu-arch-ia64)/<instruction-set>$(.cpu-type-itanium) : /G1 ;
|
||||
toolset.flags msvc.compile CFLAGS $(.cpu-arch-ia64)/<instruction-set>$(.cpu-type-itanium2) : /G2 ;
|
||||
toolset.flags msvc.compile OPTIONS $(.cpu-arch-ia64)/<instruction-set>$(.cpu-type-itanium) : /G1 ;
|
||||
toolset.flags msvc.compile OPTIONS $(.cpu-arch-ia64)/<instruction-set>$(.cpu-type-itanium2) : /G2 ;
|
||||
|
||||
toolset.flags msvc.compile CFLAGS <debug-symbols>on/<debug-store>object : /Z7 ;
|
||||
toolset.flags msvc.compile CFLAGS <debug-symbols>on/<debug-store>database : /Zi ;
|
||||
toolset.flags msvc.compile CFLAGS <optimization>off : /Od ;
|
||||
toolset.flags msvc.compile CFLAGS <inlining>off : /Ob0 ;
|
||||
toolset.flags msvc.compile CFLAGS <inlining>on : /Ob1 ;
|
||||
toolset.flags msvc.compile CFLAGS <inlining>full : /Ob2 ;
|
||||
toolset.flags msvc.compile OPTIONS <debug-symbols>on/<debug-store>object : /Z7 ;
|
||||
toolset.flags msvc.compile OPTIONS <debug-symbols>on/<debug-store>database : /Zi ;
|
||||
toolset.flags msvc.compile OPTIONS <optimization>off : /Od ;
|
||||
toolset.flags msvc.compile OPTIONS <inlining>off : /Ob0 ;
|
||||
toolset.flags msvc.compile OPTIONS <inlining>on : /Ob1 ;
|
||||
toolset.flags msvc.compile OPTIONS <inlining>full : /Ob2 ;
|
||||
|
||||
toolset.flags msvc.compile CFLAGS <warnings>on : /W3 ;
|
||||
toolset.flags msvc.compile CFLAGS <warnings>off : /W0 ;
|
||||
toolset.flags msvc.compile CFLAGS <warnings>all : /W4 ;
|
||||
toolset.flags msvc.compile CFLAGS <warnings>extra : /W4 ;
|
||||
toolset.flags msvc.compile CFLAGS <warnings>pedantic : /W4 ;
|
||||
toolset.flags msvc.compile CFLAGS <warnings-as-errors>on : /WX ;
|
||||
toolset.flags msvc.compile OPTIONS <warnings>on : /W3 ;
|
||||
toolset.flags msvc.compile OPTIONS <warnings>off : /W0 ;
|
||||
toolset.flags msvc.compile OPTIONS <warnings>all : /W4 ;
|
||||
toolset.flags msvc.compile OPTIONS <warnings>extra : /W4 ;
|
||||
toolset.flags msvc.compile OPTIONS <warnings>pedantic : /W4 ;
|
||||
toolset.flags msvc.compile OPTIONS <warnings-as-errors>on : /WX ;
|
||||
|
||||
toolset.flags msvc.compile C++FLAGS <exception-handling>on/<asynch-exceptions>off/<extern-c-nothrow>off : /EHs ;
|
||||
toolset.flags msvc.compile C++FLAGS <exception-handling>on/<asynch-exceptions>off/<extern-c-nothrow>on : /EHsc ;
|
||||
@@ -1931,13 +1931,13 @@ local rule register-toolset-really ( )
|
||||
# By default 8.0 enables rtti support while prior versions disabled it. We
|
||||
# simply enable or disable it explicitly so we do not have to depend on this
|
||||
# default behaviour.
|
||||
toolset.flags msvc.compile CFLAGS <rtti>on : /GR ;
|
||||
toolset.flags msvc.compile CFLAGS <rtti>off : /GR- ;
|
||||
toolset.flags msvc.compile CFLAGS <runtime-debugging>off/<runtime-link>shared : /MD ;
|
||||
toolset.flags msvc.compile CFLAGS <runtime-debugging>on/<runtime-link>shared : /MDd ;
|
||||
toolset.flags msvc.compile C++FLAGS <rtti>on : /GR ;
|
||||
toolset.flags msvc.compile C++FLAGS <rtti>off : /GR- ;
|
||||
toolset.flags msvc.compile OPTIONS <runtime-debugging>off/<runtime-link>shared : /MD ;
|
||||
toolset.flags msvc.compile OPTIONS <runtime-debugging>on/<runtime-link>shared : /MDd ;
|
||||
|
||||
toolset.flags msvc.compile CFLAGS <runtime-debugging>off/<runtime-link>static/<threading>multi : /MT ;
|
||||
toolset.flags msvc.compile CFLAGS <runtime-debugging>on/<runtime-link>static/<threading>multi : /MTd ;
|
||||
toolset.flags msvc.compile OPTIONS <runtime-debugging>off/<runtime-link>static/<threading>multi : /MT ;
|
||||
toolset.flags msvc.compile OPTIONS <runtime-debugging>on/<runtime-link>static/<threading>multi : /MTd ;
|
||||
|
||||
toolset.flags msvc.compile CFLAGS <cflags> : ;
|
||||
toolset.flags msvc.compile.c++ C++FLAGS <cxxflags> : ;
|
||||
|
||||
Reference in New Issue
Block a user