cmake: command-line option ‘-Wdeclaration-after-statement’ is valid for C/ObjC but not for C++

This commit is contained in:
Anonymous Maarten 2023-01-09 18:02:40 +01:00 committed by Anonymous Maarten
parent aa7fdd6624
commit 837416ef85
1 changed files with 11 additions and 2 deletions

View File

@ -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)