FIND_PACKAGE(Doxygen) MACRO (CREATE_DOXYGEN outputdir inputdir name) FOREACH (tag ${ARGN}) STRING(REGEX REPLACE "=.*" "" tagfile ${tag}) SET(tagdeps ${tagdeps} ${tagfile} ) ENDFOREACH (tag) ADD_CUSTOM_COMMAND( OUTPUT ${outputdir}/${name} COMMAND mkdir -p ${outputdir}/${name} COMMENT "Creating documentation directory for ${name}" ) ADD_CUSTOM_COMMAND( OUTPUT ${outputdir}/${name}/Doxyfile COMMAND sed ${CMAKE_SOURCE_DIR}/Doxyfile -e 's!PROJECT_SOURCE_DIR!${inputdir}!g' -e 's!DOCUMENTATION_OUTPUT_PATH!${outputdir}!g' -e 's!_PROJECT_NAME!${name}!g' -e 's!TAG_FILES!${ARGN}!g' > Doxyfile DEPENDS ${CMAKE_SOURCE_DIR}/Doxyfile ${outputdir}/${name} WORKING_DIRECTORY ${outputdir}/${name} COMMENT "Generating Doxyfile for ${name}" ) ADD_CUSTOM_COMMAND( OUTPUT ${outputdir}/${name}.tag COMMAND ${DOXYGEN_EXECUTABLE} DEPENDS ${outputdir}/${name}/Doxyfile WORKING_DIRECTORY ${outputdir}/${name} COMMENT "Creating tag for ${name}" ) ADD_CUSTOM_COMMAND( OUTPUT ${outputdir}/${name}/index.html COMMAND ${DOXYGEN_EXECUTABLE} DEPENDS ${outputdir}/${name}.tag ${tagdeps} WORKING_DIRECTORY ${outputdir}/${name} COMMENT "Creating HTML documentation for ${name}" ) ADD_CUSTOM_TARGET(doxygen-${name} DEPENDS ${outputdir}/${name}/index.html ) # INSTALL( # DIRECTORY # ${outputdir}/${name} # DESTINATION # ${CMAKE_INSTALL_PREFIX}/share/doc/${CMAKE_PROJECT_NAME}-${SIGEN_VERSION}/${name} # COMPONENT # documentation # ) ENDMACRO (CREATE_DOXYGEN)