Quoting [EMAIL PROTECTED]:
Hi all,
currently I can generate for some subdirectories my Latex and
Doxygen documentation. This is done like it is described in the
cmake FAQ.
What I now want to do is to collect all this commands of the
subdirectory and put it in an unique common build command, e.g. make
doc.
The idea is that the user can generate all documents with one common
command, like cmake currently does during source build when a user
types make all.
The problem is that when I add a custom target it doesn't know about
targets given by a ADD_SUBDIRECTORY command.
Consider following structure:
\src
\modules
\module1 -> some docu
\module2 -> some docu
\module3 -> some docu
\tools
\tool1 -> some docu
\tool2 -> some docu
Then think about the user who types in "make doc" and all documents
of the whole build is generated.
Is it with current release (cmake 2.4.7) possible to generate such a
command for generating documentation?
If not so. Does the next big step of cmake (cmake 2.5 or 2.6 ???)
consider something like a doc command in it? Similar to the install
command which collects all informations of the to installable files.
Thanks for your help.
Greetings
Alexander
I'm using this:
# Create a "make doc" target using Doxygen
# Prototype:
# GENERATE_DOCUMENTATION(doxygen_config_file)
# Parameters:
# doxygen_config_file Doxygen configuration file (must be in the
root of the source directory)
MACRO(GENERATE_DOCUMENTATION DOXYGEN_CONFIG_FILE)
FIND_PACKAGE(Doxygen)
SET(DOXYFILE_FOUND false)
IF(EXISTS ${PROJECT_SOURCE_DIR}/${DOXYGEN_CONFIG_FILE})
SET(DOXYFILE_FOUND true)
ENDIF(EXISTS ${PROJECT_SOURCE_DIR}/${DOXYGEN_CONFIG_FILE})
IF( DOXYGEN_FOUND )
IF( DOXYFILE_FOUND )
# Add target
ADD_CUSTOM_TARGET( doc ALL ${DOXYGEN_EXECUTABLE}
"${PROJECT_SOURCE_DIR}/${DOXYGEN_CONFIG_FILE}" )
# Add .tag file and generated documentation to the list of
files we must erase when distcleaning
# Read doxygen configuration file
FILE( READ ${PROJECT_SOURCE_DIR}/${DOXYGEN_CONFIG_FILE}
DOXYFILE_CONTENTS )
STRING( REGEX REPLACE "\n" ";" DOXYFILE_LINES ${DOXYFILE_CONTENTS} )
# Parse .tag filename and add to list of files to delete if it exists
FOREACH( DOXYLINE ${DOXYFILE_CONTENTS} )
STRING( REGEX REPLACE ".*GENERATE_TAGFILE *= *([^
^\n]+).*" "\\1" DOXYGEN_TAG_FILE ${DOXYLINE} )
ENDFOREACH( DOXYLINE )
ADD_TO_DISTCLEAN( ${PROJECT_BINARY_DIR}/${DOXYGEN_TAG_FILE} )
# Parse doxygen output doc dir and add to list of files to
delete if it exists
FOREACH( DOXYLINE ${DOXYFILE_CONTENTS} )
STRING( REGEX REPLACE ".*OUTPUT_DIRECTORY *= *([^
^\n]+).*" "\\1" DOXYGEN_DOC_DIR ${DOXYLINE} )
ENDFOREACH( DOXYLINE )
ADD_TO_DISTCLEAN( ${PROJECT_BINARY_DIR}/${DOXYGEN_DOC_DIR} )
ADD_TO_DISTCLEAN( ${PROJECT_BINARY_DIR}/${DOXYGEN_DOC_DIR}.dir )
ELSE( DOXYFILE_FOUND )
MESSAGE( STATUS "Doxygen configuration file not found -
Documentation will not be generated" )
ENDIF( DOXYFILE_FOUND )
ELSE(DOXYGEN_FOUND)
MESSAGE(STATUS "Doxygen not found - Documentation will not be generated")
ENDIF(DOXYGEN_FOUND)
ENDMACRO(GENERATE_DOCUMENTATION)
--
Pau Garcia i Quiles
http://www.elpauer.org
(Due to my workload, I may need 10 days to answer)
_______________________________________________
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake