FindDoxygen: Avoid Windows-specific GLOB on other platforms

When `$ENV{ProgramFiles}` is empty, GLOB takes `/Graphviz*/bin` as a
path cusing the implementation to look at every directory in `/`.  If
the system has a slow(er) path mounted on '/' then `stat` call can take
some time.  There *may* be a better fix for this elsewhere, but for now
simply do this GLOB only on Windows.

Signed-off-by: Noel Eck <noel.eck@intel.com>
This commit is contained in:
Noel Eck 2018-11-26 16:25:26 +01:00 committed by Brad King
parent 5bc33226b2
commit 85a035bf00

View File

@ -485,12 +485,18 @@ endmacro()
# Find Graphviz Dot...
#
macro(_Doxygen_find_dot)
set(_x86 "(x86)")
file(
GLOB _Doxygen_GRAPHVIZ_BIN_DIRS
"$ENV{ProgramFiles}/Graphviz*/bin"
"$ENV{ProgramFiles${_x86}}/Graphviz*/bin"
)
if(WIN32)
set(_x86 "(x86)")
file(
GLOB _Doxygen_GRAPHVIZ_BIN_DIRS
"$ENV{ProgramFiles}/Graphviz*/bin"
"$ENV{ProgramFiles${_x86}}/Graphviz*/bin"
)
unset(_x86)
else()
set(_Doxygen_GRAPHVIZ_BIN_DIRS "")
endif()
find_program(
DOXYGEN_DOT_EXECUTABLE
NAMES dot
@ -529,7 +535,6 @@ macro(_Doxygen_find_dot)
endif()
unset(_Doxygen_GRAPHVIZ_BIN_DIRS)
unset(_x86)
endmacro()
#