[CMake] appending srcs to custom_target, or doxygen support

Mark Lohry mlohry at gmail.com
Wed Jul 1 12:03:10 EDT 2009


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)



which works fine for just that one directory, but placing that same section
in ./src/lib2,3,4.. gives an error "target doc already defined". I'd rather
not have a custom doc target (make doc_lib1, make doc_lib2...) for each
library. So is there any facility to do something like  "if( exists
custom_target doc ) then append( command to doxy the next library)"?

Thanks in advance!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20090701/a840696f/attachment.htm>


More information about the CMake mailing list