CMAKE가 오류를 발생시키는 원인


136

CMAKE가 특정 조건에서 오류를 생성하도록하려면 어떻게해야합니까? 즉, 나는 다음과 같은 것을 원합니다 :

if( SOME_COND )
  error( "You can't do that" )
endif()

답변:


185

message()방법은 모드에 대한 선택적 인수를 가지고, 수 STATUS, WARNING, AUTHOR_WARNING, SEND_ERROR,와 FATAL_ERROR. STATUS메시지는 stdout으로 이동합니다. 없음을 포함한 다른 모든 메시지 모드는 stderr로 이동합니다.

SEND_ERROR오류를 출력 하려는 경우 처리를 계속하십시오. FATAL_ERRORCMake 처리를 종료 하려는 경우에 필요합니다.

다음과 같은 것 :

if( SOME_COND )
  message( SEND_ERROR "You can't do that" )
elseif( SOME_CRITICAL_COND )
  message( FATAL_ERROR "You can not do this at all, CMake will exit." )
endif()

1
도대체 무엇입니까 AUTHOR_WARNING?
Alexis Wilke

1
@AlexisWilke : CMake 문서 상태 AUTHOR_WARNING = CMake Warning (dev), continue processing는 CMake 스크립트 디버깅에 사용되도록 제안합니다. 그냥 거친 추측입니다.
pauluss86

5
@AlexisWilke AUTHOR_WARNING최종 사용자에게 유용하지 않지만 개발자에게 유용한 경고를 나타냅니다. 해킹 / 할 일을 수정하도록 상기 시키거나 수정해야하지만 사용자의 CMake 실행에는 영향을 미치지 않는 경고를 나타낼 수 있습니다. 그렇기 때문에 사용자는이 경고를 표시하지 않을 수 있습니다 --Wno-dev.
usr1234567

2
CMake는 지금이 많은 함께 많은 메시지 모드 message()를 포함하여, VERBOSE, DEBUG,와 TRACE.
squareskittles
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.