mirror of
				https://git.suyu.dev/suyu/suyu.git
				synced 2025-10-31 23:06:43 +08:00 
			
		
		
		
	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.
This commit is contained in:
		
							parent
							
								
									238e46ec93
								
							
						
					
					
						commit
						f62f43c0da
					
				| @ -255,7 +255,7 @@ endif() | |||||||
| # boost asio's concept usage doesn't play nicely with some compilers yet. | # boost asio's concept usage doesn't play nicely with some compilers yet. | ||||||
| add_definitions(-DBOOST_ASIO_DISABLE_CONCEPTS) | add_definitions(-DBOOST_ASIO_DISABLE_CONCEPTS) | ||||||
| if (MSVC) | if (MSVC) | ||||||
|     add_compile_options($<$<COMPILE_LANGUAGE:CXX>:/std:c++latest>) |     add_compile_options($<$<COMPILE_LANGUAGE:CXX>:/std:c++20>) | ||||||
| 
 | 
 | ||||||
|     # boost still makes use of deprecated result_of. |     # boost still makes use of deprecated result_of. | ||||||
|     add_definitions(-D_HAS_DEPRECATED_RESULT_OF) |     add_definitions(-D_HAS_DEPRECATED_RESULT_OF) | ||||||
|  | |||||||
| @ -43,7 +43,7 @@ if (MSVC) | |||||||
|         /Zo |         /Zo | ||||||
|         /permissive- |         /permissive- | ||||||
|         /EHsc |         /EHsc | ||||||
|         /std:c++latest |         /std:c++20 | ||||||
|         /utf-8 |         /utf-8 | ||||||
|         /volatile:iso |         /volatile:iso | ||||||
|         /Zc:externConstexpr |         /Zc:externConstexpr | ||||||
| @ -51,8 +51,10 @@ if (MSVC) | |||||||
|         /Zc:throwingNew |         /Zc:throwingNew | ||||||
|         /GT |         /GT | ||||||
| 
 | 
 | ||||||
|  |         # Modules | ||||||
|  |         /experimental:module- # Disable module support explicitly due to conflicts with precompiled headers | ||||||
|  | 
 | ||||||
|         # External headers diagnostics |         # 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: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 |         /external:W0            # Sets the default warning level to 0 for external headers, effectively turning off warnings for external headers | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user