ฉันจะให้ 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_ERRORSTATUS
คุณต้องการ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อะไร?