project(ExempleGenerationDoc)
cmake_minimum_required(VERSION 2.6)

set(PROGRAM_NAME "ExempleGenerationDoc")
set(PROGRAM_VERSION "0.9.10")
set(PROGRAM_DESCRIPTION "Exemple de génération de doc avec CMake et Doxygen")


#le mode d'installation
set(RELEASE_MODE no CACHE BOOL "Install mode")
#le mode de documentation
set(DOC_MODE no CACHE BOOL "Doc mode")

#si on veut installer le programme, on le compile en mode optimisé
message(STATUS "RELEASE_MODE : ${RELEASE_MODE}")
if(RELEASE_MODE)
	add_definitions(-O3 -DNDEBUG -DCMAKE_INSTALL_PREFIX="${CMAKE_INSTALL_PREFIX}" -DPROGRAM_VERSION="${PROGRAM_VERSION}")
	message(STATUS "CMAKE_INSTALL_PREFIX : ${CMAKE_INSTALL_PREFIX}")
	message(STATUS "PROGRAM_VERSION : ${PROGRAM_VERSION}")
else(RELEASE_MODE)
	add_definitions(-O0 -Wall -DPROGRAM_VERSION="${PROGRAM_VERSION}")
	message(STATUS "ExempleGenerationDoc Debug mode")
	message(STATUS "ExempleGenerationDoc_VERSION : ${PROGRAM_VERSION}")
endif(RELEASE_MODE)

add_subdirectory(src)

if(DOC_MODE)
	##Generation of the documentation using doxygen
	find_path(DOXYGEN_DIR doxygen
	/usr/local/bin
	/usr/bin
	)
	if (DOXYGEN_DIR)
		#si vous allez voir dans le dossier build, vous allez trouver le fichier Doxyfile
		configure_file(Doxyfile.cmake Doxyfile)
		#on affiche quelques chemins pour être sûre de ce qu'on fait
		message(STATUS "Find Doxygen at ${DOXYGEN_DIR}")
		message(STATUS "-- Doxygen generation of the documentation")
		message(STATUS "Doxyfile in ${CMAKE_CURRENT_SOURCE_DIR}/build")
		#on génère la doc avec doxygen
		exec_program(doxygen
			"${CMAKE_CURRENT_SOURCE_DIR}"
			ARGS "${CMAKE_CURRENT_SOURCE_DIR}/build/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)


