diff options
author | Lioncash <mathew1800@gmail.com> | 2019-05-07 14:06:20 -0400 |
---|---|---|
committer | Lioncash <mathew1800@gmail.com> | 2019-05-07 14:06:22 -0400 |
commit | 70c6506a7e804127aad176b8ebbb3db951848a5d (patch) | |
tree | e5b888ff99933800469220a4b9e1fd1c7a3e6820 /src | |
parent | 6ca7241bd955555e3421e5720cd7359380c83156 (diff) |
src/CMakeLists: Add /Zc:externConstexpr to the MSVC build flags
The C++ standard allows constexpr variables declared with the extern
keyword to have external linkage. Previously MSVC wasn't abiding by
this. This just makes the compiler more standards compliant during
builds.
Given we currently don't make use of anything that would break by this,
this is safe to enable.
Diffstat (limited to 'src')
-rw-r--r-- | src/CMakeLists.txt | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 095aadbe8..a1d87bbbc 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -21,14 +21,15 @@ if (MSVC) # Ensure that projects build with Unicode support. add_definitions(-DUNICODE -D_UNICODE) - # /W3 - Level 3 warnings - # /MP - Multi-threaded compilation - # /Zi - Output debugging information - # /Zo - Enhanced debug info for optimized builds - # /permissive- - Enables stricter C++ standards conformance checks - # /EHsc - C++-only exception handling semantics - # /Zc:inline - Let codegen omit inline functions in object files - # /Zc:throwingNew - Let codegen assume `operator new` (without std::nothrow) will never return null + # /W3 - Level 3 warnings + # /MP - Multi-threaded compilation + # /Zi - Output debugging information + # /Zo - Enhanced debug info for optimized builds + # /permissive- - Enables stricter C++ standards conformance checks + # /EHsc - C++-only exception handling semantics + # /Zc:externConstexpr - Allow extern constexpr variables to have external linkage, like the standard mandates + # /Zc:inline - Let codegen omit inline functions in object files + # /Zc:throwingNew - Let codegen assume `operator new` (without std::nothrow) will never return null add_compile_options( /W3 /MP @@ -37,6 +38,7 @@ if (MSVC) /permissive- /EHsc /std:c++latest + /Zc:externConstexpr /Zc:inline /Zc:throwingNew ) |