CMakeGraphVizOptions¶
CMake 的內建 Graphviz 支援。
產生 Graphviz 檔案¶
CMake 可以產生 Graphviz 檔案,顯示專案中目標之間的依賴關係,以及所連結的外部程式庫。
當使用 --graphviz=foo.dot
選項執行 CMake 時,它會產生
一個
foo.dot
檔案,顯示專案中的所有依賴關係每個目標一個
foo.dot.<目標>
檔案,顯示它依賴的其他目標每個目標一個
foo.dot.<目標>.dependers
檔案,顯示哪些其他目標依賴於它
這些 .dot 檔案可以使用 Graphviz 套件中的 *dot* 命令轉換為圖像
dot -Tpng -o foo.png foo.dot
在 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.<目標>
。必要:否
預設值:TRUE
- GRAPHVIZ_GENERATE_DEPENDERS¶
設定為 FALSE 可不產生依賴者圖形
foo.dot.<目標>.dependers
。必要:否
預設值:TRUE