소스 검색

* Fixed pedantic compiler flags

master
Erik Junghanns 5 년 전
부모
커밋
9a495487c9
1개의 변경된 파일35개의 추가작업 그리고 7개의 파일을 삭제
  1. +35
    -7
      pedantic.cmake

+ 35
- 7
pedantic.cmake 파일 보기

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

불러오는 중...
취소
저장