-
Ondřej Surý authored
Our vcxproj files set the WarningLevel to Level3, which is too verbose for a code that needs to be portable. That basically leads to ignoring all the errors that MSVC produces. This commits downgrades the WarningLevel to Level1 and enables treating warnings as errors for Release builds. For the Debug builds the WarningLevel got upgraded to Level4, and treating warnings as errors is explicitly disabled. We should eventually make the code clean of all MSVC warnings, but it's a long way to go for Level4, so it's more reasonable to start at Level1. For reference[1], these are the warning levels as described by MSVC documentation: * /W0 suppresses all warnings. It's equivalent to /w. * /W1 displays level 1 (severe) warnings. /W1 is the default setting in the command-line compiler. * /W2 displays level 1 and level 2 (significant) warnings. * /W3 displays level 1, level 2, and level 3 (production quality) warnings. /W3 is the default setting in the IDE. * /W4 displays level 1, level 2, and level 3 warnings, and all level 4 (informational) warnings that aren't off by default. We recommend that you use this option to provide lint-like warnings. For a new project, it may be best to use /W4 in all compilations. This option helps ensure the fewest possible hard-to-find code defects. * /Wall displays all warnings displayed by /W4 and all other warnings that /W4 doesn't include — for example, warnings that are off by default. * /WX treats all compiler warnings as errors. For a new project, it may be best to use /WX in all compilations; resolving all warnings ensures the fewest possible hard-to-find code defects. 1. https://docs.microsoft.com/en-us/cpp/build/reference/compiler-option-warning-level?view=vs-2019
789d253e