2014-02-25 30 views
11

例如,如何知道我的可執行目標E是否取決於我的庫目標L?如何獲取cmake目標的依賴列表?

讓我們的圖像E取決於L1和L2,但我不知道他們是否依賴於L.

target_link_libraries(E L1 L2)

我想獲得的在調用target_link_libraries之前從cmake本身列出,這樣如果我檢測到E依賴於兩個不兼容的庫,我可以做一些技巧。我用GetPrerequisites玩了一下,但是這發現了依賴於磁盤上的現有庫,而不是正在構建的目標庫。

謝謝

+3

在你的問題就來了,想提示[在CMake的LINK_LIBRARIES的遞歸列表(http://stackoverflow.com/questions/32756195/recursive-list-of-link -libraries-in-cmake)和[檢索CMake中的所有鏈接標誌](http://stackoverflow.com/questions/34165365/retreive-all-link-flags-in-cmake)。希望這可以幫助。 – Florian

回答

11

您可以使用CMake的「依賴關係圖生成器」。請閱讀此鏈接details

cmake --graphviz=test.dot . ...