#--------------------------------------------------------------------------- # 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} ) 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) # 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)