From 1e6cefa86d3452754d34a2f2a2d1fecdee324bca Mon Sep 17 00:00:00 2001 From: Dmitry Marakasov Date: Thu, 17 Sep 2015 15:18:56 +0300 Subject: [PATCH] Add macro to check and enable C++ flag, add some clang warnings --- CMakeLists.txt | 5 +++++ cmake/EnableCXXFlagIfSupported.cmake | 14 ++++++++++++++ tests/CMakeLists.txt | 7 ++----- 3 files changed, 21 insertions(+), 5 deletions(-) create mode 100644 cmake/EnableCXXFlagIfSupported.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index a705604..65a2f1b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -64,6 +64,11 @@ IF(MSVC) ELSE(MSVC) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=${SDL2PP_CXXSTD} -Wall -Wextra -pedantic") SET(WERROR_FLAG "-Werror") + + INCLUDE(EnableCXXFlagIfSupported) + ENABLE_CXX_FLAG_IF_SUPPORTED(-Wmissing-prototypes) + ENABLE_CXX_FLAG_IF_SUPPORTED(-Wtautological-compare) + ENABLE_CXX_FLAG_IF_SUPPORTED(-Wshorten-64-to-32) ENDIF(MSVC) LIST(REMOVE_DUPLICATES SDL2_ALL_INCLUDE_DIRS) diff --git a/cmake/EnableCXXFlagIfSupported.cmake b/cmake/EnableCXXFlagIfSupported.cmake new file mode 100644 index 0000000..fb37aed --- /dev/null +++ b/cmake/EnableCXXFlagIfSupported.cmake @@ -0,0 +1,14 @@ +INCLUDE(CheckCXXCompilerFlag) + +MACRO(ENABLE_CXX_FLAG_IF_SUPPORTED FLAG) + UNSET(HAS_FLAG CACHE) + SET(CMAKE_REQUIRED_QUIET YES) + CHECK_CXX_COMPILER_FLAG(${FLAG} HAS_FLAG) + SET(CMAKE_REQUIRED_QUIET NO) + IF(HAS_FLAG) + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLAG}") + MESSAGE(STATUS "Checking for ${FLAG}: yes") + ELSE(HAS_FLAG) + MESSAGE(STATUS "Checking for ${FLAG}: no") + ENDIF(HAS_FLAG) +ENDMACRO(ENABLE_CXX_FLAG_IF_SUPPORTED) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 0d4ef8c..b2d2831 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -17,11 +17,8 @@ IF(SDL2PP_WITH_MIXER) ENDIF(SDL2PP_WITH_MIXER) # disable self-move warning: it's deliberately used in tests -INCLUDE(CheckCXXCompilerFlag) -CHECK_CXX_COMPILER_FLAG("-Wno-self-move" COMPILER_SUPPORTS_WNOSELFMOVE) -IF(COMPILER_SUPPORTS_WNOSELFMOVE) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-self-move") -ENDIF(COMPILER_SUPPORTS_WNOSELFMOVE) +INCLUDE(EnableCXXFlagIfSupported) +ENABLE_CXX_FLAG_IF_SUPPORTED(-Wno-self-move) ADD_DEFINITIONS(-DTESTDATA_DIR="${PROJECT_SOURCE_DIR}/testdata")