]> Creatis software - creaBruker.git/blobdiff - lib/src1/doxygen/CMakeLists.txt
create creaBruker doxygene doc
[creaBruker.git] / lib / src1 / doxygen / CMakeLists.txt
diff --git a/lib/src1/doxygen/CMakeLists.txt b/lib/src1/doxygen/CMakeLists.txt
new file mode 100644 (file)
index 0000000..8d93146
--- /dev/null
@@ -0,0 +1,120 @@
+
+
+MACRO(CREA_BUILD_DOXYGEN_DOC NAME INPUT DOC_RELATIVE_INSTALL_PATH PREDEFINED)
+
+  #--------------------------------------------------------------------------
+  SET(USE_DOXYGEN ON CACHE BOOL "" FORCE)
+  
+  # Name
+  SET(DOXYGEN_PROJECT_NAME "${NAME}")
+
+  # Inputs
+  STRING(REGEX REPLACE ";" " " DOXYGEN_INPUT "${INPUT}")
+
+  # Output dirs
+  SET(DOXYGEN_HTML_OUTPUT ".")
+  SET(DOXYGEN_OUTPUT ${PROJECT_BINARY_DIR}/${DOC_RELATIVE_INSTALL_PATH})
+  IF(NOT IS_DIRECTORY ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT})
+    FILE(MAKE_DIRECTORY ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT})
+  ENDIF(NOT IS_DIRECTORY ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT})
+
+  # Doc exclude
+  SET(DOXYGEN_EXCLUDE "CppSQLite3.h;CppSQLite3.cpp")
+  STRING(REGEX REPLACE ";" " " DOXYGEN_EXCLUDE "${DOXYGEN_EXCLUDE}")
+
+  # Log file name 
+  SET(DOXYGEN_LOGFILE "${CMAKE_CURRENT_BINARY_DIR}/doxygen.log")
+
+  # Predefined symbols
+  STRING(REGEX REPLACE ";" " " DOXYGEN_DOC_PREDEFINED "${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}/Doxyfile.txt.in
+    ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile.txt
+    @ONLY IMMEDIATE
+    )
+  
+  ADD_CUSTOM_COMMAND(
+    OUTPUT ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT}/index.html
+    COMMAND 
+    ${DOXYGEN}
+    ARGS
+    ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile.txt
+    #  DEPENDS bbtk bbi 
+    )
+  
+  ADD_CUSTOM_TARGET(doxygen_${NAME} ALL
+    DEPENDS  ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT}/index.html
+    )
+  
+#  INSTALL(
+#    DIRECTORY
+#    ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT}
+#    DESTINATION
+#    ${BBTK_DOXYGEN_INSTALL_PATH}/${DOC_RELATIVE_INSTALL_PATH}
+#    )
+  #--------------------------------------------------------------------------
+       
+ENDMACRO(CREA_BUILD_DOXYGEN_DOC)
+
+
+
+
+FILE(GLOB PAGES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.htm")
+#MESSAGE(STATUS "DOXYGEN HTML PAGES = ${PAGES}")
+FOREACH(PAGE ${PAGES})
+  CONFIGURE_FILE(
+    ${CMAKE_CURRENT_SOURCE_DIR}/${PAGE}
+    ${PROJECT_BINARY_DIR}/doxygen/${PAGE}
+    IMMEDIATE
+  )
+#MESSAGE(STATUS "COPYING ${PAGE} TO ${PROJECT_BINARY_DIR}/doxygen/${PAGE}")
+ENDFOREACH(PAGE)
+
+
+FILE(GLOB IMAGES_PAGE RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.png" "*.jpg")
+FOREACH(IMAGE_PAGE ${IMAGES_PAGE})
+  CONFIGURE_FILE(
+    ${CMAKE_CURRENT_SOURCE_DIR}/${IMAGE_PAGE}
+    ${PROJECT_BINARY_DIR}/doxygen/${IMAGE_PAGE}
+    COPYONLY
+  )
+ENDFOREACH(IMAGE_PAGE)
+
+
+
+CONFIGURE_FILE(
+  ${CMAKE_CURRENT_SOURCE_DIR}/DoxyMainPage.txt.in
+  ${CMAKE_CURRENT_BINARY_DIR}/DoxyMainPage.txt
+  @ONLY IMMEDIATE
+  )
+
+SET(INPUT 
+  ${CMAKE_CURRENT_BINARY_DIR}/DoxyMainPage.txt
+  ${PROJECT_SOURCE_DIR}/lib/src1
+
+  )
+
+SET(DOXYGEN_DOC_PREDEFINED USE_WXWIDGETS)
+
+CREA_BUILD_DOXYGEN_DOC(
+  ${CMAKE_PROJECT_NAME}_lib 
+  "${INPUT}" 
+  "doxygen" 
+  "${CREA_DEFINITIONS}"
+  )
+
+#MESSAGE("DOX : ${CREA_DEFINITIONS}")