source_group

定義在 IDE 專案產生中原始碼檔案的分組。有兩種不同的簽名方式來建立原始碼群組。

source_group(<name> [FILES <src>...] [REGULAR_EXPRESSION <regex>])
source_group(TREE <root> [PREFIX <prefix>] [FILES <src>...])

定義一個群組,原始碼將被放置在專案檔案中。這旨在於在 Visual Studio 中設定檔案標籤頁。群組的作用範圍限定在命令被呼叫的目錄中,並適用於在該目錄中建立的目標原始碼。

選項為:

TREE

在版本 3.8 中新增。

CMake 將從 <src> 檔案路徑自動偵測它需要建立的原始碼群組,以保持原始碼群組的結構與專案中實際的檔案和目錄結構類似。 <src> 檔案的路徑將被截斷為相對於 <root>。如果 src 內的路徑不是以 root 開頭,則命令將會失敗。

PREFIX

在版本 3.8 中新增。

原始碼群組和直接位於 <root> 路徑中的檔案,將被放置在 <prefix> 原始碼群組中。

FILES

任何明確指定的原始碼檔案都將被放置在 <name> 群組中。相對路徑是相對於目前的原始碼目錄來解釋。

REGULAR_EXPRESSION

任何名稱與正規表示式相符的原始碼檔案都將被放置在 <name> 群組中。

如果一個原始碼檔案符合多個群組,則 *最後一個* 使用 FILES 明確列出該檔案的群組將會被優先選用(如果有的話)。如果沒有群組明確列出該檔案,則 *最後一個* 正規表示式與該檔案相符的群組將會被優先選用。

群組的 <name><prefix> 參數可以包含正斜線或反斜線來指定子群組。反斜線需要適當地跳脫字元。

source_group(base/subdir ...)
source_group(outer\\inner ...)
source_group(TREE <root> PREFIX sources\\inc ...)

在版本 3.18 中新增:允許使用正斜線 (/) 來指定子群組。

為了向後相容性,簡寫簽名方式

source_group(<name> <regex>)

等同於

source_group(<name> REGULAR_EXPRESSION <regex>)