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

Reply via email to