From 8a0ab2de48f41edf66a855dbc856fcf14c7446d9 Mon Sep 17 00:00:00 2001 From: Andy Green Date: Wed, 15 May 2019 07:27:18 +0100 Subject: [PATCH] cmake: probe gcc flags capability old gcc doesn't have some of the extended warning flags we want to apply... use cmake to confirm the gcc has them before trying to use them. --- CMakeLists.txt | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 15a0f9765..e70522e35 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1369,10 +1369,21 @@ if (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR (CMAKE_C_COMPILER_ID message("Enabling ASAN") endif() + check_c_compiler_flag("-Wignored-qualifiers" LWS_GCC_HAS_IGNORED_QUALIFIERS) + check_c_compiler_flag("-Wtype-limits" LWS_GCC_HAS_TYPE_LIMITS) + + if (LWS_GCC_HAS_IGNORED_QUALIFIERS) + set(CMAKE_C_FLAGS "-Wignored-qualifiers ${CMAKE_C_FLAGS}" ) + endif() + + if (LWS_GCC_HAS_TYPE_LIMITS) + set(CMAKE_C_FLAGS "-Wtype-limits ${CMAKE_C_FLAGS}" ) + endif() + if (UNIX AND NOT LWS_WITH_ESP32) - set(CMAKE_C_FLAGS "-Wall -Wsign-compare -Wignored-qualifiers -Wtype-limits -Wuninitialized -Werror ${VISIBILITY_FLAG} -Wundef ${GCOV_FLAGS} ${CMAKE_C_FLAGS} ${ASAN_FLAGS}" ) + set(CMAKE_C_FLAGS "-Wall -Wsign-compare -Wuninitialized -Werror ${VISIBILITY_FLAG} -Wundef ${GCOV_FLAGS} ${CMAKE_C_FLAGS} ${ASAN_FLAGS}" ) else() - set(CMAKE_C_FLAGS "-Wall -Wsign-compare -Wignored-qualifiers -Wtype-limits -Wuninitialized -Werror ${VISIBILITY_FLAG} ${GCOV_FLAGS} ${CMAKE_C_FLAGS}" ) + set(CMAKE_C_FLAGS "-Wall -Wsign-compare -Wuninitialized -Werror ${VISIBILITY_FLAG} ${GCOV_FLAGS} ${CMAKE_C_FLAGS}" ) endif() endif ()