Bagaimana cara membuat CMAKE menghasilkan kesalahan pada kondisi tertentu. Artinya, saya menginginkan yang seperti ini:
if( SOME_COND )
error( "You can't do that" )
endif()
Bagaimana cara membuat CMAKE menghasilkan kesalahan pada kondisi tertentu. Artinya, saya menginginkan yang seperti ini:
if( SOME_COND )
error( "You can't do that" )
endif()
Jawaban:
The message()
metode memiliki argumen opsional untuk mode, yang memungkinkan STATUS
, WARNING
, AUTHOR_WARNING
, SEND_ERROR
, dan FATAL_ERROR
. STATUS
pesan pergi ke stdout. Setiap mode pesan lainnya, termasuk tidak ada, masuk ke stderr.
Anda ingin SEND_ERROR
jika Anda ingin menampilkan kesalahan, tetapi terus memproses. Anda ingin FATAL_ERROR
jika Anda ingin keluar dari pemrosesan CMake.
Sesuatu seperti:
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()
AUTHOR_WARNING = CMake Warning (dev), continue processing
, menyarankan agar digunakan untuk men-debug skrip CMake. Hanya tebakan liar.
AUTHOR_WARNING
Menunjukkan peringatan yang tidak berguna bagi pengguna akhir tetapi bagi pengembang. Itu dapat mengingatkan mereka untuk memperbaiki beberapa hack / todos atau menunjukkan peringatan yang harus diperbaiki tetapi tidak mempengaruhi CMake yang dijalankan untuk pengguna. Itulah mengapa pengguna dapat menyembunyikan peringatan ini dengan --Wno-dev
.
message()
, termasuk VERBOSE
, DEBUG
, dan TRACE
.
AUTHOR_WARNING
?