Browse Source

cmake: build SDL with /W3 on MSVC

The Visual Studio projects also did this.
Anonymous Maarten 8 months ago
parent
commit
6e6c2b8e7d
2 changed files with 9 additions and 0 deletions
  1. 1 0
      cmake/PreseedMSVCCache.cmake
  2. 8 0
      cmake/sdlcompilers.cmake

+ 1 - 0
cmake/PreseedMSVCCache.cmake

@@ -1,5 +1,6 @@
 if(MSVC)
   function(SDL_Preseed_CMakeCache)
+    set(COMPILER_SUPPORTS_W3                             "1"   CACHE INTERNAL "Test /W3")
     set(COMPILER_SUPPORTS_FDIAGNOSTICS_COLOR_ALWAYS      ""    CACHE INTERNAL "Test COMPILER_SUPPORTS_FDIAGNOSTICS_COLOR_ALWAYS")
     set(HAVE_ALLOCA_H                                    ""    CACHE INTERNAL "Have include alloca.h")
     set(HAVE_AUDIOCLIENT_H                               "1"   CACHE INTERNAL "Have include audioclient.h")

+ 8 - 0
cmake/sdlcompilers.cmake

@@ -30,6 +30,14 @@ function(SDL_AddCommonCompilerFlags TARGET)
   option(SDL_WERROR "Enable -Werror" OFF)
 
   get_property(TARGET_TYPE TARGET "${TARGET}" PROPERTY TYPE)
+  if(MSVC)
+    cmake_push_check_state()
+    check_c_compiler_flag("/W3" COMPILER_SUPPORTS_W3)
+    if(COMPILER_SUPPORTS_W3)
+      target_compile_options(${TARGET} PRIVATE "/W3")
+    endif()
+    cmake_pop_check_state()
+  endif()
 
   if(USE_GCC OR USE_CLANG OR USE_INTELCC OR USE_QCC)
     if(MINGW)