]> Creatis software - bbtk.git/blobdiff - kernel/cmake/BBTKConfigurePackage_doc.cmake
*** empty log message ***
[bbtk.git] / kernel / cmake / BBTKConfigurePackage_doc.cmake
index bd7f7717d0b17d1c576844ce62e2da6bd6a9d099..dbfa54036bda31ab977de1e780851ae4d56b8411 100644 (file)
-  #----------------------------------------------------------------------------
-
-
-
-  IF(BUILD_bbtk_DOC_DOXYGEN) 
-       FIND_PACKAGE(Doxygen)
-       IF(DOXYGEN)
-               # Build the package documentation
-               SET(DOXYGEN_HTML_OUTPUT "html")
-               SET(DOXYGEN_LOGFILE "${CMAKE_CURRENT_BINARY_DIR}/bbtk_${BBTK_PACKAGE_NAME}_Doxygen.log")
-
-               # Input : Sources
-               SET(DOXYGEN_INPUT 
-                 ${DOXYGEN_INPUT}
-                 ${PROJECT_SOURCE_DIR}/src/packages/${BBTK_PACKAGE_NAME}
-               )
-
-               STRING(REGEX REPLACE ";" " " DOXYGEN_INPUT "${DOXYGEN_INPUT}")
-
-               # Output dir
-               SET(DOXYGEN_OUTPUT 
-                 ${PROJECT_BINARY_DIR}/doc/packages/${BBTK_PACKAGE_NAME}/)
-
-               # Doc exclude
-               SET(DOXYGEN_EXCLUDE "")
-               STRING(REGEX REPLACE ";" " " DOXYGEN_EXCLUDE "${DOXYGEN_EXCLUDE}")
-
-               # Predefined symbols
-               SET(DOXYGEN_PROJECT_NAME "BBTK ${BBTK_PACKAGE_NAME} BBTK_PACKAGE")
-
-               STRING(REGEX REPLACE ";" " " DOXYGEN_DOC_PREDEFINED "${DOXYGEN_DOC_PREDEFINED}")
-
-               #-----------------------------------------------------------------------------
-               # DOT verification
-
-               IF(DOT)
-                  GET_FILENAME_COMPONENT(DOXYGEN_DOT_PATH ${DOT} PATH)
-                  SET(DOXYGEN_HAVE_DOT "YES")
-               ELSE(DOT)
-                  SET(DOXYGEN_DOT_PATH "")
-                  SET(DOXYGEN_HAVE_DOT "NO")
-               ENDIF(DOT)
-
-               #-----------------------------------------------------------------------------
-               # Create file and project
-               CONFIGURE_FILE(
-                  ${CMAKE_CURRENT_SOURCE_DIR}/../cmake/Doxyfile.txt
-                  ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile.txt
-                  IMMEDIATE
-               )
-
-               ADD_CUSTOM_COMMAND(
-                 OUTPUT ${PROJECT_BINARY_DIR}/doc/packages/${BBTK_PACKAGE_NAME}/html/index.html
-                 COMMAND 
-                 ${DOXYGEN} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile.txt
-                 DEPENDS bb${BBTK_PACKAGE_NAME} 
-               )
-
-               ADD_CUSTOM_TARGET(doxygen-bbtk-${BBTK_PACKAGE_NAME} ALL
-                  DEPENDS ${PROJECT_BINARY_DIR}/doc/packages/${BBTK_PACKAGE_NAME}/html/index.html 
-               )
-       ELSE(DOXYGEN)
-               MESSAGE(FATAL_ERROR "Doxygen not found. Required to build the doxygen documentation")
-       ENDIF(DOXYGEN)
-
-  ENDIF(BUILD_bbtk_DOC_DOXYGEN) 
-
-
-
-
-  #----------------------------------------------------------------------------
-  # bbdoc
-  #---------------------------------------------------------------------------
-  IF(BUILD_bbtk_DOC_BBTK_PACKAGE) 
+#---------------------------------------------------------------------------
+# If not a core package 
+# set the build doc option
+# and include necessary cmake scripts
+IF(NOT BBTK_CORE_PACKAGE)
+## TO DO 
+# INCLUDE(${BBTK_DIR}/BBTKMacros.cmake)
+# INCLUDE(${BBTK_DIR}/BBTKFindLibraries.cmake)
+# etc.
+OPTION(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME}_HTML_DOC 
+  "Build the bbtk package ${BBTK_PACKAGE_NAME} html documentation ?" OFF)
+SWITCH_ON_IF_BUILD_ALL(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME}_HTML_DOC)
+IF (BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME}_HTML_DOC)
+  SET(BUILD_bbtk_DOC_BBTK_PACKAGE ON) 
+  # INCLUDE
+ENDIF (BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME}_HTML_DOC)
+
+OPTION(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME}_DOXYGEN_DOC 
+  "Build the bbtk package ${BBTK_PACKAGE_NAME} doxygen documentation ?" OFF)
+SWITCH_ON_IF_BUILD_ALL(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME}_DOXYGEN_DOC)
+IF (BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME}_DOXYGEN_DOC)
+  SET(BUILD_bbtk_DOC_DOXYGEN ON) 
+  # INCLUDE
+ENDIF (BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME}_DOXYGEN_DOC)
+ENDIF(NOT BBTK_CORE_PACKAGE)
+#---------------------------------------------------------------------------
+
+#----------------------------------------------------------------------------
+
+
+
+IF(BUILD_bbtk_DOC_DOXYGEN) 
+  SUBDIRS(doxygen)
+
+  # Input : Sources
+  SET(DOXYGEN_INPUT 
+    ${DOXYGEN_INPUT}
+    ${PROJECT_SOURCE_DIR}/src/packages/${BBTK_PACKAGE_NAME}
+    )
     
