CMakeGraphVizOptions¶
CMake 內建的 Graphviz 支援。
產生 Graphviz 檔案¶
CMake 可以產生 Graphviz 檔案,顯示專案中目標之間的相依性,以及連結的外部函式庫。
當使用 --graphviz=foo.dot
選項執行 CMake 時,它會產生
一個
foo.dot
檔案,顯示專案中的所有相依性每個目標一個
foo.dot.<target>
檔案,顯示它依賴的其他目標每個目標一個
foo.dot.<target>.dependers
檔案,顯示哪些其他目標依賴它
這些 .dot 檔案可以使用 Graphviz 套件中的 dot 命令轉換為圖像
dot -Tpng -o foo.png foo.dot
Added in version 3.10: 不同的相依性類型 PUBLIC
、INTERFACE
和 PRIVATE
以實線、虛線和點線邊緣表示。
Graphviz 支援的特定變數¶
產生的圖可能非常龐大。可以使用 CMakeGraphVizOptions.cmake
檔案控制產生圖的外觀和內容。此檔案首先在 CMAKE_BINARY_DIR
中搜尋,然後在 CMAKE_SOURCE_DIR
中搜尋。如果找到,則使用其中設定的變數來調整產生 Graphviz 檔案的選項。
- GRAPHVIZ_GRAPH_NAME¶
圖的名稱。
必要性:否
預設值:
CMAKE_PROJECT_NAME
的值
- GRAPHVIZ_GRAPH_HEADER¶
寫在 Graphviz 檔案頂部的標頭。
必要性:否
預設值:"node [ fontsize = "12" ];"
- GRAPHVIZ_NODE_PREFIX¶
Graphviz 檔案中每個節點的前綴。
必要性:否
預設值:"node"
- GRAPHVIZ_EXECUTABLES¶
設定為 FALSE 以從產生的圖中排除執行檔。
必要性:否
預設值:TRUE
- GRAPHVIZ_STATIC_LIBS¶
設定為 FALSE 以從產生的圖中排除靜態函式庫。
必要性:否
預設值:TRUE
- GRAPHVIZ_SHARED_LIBS¶
設定為 FALSE 以從產生的圖中排除共享函式庫。
必要性:否
預設值:TRUE
- GRAPHVIZ_MODULE_LIBS¶
設定為 FALSE 以從產生的圖中排除模組函式庫。
必要性:否
預設值:TRUE
- GRAPHVIZ_INTERFACE_LIBS¶
設定為 FALSE 以從產生的圖中排除介面函式庫。
必要性:否
預設值:TRUE
- GRAPHVIZ_OBJECT_LIBS¶
設定為 FALSE 以從產生的圖中排除物件函式庫。
必要性:否
預設值:TRUE
- GRAPHVIZ_UNKNOWN_LIBS¶
設定為 FALSE 以從產生的圖中排除未知函式庫。
必要性:否
預設值:TRUE
- GRAPHVIZ_EXTERNAL_LIBS¶
設定為 FALSE 以從產生的圖中排除外部函式庫。
必要性:否
預設值:TRUE
- GRAPHVIZ_CUSTOM_TARGETS¶
設定為 TRUE 以在產生的圖中包含自訂目標。
必要性:否
預設值:FALSE
- GRAPHVIZ_IGNORE_TARGETS¶
要從產生的圖中排除的目標名稱的正規表示式清單。
必要性:否
預設值:空
- GRAPHVIZ_GENERATE_PER_TARGET¶
設定為 FALSE 以不產生每個目標的圖
foo.dot.<target>
。必要性:否
預設值:TRUE
- GRAPHVIZ_GENERATE_DEPENDERS¶
設定為 FALSE 以不產生依賴者圖
foo.dot.<target>.dependers
。必要性:否
預設值:TRUE