12 Générer la documentation de son programme

Comment générer la documentation de son programme.

D'ordinaire on appelle Doxygen il trouve le Doxyfile, on attend et c'est bon.

Et bien avec CMake c'est la même chose, on va appeler Doxygen

Pour cela, nous avons cette commande :

1
exec_program( )

Voici le prototype complet :

1
2
3
4
5
6
exec_program(programme
	working_directory
	ARGS arguments
	OUTPUT_VARIABLE output1
	RETURN_VALUE ret
)

Où :

  • programme est le nom du programme à exécuter (dans notre cas se sera doxygen)
  • working_directory le dossier dans lequel le programme doit être exécuté (dans notre cas se sera CMAKE_CURRENT_SOURCE_DIR)
  • arguments les arguments que l'on doit passer au programme (dans notre cas se sera CMAKE_CURRENT_SOURCE_DIR/Doxyfile)
  • output1 variable de sortie (nous n'en aurons pas)
  • ret valeur retournée (nous n'en aurons pas)

Notre appel à Doxygen sera donc comme ceci :

1
2
3
4
exec_program(doxygen
		"${CMAKE_CURRENT_SOURCE_DIR}"
		ARGS "${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile"
)

Mais ce n'est pas fini. Il faut aussi inclure le dossier où se trouve la doc, et si possible le faire que quand on veut générer la doc (car ça peut être très long).

Voici l'appel complet :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
set(DOC_MODE no CACHE BOOL "Doc mode")

...

if(DOC_MODE)
	##Generation of the documentation using doxygen
	find_path(DOXYGEN_DIR doxygen
	/usr/local/bin
	/usr/bin
	)
	if (DOXYGEN_DIR)
		exec_program(doxygen
			"${CMAKE_CURRENT_SOURCE_DIR}"
			ARGS "${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile"
		)
		add_subdirectory(doc)
	else (DOXYGEN_DIR)
		message(STATUS "Doxygen not found, I cannot generate the documentation")
	endif (DOXYGEN_DIR)
else(DOC_MODE)
	message(STATUS "No documentation")
endif(DOC_MODE)