X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=adm%2Fcmake%2FFindGraphviz.cmake;h=35aada43904dbc1ecfb1953cc12faf6d23d9b97a;hb=ac53a6173bb848e3a0d57e3cea4251c983c2d772;hp=2b9e716785e46f5c1e88c54f410df06a3ec0c110;hpb=301fcc69dc7b0f1f3f1f1e844a22cfa722253c8d;p=modules%2Fyacs.git diff --git a/adm/cmake/FindGraphviz.cmake b/adm/cmake/FindGraphviz.cmake index 2b9e71678..35aada439 100644 --- a/adm/cmake/FindGraphviz.cmake +++ b/adm/cmake/FindGraphviz.cmake @@ -3,10 +3,12 @@ # Output variables: GRAPHVIZ_EXECUTABLE - where is executable 'dot' takes place. # GRAPHVIZ_INCLUDE_DIRS - where to find headers. # GRAPHVIZ_LIBRARIES - where to get libraries. -# GRAPHVIZ_FOUND - True if Graphiz was found. +# GRAPHVIZ_VERSION - Graphviz version +# GRAPHVIZ_DEFINITIONS - Graphviz definitions +# GRAPHVIZ_FOUND - True if Graphviz was found. # ########################################################################### -# Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -14,7 +16,7 @@ # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either -# version 2.1 of the License. +# version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -27,30 +29,48 @@ # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -########################################################################### FIND_PROGRAM(GRAPHVIZ_EXECUTABLE dot) -FIND_PATH(GRAPHVIZ_INCLUDE_DIR NAMES graphviz/graph.h) +FIND_PATH(GRAPHVIZ_INCLUDE_DIR NAMES graphviz/cgraph.h) SET(GRAPHVIZ_INCLUDE_DIRS ${GRAPHVIZ_INCLUDE_DIR} ${GRAPHVIZ_INCLUDE_DIR}/graphviz) -FIND_LIBRARY(GRAPHVIZ_cdt_LIBRARY NAMES cdt) -FIND_LIBRARY(GRAPHVIZ_cgraph_LIBRARY NAMES cgraph) -FIND_LIBRARY(GRAPHVIZ_graph_LIBRARY NAMES graph) -FIND_LIBRARY(GRAPHVIZ_gvc_LIBRARY NAMES gvc) -FIND_LIBRARY(GRAPHVIZ_gvpr_LIBRARY NAMES gvpr) -FIND_LIBRARY(GRAPHVIZ_pathplan_LIBRARY NAMES pathplan) -FIND_LIBRARY(GRAPHVIZ_xdot_LIBRARY NAMES xdot) +IF(GRAPHVIZ_EXECUTABLE) + IF(NOT CMAKE_PREFIX_PATH) # Case where dot is in the path and -DGRAPHVIZ_ROOT_DIR not defined. + GET_FILENAME_COMPONENT(GRAPHVIZ_EXECUTABLE_DIR ${GRAPHVIZ_EXECUTABLE} PATH) + GET_FILENAME_COMPONENT(GRAPHVIZ_EXECUTABLE_DIR ${GRAPHVIZ_EXECUTABLE_DIR} PATH) + SET(CMAKE_PREFIX_PATH "${GRAPHVIZ_EXECUTABLE_DIR}") + ENDIF(NOT CMAKE_PREFIX_PATH) +ENDIF(GRAPHVIZ_EXECUTABLE) + +FIND_LIBRARY(GRAPHVIZ_cdt_LIBRARY NAMES cdt PATH_SUFFIXES bin) +FIND_LIBRARY(GRAPHVIZ_graph_LIBRARY NAMES cgraph PATH_SUFFIXES bin) +FIND_LIBRARY(GRAPHVIZ_gvc_LIBRARY NAMES gvc PATH_SUFFIXES bin) +FIND_LIBRARY(GRAPHVIZ_pathplan_LIBRARY NAMES pathplan PATH_SUFFIXES bin) + SET(GRAPHVIZ_LIBRARIES ${GRAPHVIZ_cdt_LIBRARY} - ${GRAPHVIZ_cgraph_LIBRARY} ${GRAPHVIZ_graph_LIBRARY} ${GRAPHVIZ_gvc_LIBRARY} - ${GRAPHVIZ_gvpr_LIBRARY} ${GRAPHVIZ_pathplan_LIBRARY} - ${GRAPHVIZ_xdot_LIBRARY} ) +IF(GRAPHVIZ_EXECUTABLE) + EXECUTE_PROCESS(COMMAND ${GRAPHVIZ_EXECUTABLE} "-V" ERROR_VARIABLE GRAPHVIZ_VERSION ERROR_STRIP_TRAILING_WHITESPACE) + STRING(REGEX REPLACE ".* ([0-9.]+) .*" "\\1" GRAPHVIZ_VERSION "${GRAPHVIZ_VERSION}") +ENDIF() + +SET(GRAPHVIZ_DEFINITIONS) +IF("${GRAPHVIZ_VERSION}" VERSION_LESS "2.36.0") + SET(GRAPHVIZ_DEFINITIONS -DWITH_CGRAPH) +ENDIF() + +## Don't detect cgraph on Windows +#IF(NOT WIN32) +# FIND_LIBRARY(GRAPHVIZ_cgraph_LIBRARY NAMES cgraph PATH_SUFFIXES bin) +# SET(GRAPHVIZ_LIBRARIES ${GRAPHVIZ_cgraph_LIBRARY}) +#ENDIF() + # Handle the standard arguments of the find_package() command: INCLUDE(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS(Graphviz REQUIRED_VARS