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