2016-01-26 51 views
3

cmake的--graphviz選項是否假設依賴於自定義目標? 例如的CMakeLists.txt:自定義目標的cmake依賴關係圖

cmake_minimum_required(VERSION 2.8) 
add_executable(target0 test.cpp) 
add_dependencies(target0 target1) 
add_custom_target(target1 ALL 
    COMMAND echo hello 
) 

的輸出文件 「cmake的--graphviz = test.dot」。將是:

digraph GG { 
node [ 
    fontsize = "12" 
]; 
    "node3" [ label="target0" shape="house"]; 
} 

因此沒有target1的痕跡。

+3

創建目標前的'add_dependencies'? CMake不會抱怨嗎? – Tsyvarev

+0

好點,確實看起來很奇怪,但我的cmake沒有抱怨。無論如何,將add_dependencies放到文件末尾並沒有什麼區別。 – Demetrius

+1

你的CMake版本是什麼? – usr1234567

回答

3

CMakemanual明確規定:

--graphviz = [文件]

生成graphviz的輸入文件,該文件將包含所有的庫和可執行依賴於該項目。有關更多詳細信息,請參閱CMakeGraphVizOptions.cmake的文檔。

所以,據我所知,您的自定義目標既不是 - 也不是庫,也不可執行以包含在結果圖中。

+2

由於我剛剛開始使用cmake,因此很難從構建圖預期中瞭解可執行目標和自定義目標之間的區別。 – Demetrius