]> Creatis software - creaContours.git/blob - lib/doxygen/CMakeLists.txt
Comments
[creaContours.git] / lib / doxygen / CMakeLists.txt
1
2
3 MACRO(CREA_BUILD_DOXYGEN_DOC NAME INPUT DOC_RELATIVE_INSTALL_PATH PREDEFINED)
4
5   #--------------------------------------------------------------------------
6   SET(USE_DOXYGEN ON CACHE BOOL "" FORCE)
7   
8   # Name
9   SET(DOXYGEN_PROJECT_NAME "${NAME}")
10
11   # Inputs
12   STRING(REGEX REPLACE ";" " " DOXYGEN_INPUT "${INPUT}")
13
14   # Output dirs
15   SET(DOXYGEN_HTML_OUTPUT ".")
16   SET(DOXYGEN_OUTPUT ${PROJECT_BINARY_DIR}/${DOC_RELATIVE_INSTALL_PATH})
17   IF(NOT IS_DIRECTORY ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT})
18     FILE(MAKE_DIRECTORY ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT})
19   ENDIF(NOT IS_DIRECTORY ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT})
20
21   # Doc exclude
22   #  SET(DOXYGEN_EXCLUDE "CppSQLite3.h;CppSQLite3.cpp")
23   #  STRING(REGEX REPLACE ";" " " DOXYGEN_EXCLUDE "${DOXYGEN_EXCLUDE}")
24
25   # Log file name 
26   SET(DOXYGEN_LOGFILE "${CMAKE_CURRENT_BINARY_DIR}/doxygen.log")
27
28   # Predefined symbols
29   STRING(REGEX REPLACE ";" " " DOXYGEN_DOC_PREDEFINED "${PREDEFINED}")
30   
31   #---------------------------------------------------------------------------
32   # DOT verification
33   IF(DOT)
34     GET_FILENAME_COMPONENT(DOXYGEN_DOT_PATH ${DOT} PATH)
35     SET(DOXYGEN_HAVE_DOT "YES")
36   ELSE(DOT)
37     SET(DOXYGEN_DOT_PATH "")
38     SET(DOXYGEN_HAVE_DOT "NO")
39   ENDIF(DOT)
40   
41   #---------------------------------------------------------------------------
42   # Create file and project
43   CONFIGURE_FILE(
44     ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.txt.in
45     ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile.txt
46     @ONLY IMMEDIATE
47     )
48  
49   
50   ADD_CUSTOM_COMMAND(
51     OUTPUT ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT}/index.html
52     COMMAND 
53     ${DOXYGEN}
54     ARGS
55     ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile.txt
56     #  DEPENDS bbtk bbi 
57     )
58
59  #MESSAGE(STATUS "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
60  #MESSAGE(STATUS "in case of error (Windows), have a look at creaContour/lib/doxygen/CMakeLists.txt")
61
62 #IF ( ${${PROJECT_NAME}_DOC} STREQUAL ON)
63 IF ( ${PROJECT_NAME}_DOC STREQUAL ON)
64   CREA_CPDIR ( ${CMAKE_CURRENT_SOURCE_DIR}/bouml/GeneralArchitecture/ ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT}/GeneralArchitecture_Diagrams/ )
65   #CREA_CPDIR ( ${CMAKE_CURRENT_SOURCE_DIR}/bouml/wxVtkViewer/wxVtkViewer_classDiagram1_HTML/ ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT}/wxVtkViewer_classDiagram1_HTML/ )
66   #CREA_CPDIR ( ${CMAKE_CURRENT_SOURCE_DIR}/bouml/wxVtkViewer/wxVtkViewer_classDiagram2_HTML/ ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT}/wxVtkViewer_classDiagram2_HTML/ )
67   #CREA_CPDIR ( ${CMAKE_CURRENT_SOURCE_DIR}/bouml/manualContour/manualContour_MVC_HTML/ ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT}/manualContour_MVC_HTML/ )
68   #CREA_CPDIR ( ${CMAKE_CURRENT_SOURCE_DIR}/bouml/manualContour/manualContour_Model_HTML/ ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT}/manualContour_Model_HTML/ )
69   #CREA_CPDIR ( ${CMAKE_CURRENT_SOURCE_DIR}/bouml/manualContour/manualContour_View_HTML/ ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT}/manualContour_View_HTML/ )
70   #CREA_CPDIR ( ${CMAKE_CURRENT_SOURCE_DIR}/bouml/manualContour/manualContour_Controler_HTML/ ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT}/manualContour_Controler_HTML/ )
71   #CREA_CPDIR ( ${CMAKE_CURRENT_SOURCE_DIR}/bouml/manualContour/manualContour_SeqCreateContour_HTML/ ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT}/manualContour_SeqCreateContour_HTML/ )
72   #CREA_CPDIR ( ${CMAKE_CURRENT_SOURCE_DIR}/bouml/CutModule/CutModuleDiagrams_HTML/ ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT}/CutModuleDiagrams_HTML/ )
73   #CREA_CPDIR ( ${CMAKE_CURRENT_SOURCE_DIR}/bouml/GeneralArchitecture/GeneralArchitecture_HTML/ ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT}/GeneralArchitecture_HTML/ )
74
75   ADD_CUSTOM_TARGET(doxygen_${NAME} ALL
76     DEPENDS  ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT}/index.html
77     )
78   
79 #  INSTALL(
80 #    DIRECTORY
81 #    ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT}
82 #    DESTINATION
83 #    ${BBTK_DOXYGEN_INSTALL_PATH}/${DOC_RELATIVE_INSTALL_PATH}
84 #    )
85
86 # ENDIF ( ${${PROJECT_NAME}_DOC} STREQUAL ON)
87 ENDIF ( ${PROJECT_NAME}_DOC STREQUAL ON)
88   #--------------------------------------------------------------------------
89         
90 ENDMACRO(CREA_BUILD_DOXYGEN_DOC)
91
92
93
94
95 FILE(GLOB PAGES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.htm" )
96 #MESSAGE(STATUS "DOXYGEN HTML PAGES = ${PAGES}")
97 FOREACH(PAGE ${PAGES})
98   CONFIGURE_FILE(
99     ${CMAKE_CURRENT_SOURCE_DIR}/${PAGE}
100     ${PROJECT_BINARY_DIR}/doxygen/${PAGE}
101     IMMEDIATE
102   )
103 #MESSAGE(STATUS "COPYING ${PAGE} TO ${PROJECT_BINARY_DIR}/doxygen/${PAGE}")
104 ENDFOREACH(PAGE)
105
106
107 FILE(GLOB IMAGES_PAGE RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.png" "*.jpg")
108 FOREACH(IMAGE_PAGE ${IMAGES_PAGE})
109   CONFIGURE_FILE(
110     ${CMAKE_CURRENT_SOURCE_DIR}/${IMAGE_PAGE}
111     ${PROJECT_BINARY_DIR}/doxygen/${IMAGE_PAGE}
112     COPYONLY
113   )
114 ENDFOREACH(IMAGE_PAGE)
115
116
117
118 CONFIGURE_FILE(
119   ${CMAKE_CURRENT_SOURCE_DIR}/DoxyMainPage.txt.in
120   ${CMAKE_CURRENT_BINARY_DIR}/DoxyMainPage.txt
121   @ONLY IMMEDIATE
122   )
123
124 SET(INPUT 
125   ${CMAKE_CURRENT_BINARY_DIR}/DoxyMainPage.txt
126   ${PROJECT_SOURCE_DIR}/lib/Interface_Icons_NDimensions
127   ${PROJECT_SOURCE_DIR}/lib/Interface_ManagerContour_NDimensions
128   ${PROJECT_SOURCE_DIR}/lib/kernel_ManagerContour_NDimensions
129   )
130
131 SET(DOXYGEN_DOC_PREDEFINED USE_WXWIDGETS)
132
133 CREA_BUILD_DOXYGEN_DOC(
134   ${CMAKE_PROJECT_NAME}_lib
135   "${INPUT}" 
136   "doxygen" 
137   "${CREA_DEFINITIONS}"
138   )
139
140 #MESSAGE("DOX : ${CREA_DEFINITIONS}")