CMAKE'nin bir hata oluşturmasına neden olun


136

Belirli bir koşulda bir hata oluşturmak için CMAKE'yi nasıl alabilirim? Yani, böyle bir şey istiyorum:

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

Yanıtlar:


185

message()Yöntem modu için isteğe bağlı bir argüman, izin STATUS, WARNING, AUTHOR_WARNING, SEND_ERROR, ve FATAL_ERROR. STATUSmesajlar stdout'a gider. Hiçbiri dahil olmak üzere diğer her mesaj modu stderr'e gider.

Sen istiyorsun SEND_ERRORsen çıkışına bir hata istiyorum, ama işleme devam edersek. Sen istiyorsun FATAL_ERRORsen CKağıt işlemeyi çıkmak istiyorum.

Gibi bir şey:

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
Ne halt bir AUTHOR_WARNING?
Alexis Wilke

1
@AlexisWilke: CMake belgelerinin durumu AUTHOR_WARNING = CMake Warning (dev), continue processing, CMake komut dosyalarında hata ayıklamak için kullanılması gerektiğini gösterir. Sadece vahşi bir tahmin.
pauluss86

5
@AlexisWilke Bu AUTHOR_WARNING, son kullanıcı için değil, geliştiriciler için yararlı bir uyarıyı belirtir. Bazı hack / todos'ları düzeltmelerini hatırlatabilir veya düzeltilmesi gereken ancak kullanıcı için CMake çalıştırmasını etkilemeyen uyarıları gösterebilir. Bu yüzden kullanıcı bu uyarıları engelleyebilir --Wno-dev.
usr1234567

2
CKağıt şimdi sahip birçok eşlik fazla mesaj modları message()dahil VERBOSE, DEBUGve TRACE.
squareskittles
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.