瀏覽代碼

Merge commit '837416ef8508c2abda02da8b8c2fe4d1a877e78a' into main

Sam Lantinga 2 年之前
父節點
當前提交
f890f97286
共有 1 個文件被更改,包括 11 次插入2 次删除
  1. 11 2
      CMakeLists.txt

+ 11 - 2
CMakeLists.txt

@@ -551,15 +551,24 @@ if(USE_GCC OR USE_CLANG)
     target_compile_options(sdl-global-options INTERFACE "-fno-strict-aliasing")
   endif()
 
+  # command-line option ‘-Wdeclaration-after-statement’ is valid for C/ObjC but not for C++
   check_c_compiler_flag(-Wdeclaration-after-statement HAVE_GCC_WDECLARATION_AFTER_STATEMENT)
   if(HAVE_GCC_WDECLARATION_AFTER_STATEMENT)
     if(SDL_WERROR)
       check_c_compiler_flag(-Werror=declaration-after-statement HAVE_GCC_WERROR_DECLARATION_AFTER_STATEMENT)
       if(HAVE_GCC_WERROR_DECLARATION_AFTER_STATEMENT)
-        target_compile_options(sdl-global-options INTERFACE "-Werror=declaration-after-statement")
+        if(CMAKE_VERSION VERSION_LESS 3.3)
+          target_compile_options(sdl-global-options INTERFACE "-Werror=declaration-after-statement")
+        else()
+          target_compile_options(sdl-global-options INTERFACE "$<$<OR:$<COMPILE_LANGUAGE:C>,$<COMPILE_LANGUAGE:OBJCC>>:-Werror=declaration-after-statement>")
+        endif()
       endif()
     endif()
-    target_compile_options(sdl-global-options INTERFACE "-Wdeclaration-after-statement")
+    if(CMAKE_VERSION VERSION_LESS 3.3)
+      target_compile_options(sdl-global-options INTERFACE "-Wdeclaration-after-statement")
+    else()
+      target_compile_options(sdl-global-options INTERFACE "$<$<OR:$<COMPILE_LANGUAGE:C>,$<COMPILE_LANGUAGE:OBJC>>:-Wdeclaration-after-statement>")
+    endif()
   endif()
 
   check_c_compiler_flag(-Wdocumentation HAVE_GCC_WDOCUMENTATION)