cmake-gui:建立可選列表ComboBoxes
阿新 • • 發佈:2018-11-01
就像一般的程式設計一樣,在設計cmake指令碼時有時我們希望一個變數的值限定在一個範圍內。如下圖,cmake-gui中使用者可以選擇輸出日誌的級別,肯定我們不希望使用者亂輸一氣。
這時就要用到CACHE 的屬性STRINGS
# 日誌輸出級別 set(LOG_LEVEL FL_LOG_DEBUG CACHE STRING "application log level") # 設定CACHE 的屬性STRINGS,指定LOG_LEVEL 可選的值範圍 set_property(CACHE LOG_LEVEL PROPERTY STRINGS FL_LOG_NO FL_LOG_ERROR FL_LOG_WARN FL_LOG_INFO FL_LOG_DEBUG)
關於CACHE 的屬性STRINGS參見cmake官方手冊說明:《Property of CACHE : STRINGS》,如下圖
注意根據手冊說明,cmake並不限定使用者提供的值必須在STRINGS的範圍,這個屬性只是用來在cmake-gui介面中提供輸入提示。如果在命令列執行cmake -DLOG_LEVEL=HELLO
為LOG_LEVEL 指定任意值,cmake不會報錯。