[CMake] appending srcs to custom_target, or doxygen support
Tyler Roscoe
tyler at cryptio.net
Wed Jul 1 12:22:02 EDT 2009
On Wed, Jul 01, 2009 at 11:03:10AM -0500, Mark Lohry wrote:
> 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)"?
Look at if(TARGET ...) and add_custom_command(... APPEND). I'm not sure
the APPEND part will work because there are issues with custom_commands
across multiple directories (I don't remember the details, but the
archives do).
tyler
More information about the CMake
mailing list