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)