2016-01-26 3 views
3

Является ли опция -graphviz cmake предполагать зависимость от пользовательских целей? Например 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

Смежные вопросы