Ver código fonte

Merge topic 'FindDoxygen-windows-dot'

f49b6a33 FindDoxygen: Deprecate DOXYGEN_DOT_PATH
7980eab8 FindDoxygen: Improve search for Graphviz "dot" on Windows
Brad King 11 anos atrás
pai
commit
0fbec3d3c2
1 arquivos alterados com 19 adições e 5 exclusões
  1. 19 5
      Modules/FindDoxygen.cmake

+ 19 - 5
Modules/FindDoxygen.cmake

@@ -30,7 +30,16 @@
 #
 #
 #    DOXYGEN_DOT_EXECUTABLE = The path to the dot program used by doxygen.
 #    DOXYGEN_DOT_EXECUTABLE = The path to the dot program used by doxygen.
 #    DOXYGEN_DOT_FOUND      = Was Dot found or not?
 #    DOXYGEN_DOT_FOUND      = Was Dot found or not?
-#    DOXYGEN_DOT_PATH       = The path to dot not including the executable
+#
+# For compatibility with older versions of CMake, the now-deprecated
+# variable ``DOXYGEN_DOT_PATH`` is set to the path to the directory
+# containing ``dot`` as reported in ``DOXYGEN_DOT_EXECUTABLE``.
+# The path may have forward slashes even on Windows and is not
+# suitable for direct substitution into a ``Doxyfile.in`` template.
+# If you need this value, use :command:`get_filename_component`
+# to compute it from ``DOXYGEN_DOT_EXECUTABLE`` directly, and
+# perhaps the :command:`file(TO_NATIVE_PATH)` command to prepare
+# the path for a Doxygen configuration file.
 
 
 #=============================================================================
 #=============================================================================
 # Copyright 2001-2009 Kitware, Inc.
 # Copyright 2001-2009 Kitware, Inc.
@@ -101,12 +110,18 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(Doxygen REQUIRED_VARS DOXYGEN_EXECUTABLE VERSI
 # Find Dot...
 # Find Dot...
 #
 #
 
 
+set(_x86 "(x86)")
+file(GLOB _Doxygen_GRAPHVIZ_BIN_DIRS
+  "$ENV{ProgramFiles}/Graphviz*/bin"
+  "$ENV{ProgramFiles${_x86}}/Graphviz*/bin"
+  )
+unset(_x86)
+
 if(NOT DOXYGEN_SKIP_DOT)
 if(NOT DOXYGEN_SKIP_DOT)
   find_program(DOXYGEN_DOT_EXECUTABLE
   find_program(DOXYGEN_DOT_EXECUTABLE
     NAMES dot
     NAMES dot
     PATHS
     PATHS
-      "$ENV{ProgramFiles}/Graphviz 2.21/bin"
-      "C:/Program Files/Graphviz 2.21/bin"
+      ${_Doxygen_GRAPHVIZ_BIN_DIRS}
       "$ENV{ProgramFiles}/ATT/Graphviz/bin"
       "$ENV{ProgramFiles}/ATT/Graphviz/bin"
       "C:/Program Files/ATT/Graphviz/bin"
       "C:/Program Files/ATT/Graphviz/bin"
       [HKEY_LOCAL_MACHINE\\SOFTWARE\\ATT\\Graphviz;InstallPath]/bin
       [HKEY_LOCAL_MACHINE\\SOFTWARE\\ATT\\Graphviz;InstallPath]/bin
@@ -119,7 +134,7 @@ if(NOT DOXYGEN_SKIP_DOT)
   if(DOXYGEN_DOT_EXECUTABLE)
   if(DOXYGEN_DOT_EXECUTABLE)
     set(DOXYGEN_DOT_FOUND TRUE)
     set(DOXYGEN_DOT_FOUND TRUE)
     # The Doxyfile wants the path to Dot, not the entire path and executable
     # The Doxyfile wants the path to Dot, not the entire path and executable
-    get_filename_component(DOXYGEN_DOT_PATH "${DOXYGEN_DOT_EXECUTABLE}" PATH CACHE)
+    get_filename_component(DOXYGEN_DOT_PATH "${DOXYGEN_DOT_EXECUTABLE}" PATH)
   endif()
   endif()
 
 
 endif()
 endif()
@@ -153,5 +168,4 @@ set (DOT ${DOXYGEN_DOT_EXECUTABLE} )
 mark_as_advanced(
 mark_as_advanced(
   DOXYGEN_EXECUTABLE
   DOXYGEN_EXECUTABLE
   DOXYGEN_DOT_EXECUTABLE
   DOXYGEN_DOT_EXECUTABLE
-  DOXYGEN_DOT_PATH
   )
   )