1
0
Эх сурвалжийг харах

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 <[email protected]>
Noel Eck 7 жил өмнө
parent
commit
85a035bf00

+ 12 - 7
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()
 
 #