Warning, /office/kexi/cmake/modules/KexiGenerateDependencyGraph.cmake is written in an unsupported language. File is not indexed.
0001 # Generates dependency graphs for current project 0002 # 0003 # Copyright (C) 2017 Jarosław Staniek <staniek@kde.org> 0004 # 0005 # Redistribution and use is allowed according to the terms of the BSD license. 0006 # For details see the accompanying COPYING-CMAKE-SCRIPTS file. 0007 0008 if(TARGET generate_dependency_graph) 0009 return() 0010 endif() 0011 0012 find_package(Doxygen) 0013 0014 if(NOT DOXYGEN_DOT_EXECUTABLE) 0015 message(STATUS "Graphviz dot tool not found, won't generate dependency graphs") 0016 return() 0017 endif() 0018 0019 set(_graph_dir ${CMAKE_BINARY_DIR}/dependencies) 0020 set(_dot_file ${_graph_dir}/graph.dot) 0021 set(_image_file "dependency-graph-${CMAKE_PROJECT_NAME}.png") 0022 0023 simple_option(${PROJECT_NAME_UPPER}_DEPENDENCY_GRAPH_INCLUDE_KEXI_FRAMEWORKS "Include Kexi frameworks in the dependency graph" ON) 0024 simple_option(${PROJECT_NAME_UPPER}_DEPENDENCY_GRAPH_INCLUDE_ALL_LIBS "Include all libs in the dependency graph" OFF) 0025 0026 configure_file(${CMAKE_CURRENT_LIST_DIR}/CMakeGraphVizOptions.cmake.in 0027 ${CMAKE_BINARY_DIR}/CMakeGraphVizOptions.cmake) 0028 0029 add_custom_target(generate_dependency_graph) 0030 0031 add_custom_command( 0032 TARGET generate_dependency_graph POST_BUILD 0033 COMMAND ${CMAKE_COMMAND} -E make_directory ${_graph_dir} 0034 COMMAND cmake --graphviz=${_dot_file} . 0035 WORKING_DIRECTORY ${CMAKE_BINARY_DIR} 0036 COMMENT "Generating dependency graph ${_graph_dir}/${_dot_file} for " 0037 "${CMAKE_PROJECT_NAME} project" 0038 ) 0039 add_custom_command( 0040 TARGET generate_dependency_graph POST_BUILD 0041 COMMAND ${DOXYGEN_DOT_EXECUTABLE} ${_dot_file} -T png > "${_graph_dir}/${_image_file}" 0042 WORKING_DIRECTORY ${_graph_dir} 0043 COMMENT "Generating dependency graph image ${_graph_dir}/${_image_file} for " 0044 "${CMAKE_PROJECT_NAME} project" 0045 ) 0046 0047 add_custom_target(show_dependency_graph) 0048 if(WIN32) 0049 set(_open_command start) 0050 else() 0051 set(_open_command xdg-open) 0052 endif() 0053 add_custom_command( 0054 TARGET show_dependency_graph POST_BUILD 0055 COMMAND ${_open_command} "${_graph_dir}/${_image_file}" 0056 WORKING_DIRECTORY ${CMAKE_BINARY_DIR} 0057 COMMENT "Show dependency graph image for ${CMAKE_PROJECT_NAME} project" 0058 ) 0059 0060 unset(_dot_file) 0061 unset(_image_file) 0062 unset(_graph_dir) 0063 unset(_open_command)