This sounds like a good idea.
Having to manage the library_list.txt as a separate file is a bit unwieldy.
Having something integrated more directly into CMakeLists.txt is likely to be much easier to remember and manage.

Does this mean that it would only generate the documentation for the modules currently being built (defined by the flags in the CMakeCache.txt)?

Secondly, can the system be easily modified to build documentation for internal libraries (ie not part of the VXL tree, but will depend on the VXL classes)?


Tim Cootes                                  Professor of Computer Vision
Imaging Science and Biomedical Engineering  tel   (+44) 0161 275 5146
The University of Manchester                fax   (+44) 0161 275 5145
Manchester M13 9PT , UK           

-----Original Message-----
From: Miguel A. Figueroa-Villanueva []
Sent: Sat 4/25/2009 2:59 PM
To: Vxl-maintainers
Subject: [Vxl-maintainers] CMake driven doxygen build.

I have an initial implementation of support for a CMake driven doxygen
documentation build. The idea is that if someone wants to build the
documentation he only needs to turn BUILD_DOCUMENTATION on in CMake.
This also means that the automatic build can be done using CTest.

The way it works is that I use the following macro in CMakeLists.txt
file to gather the information required into a
doxygen_configuration.cmake file generated at the binary directed and
then whenever the custom target build_doxygen_doc is run it produces
the docs.

  doxygen_add_library(<library> <library_deps>)

For example:

  doxygen_add_library(contrib/gel/mrc/vpgl core/vcsl core/vgl core/vnl core/vsl)

I could parse a file like the current method with
scripts/doxy/data/library_list.txt, but I think having this macro is
easier to maintain as it is close to everything else (i.e., if a
dependency is added to target_link_libraries you'll likely remember to
add it in the doxygen_add_library which is in the next line).

I still don't have support for not building the docs if nothing has
changed (like the old system had by parsing cvs update output), but it
may be easy to achieve by parsing the 'svn info' output.

Before I proceed to fine tune the system I would like feedback on
whether this is a good direction (meaning I can soon checkin a version
to replace the current system), otherwise I'll stop and use it only to
build my stuff here to inspect the doxygen output.


Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensign option that enables unlimited
royalty-free distribution of the report engine for externally facing
server and web deployment.
Vxl-maintainers mailing list