find_package(Doxygen)
find_program(FIG2DEV fig2dev)
find_program(TEXI2DVI texi2dvi)
find_package(LATEX)
if (PDFLATEX_COMPILER AND MAKEINDEX_COMPILER)
	set(LATEX_FOUND true)
endif()

macro(add_info_file thename)
	set(${thename}_INFO ${CMAKE_CURRENT_BINARY_DIR}/${thename}.info)
	set(${thename}_HTML ${CMAKE_CURRENT_BINARY_DIR}/${thename}.html)
	set(${thename}_TEXINFO ${CMAKE_CURRENT_SOURCE_DIR}/${thename}.texi)
	add_custom_command(
		OUTPUT ${${thename}_INFO}
		COMMAND ${MAKEINFO} --no-split -o ${${thename}_INFO} ${${thename}_TEXINFO}
		DEPENDS ${${thename}_TEXINFO}
		COMMENT "MAKEFINO ${thename}.texi"
		VERBATIM)
	add_custom_command(
		OUTPUT ${${thename}_HTML}
		COMMAND ${MAKEINFO} --html --no-split -o ${${thename}_HTML} ${${thename}_TEXINFO}
		DEPENDS ${${thename}_TEXINFO} ${${thename}_HTML_EXTRA_DEPS}
		COMMENT "MAKEINFOHTML ${thename}.texi"
		VERBATIM)
	add_custom_target(${thename}_info ALL DEPENDS ${${thename}_INFO})
	add_custom_target(${thename}_html DEPENDS ${${thename}_HTML})
	add_dependencies(info ${thename}_info)
	add_dependencies(html ${thename}_html)
	install(FILES ${${thename}_INFO} DESTINATION "${CMAKE_INSTALL_PREFIX}/share/info")
endmacro()

macro(pdflatex_process texfile)
	get_filename_component(_dirname "${texfile}" PATH)
	get_filename_component(_basename "${texfile}" NAME_WE)
	set(_idx ${_dirname}/${_basename}.idx)
	set(_ind ${_dirname}/${_basename}.ind)
	set(_pdf ${_dirname}/${_basename}.pdf)
	add_custom_command(
		OUTPUT ${_idx}
		COMMAND ${PDFLATEX_COMPILER} ${texfile}
		WORKING_DIRECTORY ${_dirname}
		DEPENDS ${texfile}
		COMMENT "PDFLATEX ${_basename}.tex (1)")
	add_custom_command(
		OUTPUT ${_ind}
		COMMAND ${MAKEINDEX_COMPILER} ${_idx}
		WORKING_DIRECTORY ${_dirname}
		DEPENDS ${texfile} ${_idx}
		COMMENT "MAKEINDEX ${_basename}.idx")
	add_custom_command(
		OUTPUT ${_pdf}
		COMMAND ${PDFLATEX_COMPILER} ${texfile}
		WORKING_DIRECTORY ${_dirname}
		DEPENDS ${texfile} ${_ind}
		COMMENT "PDFLATEX ${_basename}.tex (2)")
endmacro()

add_subdirectory(tutorial)
add_subdirectory(examples)
if (DOXYGEN_FOUND)
	add_subdirectory(reference)
endif()

