From f5584205b0ee93904a5f2a9921459f99a1caa515 Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Sun, 27 Dec 2020 07:54:24 -0600 Subject: [PATCH] Fix missing C++ flags args for msvc. Recent change fixed the use of CFLAGS vs. C++FLAGS which caused a bunch of C++ options to dissappear. This brings then back by setting them to appropriate OPTIONS, CFLAGS, or C++FLAGS var. --- src/tools/msvc.jam | 88 +++++++++++++++++++++++----------------------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/src/tools/msvc.jam b/src/tools/msvc.jam index 3f8da44fd..b1773a784 100644 --- a/src/tools/msvc.jam +++ b/src/tools/msvc.jam @@ -450,19 +450,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)/off : /wd4996 ; + toolset.flags $(toolset).compile OPTIONS $(conditions)/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)/all : /Wp64 ; + toolset.flags $(toolset).compile OPTIONS $(conditions)/all : /Wp64 ; } } @@ -471,17 +471,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)/speed $(conditions)/space : /Gw ; + toolset.flags $(toolset).compile OPTIONS $(conditions)/speed $(conditions)/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" ; } # @@ -491,34 +491,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)/speed $(conditions)/space : /Ogiy /Gs ; - toolset.flags $(toolset).compile CFLAGS $(conditions)/speed : /Ot ; - toolset.flags $(toolset).compile CFLAGS $(conditions)/space : /Os ; + toolset.flags $(toolset).compile OPTIONS $(conditions)/speed $(conditions)/space : /Ogiy /Gs ; + toolset.flags $(toolset).compile OPTIONS $(conditions)/speed : /Ot ; + toolset.flags $(toolset).compile OPTIONS $(conditions)/space : /Os ; - toolset.flags $(toolset).compile CFLAGS $(conditions)/$(.cpu-arch-i386)/ : /GB ; - toolset.flags $(toolset).compile CFLAGS $(conditions)/$(.cpu-arch-i386)/i486 : /G4 ; - toolset.flags $(toolset).compile CFLAGS $(conditions)/$(.cpu-arch-i386)/$(.cpu-type-g5) : /G5 ; - toolset.flags $(toolset).compile CFLAGS $(conditions)/$(.cpu-arch-i386)/$(.cpu-type-g6) : /G6 ; - toolset.flags $(toolset).compile CFLAGS $(conditions)/$(.cpu-arch-i386)/$(.cpu-type-g7) : /G7 ; + toolset.flags $(toolset).compile OPTIONS $(conditions)/$(.cpu-arch-i386)/ : /GB ; + toolset.flags $(toolset).compile OPTIONS $(conditions)/$(.cpu-arch-i386)/i486 : /G4 ; + toolset.flags $(toolset).compile OPTIONS $(conditions)/$(.cpu-arch-i386)/$(.cpu-type-g5) : /G5 ; + toolset.flags $(toolset).compile OPTIONS $(conditions)/$(.cpu-arch-i386)/$(.cpu-type-g6) : /G6 ; + toolset.flags $(toolset).compile OPTIONS $(conditions)/$(.cpu-arch-i386)/$(.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)/off/static/single : /ML ; - toolset.flags $(toolset).compile CFLAGS $(conditions)/on/static/single : /MLd ; + toolset.flags $(toolset).compile OPTIONS $(conditions)/off/static/single : /ML ; + toolset.flags $(toolset).compile OPTIONS $(conditions)/on/static/single : /MLd ; } else { # 8.0 and above adds some more options. - toolset.flags $(toolset).compile CFLAGS $(conditions)/$(.cpu-arch-amd64)/ : "/favor:blend" ; - toolset.flags $(toolset).compile CFLAGS $(conditions)/$(.cpu-arch-amd64)/$(.cpu-type-em64t) : "/favor:EM64T" ; - toolset.flags $(toolset).compile CFLAGS $(conditions)/$(.cpu-arch-amd64)/$(.cpu-type-amd64) : "/favor:AMD64" ; + toolset.flags $(toolset).compile OPTIONS $(conditions)/$(.cpu-arch-amd64)/ : "/favor:blend" ; + toolset.flags $(toolset).compile OPTIONS $(conditions)/$(.cpu-arch-amd64)/$(.cpu-type-em64t) : "/favor:EM64T" ; + toolset.flags $(toolset).compile OPTIONS $(conditions)/$(.cpu-arch-amd64)/$(.cpu-type-amd64) : "/favor:AMD64" ; # 8.0 and above only has multi-threaded static RTL. - toolset.flags $(toolset).compile CFLAGS $(conditions)/off/static/single : /MT ; - toolset.flags $(toolset).compile CFLAGS $(conditions)/on/static/single : /MTd ; + toolset.flags $(toolset).compile OPTIONS $(conditions)/off/static/single : /MT ; + toolset.flags $(toolset).compile OPTIONS $(conditions)/on/static/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" ; @@ -1827,25 +1827,25 @@ local rule register-toolset-really ( ) # Declare flags for compilation. # - toolset.flags msvc.compile CFLAGS speed : /O2 ; - toolset.flags msvc.compile CFLAGS space : /O1 ; + toolset.flags msvc.compile OPTIONS speed : /O2 ; + toolset.flags msvc.compile OPTIONS space : /O1 ; - toolset.flags msvc.compile CFLAGS $(.cpu-arch-ia64)/$(.cpu-type-itanium) : /G1 ; - toolset.flags msvc.compile CFLAGS $(.cpu-arch-ia64)/$(.cpu-type-itanium2) : /G2 ; + toolset.flags msvc.compile OPTIONS $(.cpu-arch-ia64)/$(.cpu-type-itanium) : /G1 ; + toolset.flags msvc.compile OPTIONS $(.cpu-arch-ia64)/$(.cpu-type-itanium2) : /G2 ; - toolset.flags msvc.compile CFLAGS on/object : /Z7 ; - toolset.flags msvc.compile CFLAGS on/database : /Zi ; - toolset.flags msvc.compile CFLAGS off : /Od ; - toolset.flags msvc.compile CFLAGS off : /Ob0 ; - toolset.flags msvc.compile CFLAGS on : /Ob1 ; - toolset.flags msvc.compile CFLAGS full : /Ob2 ; + toolset.flags msvc.compile OPTIONS on/object : /Z7 ; + toolset.flags msvc.compile OPTIONS on/database : /Zi ; + toolset.flags msvc.compile OPTIONS off : /Od ; + toolset.flags msvc.compile OPTIONS off : /Ob0 ; + toolset.flags msvc.compile OPTIONS on : /Ob1 ; + toolset.flags msvc.compile OPTIONS full : /Ob2 ; - toolset.flags msvc.compile CFLAGS on : /W3 ; - toolset.flags msvc.compile CFLAGS off : /W0 ; - toolset.flags msvc.compile CFLAGS all : /W4 ; - toolset.flags msvc.compile CFLAGS extra : /W4 ; - toolset.flags msvc.compile CFLAGS pedantic : /W4 ; - toolset.flags msvc.compile CFLAGS on : /WX ; + toolset.flags msvc.compile OPTIONS on : /W3 ; + toolset.flags msvc.compile OPTIONS off : /W0 ; + toolset.flags msvc.compile OPTIONS all : /W4 ; + toolset.flags msvc.compile OPTIONS extra : /W4 ; + toolset.flags msvc.compile OPTIONS pedantic : /W4 ; + toolset.flags msvc.compile OPTIONS on : /WX ; toolset.flags msvc.compile C++FLAGS on/off/off : /EHs ; toolset.flags msvc.compile C++FLAGS on/off/on : /EHsc ; @@ -1859,13 +1859,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 on : /GR ; - toolset.flags msvc.compile CFLAGS off : /GR- ; - toolset.flags msvc.compile CFLAGS off/shared : /MD ; - toolset.flags msvc.compile CFLAGS on/shared : /MDd ; + toolset.flags msvc.compile C++FLAGS on : /GR ; + toolset.flags msvc.compile C++FLAGS off : /GR- ; + toolset.flags msvc.compile OPTIONS off/shared : /MD ; + toolset.flags msvc.compile OPTIONS on/shared : /MDd ; - toolset.flags msvc.compile CFLAGS off/static/multi : /MT ; - toolset.flags msvc.compile CFLAGS on/static/multi : /MTd ; + toolset.flags msvc.compile OPTIONS off/static/multi : /MT ; + toolset.flags msvc.compile OPTIONS on/static/multi : /MTd ; toolset.flags msvc.compile CFLAGS : ; toolset.flags msvc.compile.c++ C++FLAGS : ;