CMAKE কে ত্রুটি উত্পন্ন করার কারণ দিন


136

একটি বিশেষ শর্তে ত্রুটি উত্পন্ন করার জন্য আমি কীভাবে সিএমএকেই পেতে পারি। এটি, আমি এই জাতীয় কিছু চাই:

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

উত্তর:


185

message()পদ্ধতি মোডের জন্য একটি ঐচ্ছিক যুক্তি আছে, যার ফলে STATUS, WARNING, AUTHOR_WARNING, SEND_ERROR, এবং FATAL_ERRORSTATUSবার্তা stdout যান। মেসেজের অন্যান্য সমস্ত মোড, কোনওটিই সহ স্ট্যাডারে যায় না।

আপনি SEND_ERRORযদি কোনও ত্রুটি আউটপুট করতে চান তবে আপনি চান তবে প্রক্রিয়া চালিয়ে যান। আপনি চাইলে FATAL_ERRORসিএমকে প্রসেসিং থেকে বেরিয়ে আসতে চান।

কিছুটা এইরকম:

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
হেক একটি AUTHOR_WARNINGকি?
অ্যালেক্সিস উইল্কে

1
@ অ্যালেক্সিসওয়িল্ক: সিএমকে ডক্স জানিয়েছে AUTHOR_WARNING = CMake Warning (dev), continue processingযে এটি সিএমকে স্ক্রিপ্টগুলি ডিবাগ করার জন্য ব্যবহার করা উচিত। শুধু একটি বন্য অনুমান।
pauluss86

5
@ অ্যালেক্সিসওয়িল্ক দি AUTHOR_WARNINGএমন একটি সতর্কতা নির্দেশ করে যা শেষ ব্যবহারকারীর জন্য নয় তবে বিকাশকারীদের পক্ষে কার্যকর। এটি হয় তাদের কিছু হ্যাক / টোডো ঠিক করার জন্য স্মরণ করিয়ে দিতে পারে বা সতর্কতাগুলি নির্দেশ করতে পারে যা স্থির করা উচিত তবে ব্যবহারকারীর জন্য সিএমকে চালানো প্রভাবিত করে না। ব্যবহারকারী কেন এই সতর্কতাগুলি দিয়ে দমন করতে পারেন তা স্থির করে --Wno-dev
usr1234567

2
CMake এখন অনেক যে সংসর্গে আরো বার্তা মোড message()সহ VERBOSE, DEBUGএবং TRACE
স্কয়ারস্কিটলস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.