From 7980eab8d5df63db4077fd1121c6cbe860146ad1 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 27 May 2014 16:34:18 -0400 Subject: FindDoxygen: Improve search for Graphviz "dot" on Windows As of Graphviz 2.31, their installer provides no PATH or registry modifications. Glob possible install paths instead. Inspired-by: Lars Bilke --- Modules/FindDoxygen.cmake | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Modules/FindDoxygen.cmake b/Modules/FindDoxygen.cmake index a456d9c..844699e 100644 --- a/Modules/FindDoxygen.cmake +++ b/Modules/FindDoxygen.cmake @@ -101,12 +101,18 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(Doxygen REQUIRED_VARS DOXYGEN_EXECUTABLE VERSI # 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) find_program(DOXYGEN_DOT_EXECUTABLE NAMES dot PATHS - "$ENV{ProgramFiles}/Graphviz 2.21/bin" - "C:/Program Files/Graphviz 2.21/bin" + ${_Doxygen_GRAPHVIZ_BIN_DIRS} "$ENV{ProgramFiles}/ATT/Graphviz/bin" "C:/Program Files/ATT/Graphviz/bin" [HKEY_LOCAL_MACHINE\\SOFTWARE\\ATT\\Graphviz;InstallPath]/bin -- cgit v0.12 From f49b6a33f6c4920bf9f18735f66d91c51c2f1581 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 27 May 2014 16:33:37 -0400 Subject: FindDoxygen: Deprecate DOXYGEN_DOT_PATH While at it, do not cache the value since it should always be computed directly from DOXYGEN_DOT_EXECUTABLE. Inspired-by: Lars Bilke --- Modules/FindDoxygen.cmake | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/Modules/FindDoxygen.cmake b/Modules/FindDoxygen.cmake index 844699e..d34941a 100644 --- a/Modules/FindDoxygen.cmake +++ b/Modules/FindDoxygen.cmake @@ -30,7 +30,16 @@ # # DOXYGEN_DOT_EXECUTABLE = The path to the dot program used by doxygen. # 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. @@ -125,7 +134,7 @@ if(NOT DOXYGEN_SKIP_DOT) if(DOXYGEN_DOT_EXECUTABLE) set(DOXYGEN_DOT_FOUND TRUE) # 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() @@ -159,5 +168,4 @@ set (DOT ${DOXYGEN_DOT_EXECUTABLE} ) mark_as_advanced( DOXYGEN_EXECUTABLE DOXYGEN_DOT_EXECUTABLE - DOXYGEN_DOT_PATH ) -- cgit v0.12