From 85a035bf00d53d33251f30f850be7be169cbcde8 Mon Sep 17 00:00:00 2001 From: Noel Eck Date: Mon, 26 Nov 2018 16:25:26 +0100 Subject: [PATCH] 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 --- Modules/FindDoxygen.cmake | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/Modules/FindDoxygen.cmake b/Modules/FindDoxygen.cmake index 2ed944980a..fdd3a9276c 100644 --- a/Modules/FindDoxygen.cmake +++ b/Modules/FindDoxygen.cmake @@ -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() #