Làm cách nào tôi có thể nhận được CMAKE để tạo ra lỗi trong một điều kiện cụ thể. Đó là, tôi muốn một cái gì đó như thế này:
if( SOME_COND )
error( "You can't do that" )
endif()
Làm cách nào tôi có thể nhận được CMAKE để tạo ra lỗi trong một điều kiện cụ thể. Đó là, tôi muốn một cái gì đó như thế này:
if( SOME_COND )
error( "You can't do that" )
endif()
Câu trả lời:
Các message()
phương pháp có một đối số tùy chọn cho chế độ, cho phép STATUS
, WARNING
, AUTHOR_WARNING
, SEND_ERROR
, và FATAL_ERROR
. STATUS
tin nhắn đi đến stdout. Mọi chế độ khác của tin nhắn, kể cả không có, đi đến stderr.
Bạn muốn SEND_ERROR
nếu bạn muốn xuất một lỗi, nhưng tiếp tục xử lý. Bạn muốn FATAL_ERROR
nếu bạn muốn thoát khỏi xử lý CMake.
Cái gì đó như:
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
, gợi ý rằng nó sẽ được sử dụng để gỡ lỗi các tập lệnh CMake. Chỉ là một phỏng đoán hoang dã.
AUTHOR_WARNING
hiệu cảnh báo không hữu ích cho người dùng cuối mà là cho các nhà phát triển. Nó có thể nhắc nhở họ sửa một số hack / todos hoặc chỉ ra các cảnh báo cần được sửa nhưng không ảnh hưởng đến việc chạy CMake cho người dùng. Đó là lý do tại sao người dùng có thể ngăn chặn những cảnh báo này với--Wno-dev
.
AUTHOR_WARNING
gì thế này?