有沒有辦法讓一個特定的目標即使find_package失敗也能構建?例如,我有一個只編譯代碼檔案的目標,自然沒有硬性要求/依賴項,但如果缺少依賴項,cmake 甚至不會完成配置。
uj5u.com熱心網友回復:
您是否閱讀過這部分檔案:
find_package — CMake 3.23.0-rc2 檔案
無論使用何種模式,
<PackageName>_FOUND都會設定一個變數來指示是否找到了包。當找到包時,可以通過包本身記錄的其他變數和匯入的目標來提供包特定的資訊。該QUIET選項禁用資訊性訊息,包括那些指示如果不是,則無法找到包的訊息REQUIRED。REQUIRED如果找不到包,該選項將停止處理并顯示錯誤訊息。
COMPONENTS可以在關鍵字之后列出所需組件的特定于包的串列。如果不能滿足這些組件中的任何一個,則認為未找到整個包。如果該REQUIRED選項也存在,則將其視為致命錯誤,否則仍會繼續執行。作為一種簡寫形式,如果該REQUIRED選項存在,則COMPONENTS可以省略關鍵字,并且可以在 之后直接列出所需的組件REQUIRED。后面可能會列出其他可選組件
OPTIONAL_COMPONENTS。如果這些都不能滿足,只要滿足所有必需的組件,仍然可以認為整個包都找到了。
注意關鍵詞: QUIET REQUIRED OPTIONAL_COMPONENTS
您可以通過使用來警告您的 cmake 代碼的行為<PackageName>_FOUND來處理故障。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/436777.html
