diff --git a/reactos/cmake/gcc.cmake b/reactos/cmake/gcc.cmake index 866e8b7c82f..44f0929a254 100644 --- a/reactos/cmake/gcc.cmake +++ b/reactos/cmake/gcc.cmake @@ -27,7 +27,15 @@ else() endif() # Warnings -add_compile_flags("-Wall -Wno-char-subscripts -Wpointer-arith -Wno-multichar -Wno-error=uninitialized -Wno-unused-value") +add_compile_flags("-Wall -Wno-char-subscripts -Wpointer-arith -Wno-multichar -Wno-unused-value") + +if(GCC_VERSION VERSION_LESS 4.6) + add_compile_flags("-Wno-error=uninitialized") +elseif((GCC_VERSION VERSION_GREATER 4.6 OR GCC_VERSION VERSION_EQUAL 4.6) AND GCC_VERSION VERSION_LESS 4.7) + add_compile_flags("-Wno-error=unused-but-set-variable -Wno-error=uninitialized") +elseif(GCC_VERSION VERSION_EQUAL 4.7 OR GCC_VERSION VERSION_GREATER 4.7) + add_compile_flags("-Wno-error=unused-but-set-variable -Wno-error=maybe-uninitialized -Wno-error=delete-non-virtual-dtor -Wno-error=narrowing") +endif() if(ARCH MATCHES amd64) add_compile_flags("-Wno-format") diff --git a/reactos/toolchain-gcc.cmake b/reactos/toolchain-gcc.cmake index 73713ae5d8e..094ee871387 100644 --- a/reactos/toolchain-gcc.cmake +++ b/reactos/toolchain-gcc.cmake @@ -56,3 +56,6 @@ set(CMAKE_C_STANDARD_LIBRARIES "-lgcc" CACHE STRING "Standard C Libraries") set(CMAKE_CXX_STANDARD_LIBRARIES "" CACHE STRING "Standard C++ Libraries") set(CMAKE_SHARED_LINKER_FLAGS_INIT "-nostdlib -Wl,--enable-auto-image-base,--disable-auto-import") + +# Get GCC version +execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)