| @@ -6,19 +6,45 @@ set ( __PEDANTIC_INCLUDED TRUE ) | |||
| Include (CheckCCompilerFlag) | |||
| Include (CheckCXXCompilerFlag) | |||
| Macro (__PEDANTIC_INVERT_WNO_FLAG VAR_IN VAR_OUT) | |||
| If (${VAR_IN} MATCHES "-Wno") | |||
| String (REPLACE "-Wno-" "-W" ${VAR_OUT} ${VAR_IN}) | |||
| Else () | |||
| Set (${VAR_OUT} ${VAR_IN}) | |||
| EndIf () | |||
| EndMacro () | |||
| Macro (__PEDANTIC_MAKE_UNIQUE_NAME PREFIX FLAG OUTPUT) | |||
| String (REGEX REPLACE "[^0-9a-zA-Z]" "_" TMP_NAME ${FLAG}) | |||
| String (SUBSTRING ${TMP_NAME} 1 -1 TMP_NAME) | |||
| String (TOUPPER ${TMP_NAME} TMP_NAME) | |||
| Set (TMP_NAME "${PREFIX}_${TMP_NAME}") | |||
| Set (${OUTPUT} ${TMP_NAME}) | |||
| EndMacro () | |||
| Macro (__PEDANTIC_CHECK_AND_ADD_C_FLAG FLAG) | |||
| CHECK_C_COMPILER_FLAG(${FLAG} TMP) | |||
| If (TMP) | |||
| __PEDANTIC_MAKE_UNIQUE_NAME("HAVE_C_FLAG" ${FLAG} FLAG_NAME) | |||
| __PEDANTIC_INVERT_WNO_FLAG(${FLAG} TEST_FLAG) | |||
| Set (OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS}) | |||
| Set (CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} ${TEST_FLAG} -Werror") | |||
| CHECK_CXX_COMPILER_FLAG(${TEST_FLAG} ${FLAG_NAME}) | |||
| Set (CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS}) | |||
| If (FLAG_NAME) | |||
| Set (PEDANTIC_C_FLAGS "${PEDANTIC_C_FLAGS} ${FLAG}") | |||
| EndIf ( ) | |||
| EndMacro() | |||
| EndMacro () | |||
| Macro (__PEDANTIC_CHECK_AND_ADD_CXX_FLAG FLAG) | |||
| CHECK_CXX_COMPILER_FLAG(${FLAG} TMP) | |||
| If (TMP) | |||
| __PEDANTIC_MAKE_UNIQUE_NAME("HAVE_CXX_FLAG" ${FLAG} FLAG_NAME) | |||
| __PEDANTIC_INVERT_WNO_FLAG(${FLAG} TEST_FLAG) | |||
| Set (OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS}) | |||
| Set (CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} ${TEST_FLAG} -Werror") | |||
| CHECK_CXX_COMPILER_FLAG(${TEST_FLAG} ${FLAG_NAME}) | |||
| Set (CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS}) | |||
| If (FLAG_NAME) | |||
| Set (PEDANTIC_CXX_FLAGS "${PEDANTIC_CXX_FLAGS} ${FLAG}") | |||
| EndIf ( ) | |||
| EndMacro() | |||
| EndMacro ( ) | |||
| Set (PEDANTIC_C_FLAGS "") | |||
| Set (PEDANTIC_CXX_FLAGS "") | |||
| @@ -45,6 +71,7 @@ __PEDANTIC_CHECK_AND_ADD_C_FLAG(-Wold-style-definition) | |||
| __PEDANTIC_CHECK_AND_ADD_C_FLAG(-Woverlength-strings) | |||
| __PEDANTIC_CHECK_AND_ADD_C_FLAG(-Wshadow) | |||
| __PEDANTIC_CHECK_AND_ADD_C_FLAG(-Wwrite-strings) | |||
| __PEDANTIC_CHECK_AND_ADD_C_FLAG(-Wdocumentation) | |||
| __PEDANTIC_CHECK_AND_ADD_CXX_FLAG(-ftemplate-depth=2000) | |||
| __PEDANTIC_CHECK_AND_ADD_CXX_FLAG(-g) | |||
| @@ -66,4 +93,5 @@ __PEDANTIC_CHECK_AND_ADD_CXX_FLAG(-Wno-pragmas) | |||
| __PEDANTIC_CHECK_AND_ADD_CXX_FLAG(-Wno-unknown-pragmas) | |||
| __PEDANTIC_CHECK_AND_ADD_CXX_FLAG(-Woverlength-strings) | |||
| __PEDANTIC_CHECK_AND_ADD_CXX_FLAG(-Wshadow) | |||
| __PEDANTIC_CHECK_AND_ADD_CXX_FLAG(-Wwrite-strings) | |||
| __PEDANTIC_CHECK_AND_ADD_CXX_FLAG(-Wwrite-strings) | |||
| __PEDANTIC_CHECK_AND_ADD_CXX_FLAG(-Wdocumentation) | |||