summaryrefslogtreecommitdiff
path: root/src/CMakeLists.txt
diff options
context:
space:
mode:
authorMorph <39850852+Morph1984@users.noreply.github.com>2023-06-06 20:19:44 -0400
committerMorph <39850852+Morph1984@users.noreply.github.com>2023-06-06 20:20:09 -0400
commitf62f43c0dae041b1a7dd282d3f1c055fa7038649 (patch)
tree1b5469eb2a1bf536d4fa3ab061cf4a205cabbc51 /src/CMakeLists.txt
parent238e46ec9339e1f4e8b3fb565b2c8679f14a47ff (diff)
CMakeLists: Force C++20 on MSVC due to conflicts with C++23 modules
The latest version of MSVC STL brings C++23 standard library modules, which conflict with precompiled headers. Disabling with /experimental:module- has no effect, so force C++20 in the meantime while we wait for module support in other compilers.
Diffstat (limited to 'src/CMakeLists.txt')
-rw-r--r--src/CMakeLists.txt6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 55b113297..0696201df 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -43,7 +43,7 @@ if (MSVC)
/Zo
/permissive-
/EHsc
- /std:c++latest
+ /std:c++20
/utf-8
/volatile:iso
/Zc:externConstexpr
@@ -51,8 +51,10 @@ if (MSVC)
/Zc:throwingNew
/GT
+ # Modules
+ /experimental:module- # Disable module support explicitly due to conflicts with precompiled headers
+
# External headers diagnostics
- /experimental:external # Enables the external headers options. This option isn't required in Visual Studio 2019 version 16.10 and later
/external:anglebrackets # Treats all headers included by #include <header>, where the header file is enclosed in angle brackets (< >), as external headers
/external:W0 # Sets the default warning level to 0 for external headers, effectively turning off warnings for external headers