-    #    MARK_AS_ADVANCED( bbdoc_PATH )
-
-    FILE(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/doc/packages)
-    FILE(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/doc/packages/${BBTK_PACKAGE_NAME})
-      
-
-    IF(WIN32)
-      IF(CMAKE_GENERATOR STREQUAL "Visual Studio 6")
-       SET(bbdoc_EXECUTABLE ${EXECUTABLE_OUTPUT_PATH}/$(IntDir)/bbdoc.exe)
-      ELSE(CMAKE_GENERATOR STREQUAL "Visual Studio 6")
-       SET(bbdoc_EXECUTABLE $(SolutionDir)/bin/$(OutDir)/bbdoc.exe)
-      ENDIF(CMAKE_GENERATOR STREQUAL "Visual Studio 6")
-    ELSE(WIN32)
-      SET(bbdoc_EXECUTABLE ${EXECUTABLE_OUTPUT_PATH}/bbdoc)
-    ENDIF(WIN32)      
-  
-# NEVER USE CONFIGURATION FILE BUT ALWAYS BUILD WITH THE JUST COMPILED LIBS 
-# NOT THE INSTALLED ONES !  
- #   IF(-bbtk_USE_CONFIGURATION_FILE)
-      # just pass the package name, not the full path name!
-      # and pass the option '1' to bbdoc to use config file
- #     SET(bbdoc_INPUT ${BBTK_PACKAGE_NAME} 1)    
- #   ELSE(-bbtk_USE_CONFIGURATION_FILE)
-      
-      
-      
-      IF(WIN32)
-       IF(CMAKE_GENERATOR STREQUAL "Visual Studio 6")
-         SET(bbdoc_INPUT ${EXECUTABLE_OUTPUT_PATH}/$(IntDir)/${BBTK_PACKAGE_NAME})
-       ELSE(CMAKE_GENERATOR STREQUAL "Visual Studio 6")
-         SET(bbdoc_INPUT $(SolutionDir)/bin/$(OutDir)/${BBTK_PACKAGE_NAME})
-       ENDIF(CMAKE_GENERATOR STREQUAL "Visual Studio 6")
-      ELSE(WIN32)
-        SET(bbdoc_INPUT ${LIBRARY_OUTPUT_PATH}/${BBTK_PACKAGE_NAME})
-      ENDIF(WIN32)    
- #   ENDIF(-bbtk_USE_CONFIGURATION_FILE)
+    STRING(REGEX REPLACE ";" " " DOXYGEN_INPUT "${DOXYGEN_INPUT}")
+    
+    # Output dir
+    SET(DOXYGEN_OUTPUT 
+      ${PROJECT_BINARY_DIR}/doc/packages/${BBTK_PACKAGE_NAME}/)
+    
+    # Doc exclude
+    SET(DOXYGEN_EXCLUDE "")
+    STRING(REGEX REPLACE ";" " " DOXYGEN_EXCLUDE "${DOXYGEN_EXCLUDE}")
+    
+    # Predefined symbols
+    SET(DOXYGEN_PROJECT_NAME "BBTK ${BBTK_PACKAGE_NAME} BBTK_PACKAGE")
+    
+    STRING(REGEX REPLACE ";" " " DOXYGEN_DOC_PREDEFINED "${DOXYGEN_DOC_PREDEFINED}")
+    
+    #-----------------------------------------------------------------------------
+    # DOT verification
+    
+    IF(DOT)
+      GET_FILENAME_COMPONENT(DOXYGEN_DOT_PATH ${DOT} PATH)
+      SET(DOXYGEN_HAVE_DOT "YES")
+    ELSE(DOT)
+      SET(DOXYGEN_DOT_PATH "")
+      SET(DOXYGEN_HAVE_DOT "NO")
+    ENDIF(DOT)
+    
+    #-----------------------------------------------------------------------------
+    # Create file and project
+    CONFIGURE_FILE(
+      ${CMAKE_CURRENT_SOURCE_DIR}/../cmake/Doxyfile.txt
+      ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile.txt
+      IMMEDIATE
+      )
     
