]> Creatis software - bbtk.git/blob - kernel/cmake/BBTKConfigurePackage_doc.cmake
Mechanism for the generation of doxygen doc for packages
[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   SET(BBTK_PACKAGE_DOXYGEN_DOC_INSTALL_PATH
34     packages/${BBTK_PACKAGE_NAME}/doxygen
35     )
36   SUBDIRS(doxygen)
37 ENDIF(BUILD_bbtk_DOC_DOXYGEN) 
38 #----------------------------------------------------------------------------
39
40
41
42 #----------------------------------------------------------------------------
43 # bbdoc
44 #---------------------------------------------------------------------------
45 IF(BUILD_bbtk_DOC_BBTK_PACKAGE) 
46   
47   #    MARK_AS_ADVANCED( bbdoc_PATH )
48   
49   FILE(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/doc/packages)
50   FILE(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/doc/packages/${BBTK_PACKAGE_NAME})
51   
52   
53   IF(WIN32)
54     IF(CMAKE_GENERATOR STREQUAL "Visual Studio 6")
55       SET(bbdoc_EXECUTABLE ${EXECUTABLE_OUTPUT_PATH}/$(IntDir)/bbdoc.exe)
56     ELSE(CMAKE_GENERATOR STREQUAL "Visual Studio 6")
57       SET(bbdoc_EXECUTABLE $(SolutionDir)/bin/$(OutDir)/bbdoc.exe)
58     ENDIF(CMAKE_GENERATOR STREQUAL "Visual Studio 6")
59   ELSE(WIN32)
60     SET(bbdoc_EXECUTABLE ${EXECUTABLE_OUTPUT_PATH}/bbdoc)
61   ENDIF(WIN32)      
62   
63   # NEVER USE CONFIGURATION FILE BUT ALWAYS BUILD WITH THE JUST COMPILED LIBS 
64   # NOT THE INSTALLED ONES !  
65   #   IF(-bbtk_USE_CONFIGURATION_FILE)
66   # just pass the package name, not the full path name!
67   # and pass the option '1' to bbdoc to use config file
68   #     SET(bbdoc_INPUT ${BBTK_PACKAGE_NAME} 1)    
69   #   ELSE(-bbtk_USE_CONFIGURATION_FILE)
70   
71   
72   
73   IF(WIN32)
74     IF(CMAKE_GENERATOR STREQUAL "Visual Studio 6")
75       SET(bbdoc_INPUT ${EXECUTABLE_OUTPUT_PATH}/$(IntDir)/${BBTK_PACKAGE_NAME})
76     ELSE(CMAKE_GENERATOR STREQUAL "Visual Studio 6")
77       SET(bbdoc_INPUT $(SolutionDir)/bin/$(OutDir)/${BBTK_PACKAGE_NAME})
78     ENDIF(CMAKE_GENERATOR STREQUAL "Visual Studio 6")
79   ELSE(WIN32)
80     SET(bbdoc_INPUT ${LIBRARY_OUTPUT_PATH}/${BBTK_PACKAGE_NAME})
81   ENDIF(WIN32)    
82   #   ENDIF(-bbtk_USE_CONFIGURATION_FILE)
83   
84   
85   ADD_CUSTOM_COMMAND(
86     OUTPUT ${PROJECT_BINARY_DIR}/doc/packages/${BBTK_PACKAGE_NAME}/${BBTK_PACKAGE_NAME}.html
87     COMMAND 
88     ${bbdoc_EXECUTABLE} ${bbdoc_INPUT} ${PROJECT_BINARY_DIR}/doc/packages/${BBTK_PACKAGE_NAME}/${BBTK_PACKAGE_NAME}.html
89     DEPENDS 
90     bb${BBTK_PACKAGE_NAME}
91     ${bbdoc_EXECUTABLE}
92     )     
93   
94   ADD_CUSTOM_TARGET(${BBTK_PACKAGE_NAME}.html ALL
95     DEPENDS ${PROJECT_BINARY_DIR}/doc/packages/${BBTK_PACKAGE_NAME}/${BBTK_PACKAGE_NAME}.html)
96   
97 ENDIF(BUILD_bbtk_DOC_BBTK_PACKAGE) 
98
99