diff --git a/CMakeLists.txt b/CMakeLists.txt index ca0efe7072..0e0bf0e05e 100644 --- a/CMakeLists.txt +++ b/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 "$<$,$>:-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 "$<$,$>:-Wdeclaration-after-statement>") + endif() endif() check_c_compiler_flag(-Wdocumentation HAVE_GCC_WDOCUMENTATION)