summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Lioncash2019-05-07 14:06:20 -0400
committerGravatar Lioncash2019-05-07 14:06:22 -0400
commit70c6506a7e804127aad176b8ebbb3db951848a5d (patch)
treee5b888ff99933800469220a4b9e1fd1c7a3e6820 /src
parentsrc/CMakeLists: Vertically order compilation flags (diff)
downloadyuzu-70c6506a7e804127aad176b8ebbb3db951848a5d.tar.gz
yuzu-70c6506a7e804127aad176b8ebbb3db951848a5d.tar.xz
yuzu-70c6506a7e804127aad176b8ebbb3db951848a5d.zip
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.txt18
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)
21 # Ensure that projects build with Unicode support. 21 # Ensure that projects build with Unicode support.
22 add_definitions(-DUNICODE -D_UNICODE) 22 add_definitions(-DUNICODE -D_UNICODE)
23 23
24 # /W3 - Level 3 warnings 24 # /W3 - Level 3 warnings
25 # /MP - Multi-threaded compilation 25 # /MP - Multi-threaded compilation
26 # /Zi - Output debugging information 26 # /Zi - Output debugging information
27 # /Zo - Enhanced debug info for optimized builds 27 # /Zo - Enhanced debug info for optimized builds
28 # /permissive- - Enables stricter C++ standards conformance checks 28 # /permissive- - Enables stricter C++ standards conformance checks
29 # /EHsc - C++-only exception handling semantics 29 # /EHsc - C++-only exception handling semantics
30 # /Zc:inline - Let codegen omit inline functions in object files 30 # /Zc:externConstexpr - Allow extern constexpr variables to have external linkage, like the standard mandates
31 # /Zc:throwingNew - Let codegen assume `operator new` (without std::nothrow) will never return null 31 # /Zc:inline - Let codegen omit inline functions in object files
32 # /Zc:throwingNew - Let codegen assume `operator new` (without std::nothrow) will never return null
32 add_compile_options( 33 add_compile_options(
33 /W3 34 /W3
34 /MP 35 /MP
@@ -37,6 +38,7 @@ if (MSVC)
37 /permissive- 38 /permissive-
38 /EHsc 39 /EHsc
39 /std:c++latest 40 /std:c++latest
41 /Zc:externConstexpr
40 /Zc:inline 42 /Zc:inline
41 /Zc:throwingNew 43 /Zc:throwingNew
42 ) 44 )