Add macro to check and enable C++ flag, add some clang warnings

This commit is contained in:
Dmitry Marakasov 2015-09-17 15:18:56 +03:00
parent 472fae1311
commit 1e6cefa86d
3 changed files with 21 additions and 5 deletions

View File

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

View File

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

View File

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