0031313: Foundation Classes - Dump improvement for classes
[occt.git] / adm / cmake / doxygen.cmake
1 # doxygen
2 set (DOXYGEN_MINIMUM_VERSION 1.8.4)
3
4 if (DO_ONLY_CHECK_FOR_DOXYGEN)
5   message (STATUS "Info. Detecting doxygen")
6   set (DOXYGEN_SKIP_DOT ON)
7   find_package (Doxygen ${DOXYGEN_MINIMUM_VERSION})
8
9   set (CAN_DOXYGEN_BE_USED OFF)
10   if (DOXYGEN_EXECUTABLE)
11     set (CAN_DOXYGEN_BE_USED ON)
12     message (STATUS "Info. Doxygen is found and can be used")
13   endif()
14 else()
15   set (3RDPARTY_DOT_EXECUTABLE_DESCR       "The path to the 'dot' tool producing layered drawings of directed graphs.\nThis tool used by doxygen")
16   set (3RDPARTY_DOXYGEN_EXECUTABLE_DESCR   "The path to the doxygen command")
17
18   if (NOT DEFINED 3RDPARTY_DOXYGEN_EXECUTABLE)
19     set (3RDPARTY_DOXYGEN_EXECUTABLE "" CACHE FILEPATH "${3RDPARTY_DOXYGEN_EXECUTABLE_DESCR}")
20   endif()
21
22   if (NOT DEFINED 3RDPARTY_DOT_EXECUTABLE)
23     set (3RDPARTY_DOT_EXECUTABLE "" CACHE FILEPATH "${3RDPARTY_DOT_EXECUTABLE_DESCR}")
24   endif()
25
26   if (NOT DEFINED 3RDPARTY_SKIP_DOT_EXECUTABLE)
27     set (3RDPARTY_SKIP_DOT_EXECUTABLE ON CACHE BOOL "Skip trying to find Dot")
28   endif()
29
30   if (3RDPARTY_SKIP_DOT_EXECUTABLE)
31     OCCT_CHECK_AND_UNSET (3RDPARTY_DOT_EXECUTABLE)
32   endif()
33
34   if (NOT 3RDPARTY_DOXYGEN_EXECUTABLE OR (NOT 3RDPARTY_SKIP_DOT_EXECUTABLE AND NOT 3RDPARTY_DOT_EXECUTABLE))
35
36     set (DOXYGEN_SKIP_DOT ${3RDPARTY_SKIP_DOT_EXECUTABLE})
37     find_package (Doxygen ${DOXYGEN_MINIMUM_VERSION})
38     
39     if (NOT 3RDPARTY_DOXYGEN_EXECUTABLE AND DOXYGEN_EXECUTABLE)
40       set (3RDPARTY_DOXYGEN_EXECUTABLE "${DOXYGEN_EXECUTABLE}" CACHE FILEPATH "${3RDPARTY_DOXYGEN_EXECUTABLE_DESCR}" FORCE)
41     endif()
42     
43     if (NOT 3RDPARTY_SKIP_DOT_EXECUTABLE AND NOT 3RDPARTY_DOT_EXECUTABLE AND DOXYGEN_DOT_EXECUTABLE)
44       set (3RDPARTY_DOT_EXECUTABLE "${DOXYGEN_DOT_EXECUTABLE}" CACHE FILEPATH "${3RDPARTY_DOT_EXECUTABLE_DESCR}" FORCE)
45     endif()
46   endif()
47
48   if (NOT 3RDPARTY_DOXYGEN_EXECUTABLE OR NOT EXISTS "${3RDPARTY_DOXYGEN_EXECUTABLE}")
49     list (APPEND 3RDPARTY_NOT_INCLUDED 3RDPARTY_DOXYGEN_EXECUTABLE)
50   endif()
51
52   if (NOT 3RDPARTY_SKIP_DOT_EXECUTABLE)
53     if (NOT 3RDPARTY_DOT_EXECUTABLE OR NOT EXISTS "${3RDPARTY_DOT_EXECUTABLE}")
54       list (APPEND 3RDPARTY_NOT_INCLUDED 3RDPARTY_DOT_EXECUTABLE)
55     endif()
56   endif()
57 endif()
58
59 # unset all redundant variables
60 OCCT_CHECK_AND_UNSET (DOXYGEN_SKIP_DOT)
61 OCCT_CHECK_AND_UNSET (DOXYGEN_EXECUTABLE)
62 OCCT_CHECK_AND_UNSET (DOXYGEN_DOT_EXECUTABLE)