]> Creatis software - bbtk.git/blob - kernel/cmake/BBTKConfigurePackage_doc.cmake
Initial revision
[bbtk.git] / kernel / cmake / BBTKConfigurePackage_doc.cmake
1   #----------------------------------------------------------------------------
2
3
4
5   IF(BUILD_bbtk_DOC_DOXYGEN) 
6         FIND_PACKAGE(Doxygen)
7         IF(DOXYGEN)
8                 # Build the package documentation
9                 SET(DOXYGEN_HTML_OUTPUT "html")
10                 SET(DOXYGEN_LOGFILE "${CMAKE_CURRENT_BINARY_DIR}/bbtk_${BBTK_PACKAGE_NAME}_Doxygen.log")
11
12                 # Input : Sources
13                 SET(DOXYGEN_INPUT 
14                   ${DOXYGEN_INPUT}
15                   ${PROJECT_SOURCE_DIR}/src/packages/${BBTK_PACKAGE_NAME}
16                 )
17
18                 STRING(REGEX REPLACE ";" " " DOXYGEN_INPUT "${DOXYGEN_INPUT}")
19
20                 # Output dir
21                 SET(DOXYGEN_OUTPUT 
22                   ${PROJECT_BINARY_DIR}/doc/packages/${BBTK_PACKAGE_NAME}/)
23
24                 # Doc exclude
25                 SET(DOXYGEN_EXCLUDE "")
26                 STRING(REGEX REPLACE ";" " " DOXYGEN_EXCLUDE "${DOXYGEN_EXCLUDE}")
27
28                 # Predefined symbols
29                 SET(DOXYGEN_PROJECT_NAME "BBTK ${BBTK_PACKAGE_NAME} BBTK_PACKAGE")
30
31                 STRING(REGEX REPLACE ";" " " DOXYGEN_DOC_PREDEFINED "${DOXYGEN_DOC_PREDEFINED}")
32
33                 #-----------------------------------------------------------------------------
34                 # DOT verification
35
36                 IF(DOT)
37                    GET_FILENAME_COMPONENT(DOXYGEN_DOT_PATH ${DOT} PATH)
38                    SET(DOXYGEN_HAVE_DOT "YES")
39                 ELSE(DOT)
40                    SET(DOXYGEN_DOT_PATH "")
41                    SET(DOXYGEN_HAVE_DOT "NO")
42                 ENDIF(DOT)
43
44                 #-----------------------------------------------------------------------------
45                 # Create file and project
46                 CONFIGURE_FILE(
47                    ${CMAKE_CURRENT_SOURCE_DIR}/../cmake/Doxyfile.txt
48                    ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile.txt
49                    IMMEDIATE
50                 )
51
52                 ADD_CUSTOM_COMMAND(
53                   OUTPUT ${PROJECT_BINARY_DIR}/doc/packages/${BBTK_PACKAGE_NAME}/html/index.html
54                   COMMAND 
55                   ${DOXYGEN} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile.txt
56                   DEPENDS bb${BBTK_PACKAGE_NAME} 
57                 )
58
59                 ADD_CUSTOM_TARGET(doxygen-bbtk-${BBTK_PACKAGE_NAME} ALL
60                    DEPENDS ${PROJECT_BINARY_DIR}/doc/packages/${BBTK_PACKAGE_NAME}/html/index.html 
61                 )
62         ELSE(DOXYGEN)
63                 MESSAGE(FATAL_ERROR "Doxygen not found. Required to build the doxygen documentation")
64         ENDIF(DOXYGEN)
65
66   ENDIF(BUILD_bbtk_DOC_DOXYGEN) 
67
68
69
70
71   #----------------------------------------------------------------------------
72   # bbdoc
73   #---------------------------------------------------------------------------
74   IF(BUILD_bbtk_DOC_BBTK_PACKAGE) 
75     
76     #    MARK_AS_ADVANCED( bbdoc_PATH )
77
78     FILE(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/doc/packages)
79     FILE(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/doc/packages/${BBTK_PACKAGE_NAME})
80       
81
82     IF(WIN32)
83       IF(CMAKE_GENERATOR STREQUAL "Visual Studio 6")
84         SET(bbdoc_EXECUTABLE ${EXECUTABLE_OUTPUT_PATH}/$(IntDir)/bbdoc.exe)
85       ELSE(CMAKE_GENERATOR STREQUAL "Visual Studio 6")
86         SET(bbdoc_EXECUTABLE $(SolutionDir)/bin/$(OutDir)/bbdoc.exe)
87       ENDIF(CMAKE_GENERATOR STREQUAL "Visual Studio 6")
88     ELSE(WIN32)
89       SET(bbdoc_EXECUTABLE ${EXECUTABLE_OUTPUT_PATH}/bbdoc)
90     ENDIF(WIN32)      
91   
92 # NEVER USE CONFIGURATION FILE BUT ALWAYS BUILD WITH THE JUST COMPILED LIBS 
93 # NOT THE INSTALLED ONES !  
94  #   IF(-bbtk_USE_CONFIGURATION_FILE)
95       # just pass the package name, not the full path name!
96       # and pass the option '1' to bbdoc to use config file
97  #     SET(bbdoc_INPUT ${BBTK_PACKAGE_NAME} 1)    
98  #   ELSE(-bbtk_USE_CONFIGURATION_FILE)
99       
100       
101       
102       IF(WIN32)
103         IF(CMAKE_GENERATOR STREQUAL "Visual Studio 6")
104           SET(bbdoc_INPUT ${EXECUTABLE_OUTPUT_PATH}/$(IntDir)/${BBTK_PACKAGE_NAME})
105         ELSE(CMAKE_GENERATOR STREQUAL "Visual Studio 6")
106           SET(bbdoc_INPUT $(SolutionDir)/bin/$(OutDir)/${BBTK_PACKAGE_NAME})
107         ENDIF(CMAKE_GENERATOR STREQUAL "Visual Studio 6")
108       ELSE(WIN32)
109         SET(bbdoc_INPUT ${LIBRARY_OUTPUT_PATH}/${BBTK_PACKAGE_NAME})
110       ENDIF(WIN32)    
111  #   ENDIF(-bbtk_USE_CONFIGURATION_FILE)
112     
113
114     ADD_CUSTOM_COMMAND(
115       OUTPUT ${PROJECT_BINARY_DIR}/doc/packages/${BBTK_PACKAGE_NAME}/${BBTK_PACKAGE_NAME}.html
116       COMMAND 
117       ${bbdoc_EXECUTABLE} ${bbdoc_INPUT} ${PROJECT_BINARY_DIR}/doc/packages/${BBTK_PACKAGE_NAME}/${BBTK_PACKAGE_NAME}.html
118       DEPENDS 
119       bb${BBTK_PACKAGE_NAME}
120       ${bbdoc_EXECUTABLE}
121       )     
122     
123     ADD_CUSTOM_TARGET(${BBTK_PACKAGE_NAME}.html ALL
124       DEPENDS ${PROJECT_BINARY_DIR}/doc/packages/${BBTK_PACKAGE_NAME}/${BBTK_PACKAGE_NAME}.html)
125     
126   ENDIF(BUILD_bbtk_DOC_BBTK_PACKAGE) 
127   
128