-
     ADD_CUSTOM_COMMAND(
-      OUTPUT ${PROJECT_BINARY_DIR}/doc/packages/${BBTK_PACKAGE_NAME}/${BBTK_PACKAGE_NAME}.html
+      OUTPUT ${PROJECT_BINARY_DIR}/doc/packages/${BBTK_PACKAGE_NAME}/html/index.html
       COMMAND 
-      ${bbdoc_EXECUTABLE} ${bbdoc_INPUT} ${PROJECT_BINARY_DIR}/doc/packages/${BBTK_PACKAGE_NAME}/${BBTK_PACKAGE_NAME}.html
-      DEPENDS 
-      bb${BBTK_PACKAGE_NAME}
-      ${bbdoc_EXECUTABLE}
-      )     
+      ${DOXYGEN} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile.txt
+      DEPENDS bb${BBTK_PACKAGE_NAME} 
+      )
     
-    ADD_CUSTOM_TARGET(${BBTK_PACKAGE_NAME}.html ALL
-      DEPENDS ${PROJECT_BINARY_DIR}/doc/packages/${BBTK_PACKAGE_NAME}/${BBTK_PACKAGE_NAME}.html)
-    
-  ENDIF(BUILD_bbtk_DOC_BBTK_PACKAGE) 
+    ADD_CUSTOM_TARGET(doxygen-bbtk-${BBTK_PACKAGE_NAME} ALL
+      DEPENDS ${PROJECT_BINARY_DIR}/doc/packages/${BBTK_PACKAGE_NAME}/html/index.html 
+      )
+  ELSE(DOXYGEN)
+    MESSAGE(FATAL_ERROR "Doxygen not found. Required to build the doxygen documentation")
+  ENDIF(DOXYGEN)
+  
+ENDIF(BUILD_bbtk_DOC_DOXYGEN) 
+
+
+
+
+#----------------------------------------------------------------------------
+# bbdoc
+#---------------------------------------------------------------------------
+IF(BUILD_bbtk_DOC_BBTK_PACKAGE) 
   
+  #    MARK_AS_ADVANCED( bbdoc_PATH )
   
+  FILE(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/doc/packages)
+  FILE(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/doc/packages/${BBTK_PACKAGE_NAME})
+  
+  
+  IF(WIN32)
+    IF(CMAKE_GENERATOR STREQUAL "Visual Studio 6")
+      SET(bbdoc_EXECUTABLE ${EXECUTABLE_OUTPUT_PATH}/$(IntDir)/bbdoc.exe)
+    ELSE(CMAKE_GENERATOR STREQUAL "Visual Studio 6")
+      SET(bbdoc_EXECUTABLE $(SolutionDir)/bin/$(OutDir)/bbdoc.exe)
+    ENDIF(CMAKE_GENERATOR STREQUAL "Visual Studio 6")
+  ELSE(WIN32)
+    SET(bbdoc_EXECUTABLE ${EXECUTABLE_OUTPUT_PATH}/bbdoc)
+  ENDIF(WIN32)      
+  
+  # NEVER USE CONFIGURATION FILE BUT ALWAYS BUILD WITH THE JUST COMPILED LIBS 
+  # NOT THE INSTALLED ONES !  
+  #   IF(-bbtk_USE_CONFIGURATION_FILE)
+  # just pass the package name, not the full path name!
+  # and pass the option '1' to bbdoc to use config file
+  #     SET(bbdoc_INPUT ${BBTK_PACKAGE_NAME} 1)    
+  #   ELSE(-bbtk_USE_CONFIGURATION_FILE)
+  
+  
+  
+  IF(WIN32)
+    IF(CMAKE_GENERATOR STREQUAL "Visual Studio 6")
+      SET(bbdoc_INPUT ${EXECUTABLE_OUTPUT_PATH}/$(IntDir)/${BBTK_PACKAGE_NAME})
+    ELSE(CMAKE_GENERATOR STREQUAL "Visual Studio 6")
+      SET(bbdoc_INPUT $(SolutionDir)/bin/$(OutDir)/${BBTK_PACKAGE_NAME})
+    ENDIF(CMAKE_GENERATOR STREQUAL "Visual Studio 6")
+  ELSE(WIN32)
+    SET(bbdoc_INPUT ${LIBRARY_OUTPUT_PATH}/${BBTK_PACKAGE_NAME})
+  ENDIF(WIN32)    
+  #   ENDIF(-bbtk_USE_CONFIGURATION_FILE)
+  
+  
+  ADD_CUSTOM_COMMAND(
+    OUTPUT ${PROJECT_BINARY_DIR}/doc/packages/${BBTK_PACKAGE_NAME}/${BBTK_PACKAGE_NAME}.html
+    COMMAND 
+    ${bbdoc_EXECUTABLE} ${bbdoc_INPUT} ${PROJECT_BINARY_DIR}/doc/packages/${BBTK_PACKAGE_NAME}/${BBTK_PACKAGE_NAME}.html
+    DEPENDS 
+    bb${BBTK_PACKAGE_NAME}
+    ${bbdoc_EXECUTABLE}
+    )     
+  
+  ADD_CUSTOM_TARGET(${BBTK_PACKAGE_NAME}.html ALL
+    DEPENDS ${PROJECT_BINARY_DIR}/doc/packages/${BBTK_PACKAGE_NAME}/${BBTK_PACKAGE_NAME}.html)
+  
+ENDIF(BUILD_bbtk_DOC_BBTK_PACKAGE) 
+
+