From 1c3f594087a54966b525ecb6a73031a05608632b Mon Sep 17 00:00:00 2001 From: JosJuice Date: Wed, 3 Mar 2021 23:44:35 +0100 Subject: [PATCH 1/2] CMake: Build with -std:c++latest for MSVC Making CMake match MSBuild in this aspect will hopefully reduce how often we accidentally break the MSVC CMake build. --- Source/CMakeLists.txt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index 61b3695cfe..3f0afcaf34 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -16,7 +16,13 @@ if(CMAKE_SYSTEM_NAME MATCHES "Windows") add_definitions(-D_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING) endif() -set(CMAKE_CXX_STANDARD 17) +if (MSVC) + set(CMAKE_CXX_STANDARD 20) + set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "-std:c++latest") +else() + set(CMAKE_CXX_STANDARD 17) +endif() + set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) From 0cb71d3f47bc1e87048a91e7a421bb0296fa3536 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Thu, 4 Mar 2021 09:29:30 +0100 Subject: [PATCH 2/2] CMake: Disable warning C5054 on DolphinQt Same as 33c0abd. Also removing -D_SILENCE_CXX17_RESULT_OF_DEPRECATION_WARNING to match MSBuild. Qt is no longer triggering that warning. --- Source/Core/DolphinQt/CMakeLists.txt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Source/Core/DolphinQt/CMakeLists.txt b/Source/Core/DolphinQt/CMakeLists.txt index 2cb3397e33..ad248b320d 100644 --- a/Source/Core/DolphinQt/CMakeLists.txt +++ b/Source/Core/DolphinQt/CMakeLists.txt @@ -347,6 +347,13 @@ if (WIN32) ) endif() +if (MSVC) + # Disable some warnings + + # 5054: operator '+': deprecated between enumerations of different types (in Qt headers) + target_compile_options(dolphin-emu PRIVATE /wd5054) +endif() + if(WIN32) target_sources(dolphin-emu PRIVATE DolphinQt.manifest DolphinQt.rc) @@ -356,8 +363,6 @@ if(WIN32) WIN32_EXECUTABLE TRUE ) - target_compile_options(dolphin-emu PRIVATE "-D_SILENCE_CXX17_RESULT_OF_DEPRECATION_WARNING") - # Copy Sys dir add_custom_command(TARGET dolphin-emu POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_SOURCE_DIR}/Data/Sys" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/Sys"