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