Salome HOME
Migration to OCCT > 6.9.0
[modules/kernel.git] / salome_adm / cmake_files / FindGraphviz.cmake
index 1398eb6b7195d65d5ce9d452c217b17c431e091c..af89f0cf3e1f6422c9851770e3036dfd37aad4df 100644 (file)
@@ -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
 #
 # 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_pathplan_LIBRARY NAMES pathplan)
+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_pathplan_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