| @@ -6,19 +6,45 @@ set ( __PEDANTIC_INCLUDED TRUE ) | |||||
| Include (CheckCCompilerFlag) | Include (CheckCCompilerFlag) | ||||
| Include (CheckCXXCompilerFlag) | 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) | 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}") | Set (PEDANTIC_C_FLAGS "${PEDANTIC_C_FLAGS} ${FLAG}") | ||||
| EndIf ( ) | EndIf ( ) | ||||
| EndMacro() | |||||
| EndMacro () | |||||
| Macro (__PEDANTIC_CHECK_AND_ADD_CXX_FLAG FLAG) | 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}") | Set (PEDANTIC_CXX_FLAGS "${PEDANTIC_CXX_FLAGS} ${FLAG}") | ||||
| EndIf ( ) | EndIf ( ) | ||||
| EndMacro() | |||||
| EndMacro ( ) | |||||
| Set (PEDANTIC_C_FLAGS "") | Set (PEDANTIC_C_FLAGS "") | ||||
| Set (PEDANTIC_CXX_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(-Woverlength-strings) | ||||
| __PEDANTIC_CHECK_AND_ADD_C_FLAG(-Wshadow) | __PEDANTIC_CHECK_AND_ADD_C_FLAG(-Wshadow) | ||||
| __PEDANTIC_CHECK_AND_ADD_C_FLAG(-Wwrite-strings) | __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(-ftemplate-depth=2000) | ||||
| __PEDANTIC_CHECK_AND_ADD_CXX_FLAG(-g) | __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(-Wno-unknown-pragmas) | ||||
| __PEDANTIC_CHECK_AND_ADD_CXX_FLAG(-Woverlength-strings) | __PEDANTIC_CHECK_AND_ADD_CXX_FLAG(-Woverlength-strings) | ||||
| __PEDANTIC_CHECK_AND_ADD_CXX_FLAG(-Wshadow) | __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) | |||||