cmake兩種變數詳解

jacocheung發表於2020-12-24

cmake有兩種變數:normal和cache。參考官網說明, modern cmake

  • normal就是我們普通使用的變數,比如set(VAR "xyz")
  • cache是cmake快取的變數,比如cmake -D定義的變數,通常這些變數會存在CMakeCache.txt裡面,第一次跑cmake的時候會生成這個檔案
  • 兩種變數可以同名,當變數${VAR}展開時,cmake會先嚐試去查詢normal變數,如果沒找到定義則會去使用cache變數裡查詢。
  • 可以使用set(VAR "xyz" CACHE STRINGH "this is a comment of VAR")設定一個Cache變數。注意,這條指令並不會直接將VAR賦值成"xyz",而是去查詢是否已經有名字為VAR的Cache變數,如果已經存在了則不會產生任何影響,如果不存在才會建立這個Cache 變數。如果想要強制將其值設定成"xyz",可以在最後加FORCE引數set(VAR "xyz" CACHE STRINGH "this is a comment of VAR" FORCE)

相關文章