ฉันจะให้ CMAKE สร้างข้อผิดพลาดในเงื่อนไขเฉพาะได้อย่างไร นั่นคือฉันต้องการสิ่งนี้:
if( SOME_COND )
error( "You can't do that" )
endif()
ฉันจะให้ CMAKE สร้างข้อผิดพลาดในเงื่อนไขเฉพาะได้อย่างไร นั่นคือฉันต้องการสิ่งนี้:
if( SOME_COND )
error( "You can't do that" )
endif()
คำตอบ:
message()
วิธีมีข้อโต้แย้งทางเลือกสำหรับโหมดที่ช่วยให้STATUS
, WARNING
, AUTHOR_WARNING
, และSEND_ERROR
ข้อความไปที่ stdout ทุกโหมดข้อความอื่น ๆ รวมถึงไม่มีจะไปที่ stderrFATAL_ERROR
STATUS
คุณต้องการSEND_ERROR
ถ้าคุณต้องการส่งออกข้อผิดพลาด แต่ดำเนินการต่อ คุณต้องการFATAL_ERROR
ถ้าคุณต้องการออกจากการประมวลผล CMake
สิ่งที่ต้องการ:
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
ซึ่งแนะนำว่าจะใช้สำหรับการดีบักสคริปต์ CMake เพียงแค่เดาป่า
AUTHOR_WARNING
บ่งบอกถึงคำเตือนที่ไม่มีประโยชน์สำหรับผู้ใช้ปลายทาง แต่สำหรับนักพัฒนา สามารถเตือนพวกเขาให้แก้ไขการแฮ็ก / สิ่งที่ต้องทำหรือระบุคำเตือนที่ควรได้รับการแก้ไข แต่ไม่มีผลต่อการรัน CMake สำหรับผู้ใช้ Thats --Wno-dev
ทำไมผู้ใช้สามารถปราบปรามคำเตือนเหล่านี้ด้วย
AUTHOR_WARNING
อะไร?