Am Mittwoch 01 Juli 2009 18:03:10 schrieb Mark Lohry:
> Apologies if this has been covered, but I'm only seeing occasional
> references to doxygen in the archives.
>
> Is there any built-in mechanism for some kind of "make doc" to invoke
> building documentation through doxygen, or does it require
> ADD_CUSTOM_TARGET?
>
> Presuming there isn't, I have several library directories beneath the top
> source directory, each of which contains it's own doxygen config file. I'd
> like the flexibility of building within just those libraries individually
> (i.e. run cmake on ./src/lib1/, and make doc to use
> ./src/lib1/DOXYGEN_CONFIG_FILE), or building all at once with the top level
> cmakelists (i.e. run cmake on ./src, and make doc to build all the
> individual library docs.)
>
> in ./src/lib1/cmakelists.txt I have:
>
> if(DOXYGEN_EXECUTABLE AND UNIX)
> IF(EXISTS ${PROJECT_SOURCE_DIR}/${DOXYGEN_CONFIG_FILE})
> message( "***** Doxygen config file found *****" )
> SET(DOXYFILE_FOUND true)
> ADD_CUSTOM_TARGET( doc ${DOXYGEN_EXECUTABLE}
> "${PROJECT_SOURCE_DIR}/${DOXYGEN_CONFIG_FILE}" )
> install(DIRECTORY ${CMAKE_SOURCE_DIR}/doc/ DESTINATION ${docdir}/html)
> ENDIF(EXISTS ${PROJECT_SOURCE_DIR}/${DOXYGEN_CONFIG_FILE})
> endif(DOXYGEN_EXECUTABLE AND UNIX)
That ADD_CUSTOM_TARGET should be a ADD_CUSTOM_COMMAND (so only rebuilt when
needed). Simple create the
ADD_CUSTOM_TARGET(doc)
globally and another custom target for each doxygen documentation:
ADD_CUSTOM_TARGET(subproject1-doc)
and add dependencies on your specific doc target to the global doc target. You
can also add a dependency on the target that this documentation is for, so it
automatically gets build if you do not build all of the project.
That usually works fine here.
HS
_______________________________________________
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake