1. 程式人生 > >cmake-gui:建立可選列表ComboBoxes

cmake-gui:建立可選列表ComboBoxes

就像一般的程式設計一樣,在設計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不會報錯。

參考資料

《Constraining Values with ComboBoxes in CMake (cmake-gui)》