find_package(Doxygen)

if(NOT DOXYGEN_FOUND)
  return()
endif()

# Zapisz wyniki tylko w formacie XML, bo właśnie on jest konsumowany przez narzędzie Breathe.
set(DOXYGEN_GENERATE_HTML NO)
set(DOXYGEN_GENERATE_XML YES)

# Nie generuj dokumentacji na temat szczegółów implementacji.
set(DOXYGEN_EXCLUDE_PATTERNS "*/detail/*")

# Wypisuj ścieżki w sposób względny do katalogu include.
set(DOXYGEN_STRIP_FROM_PATH ${PROJECT_SOURCE_DIR}/include)

# Uwaga: Użyj funkcji doxygen_add_docs(doxygen-doc ALL ...), jeśli chcesz, by
# dokumentacja była tworzona domyślnie przy każdej operacji budowania. Bez tego 
# słowa kluczowego trzeba będzie jawnie wywoływać budowę celu 'doc'. 
doxygen_add_docs(doxygen-doc ${PROJECT_SOURCE_DIR}/include COMMENT
                 "Generowanie dokumentacji API za pomocą narzędzia Doxygen")

find_package(Sphinx REQUIRED)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/conf.py.in
               ${CMAKE_CURRENT_BINARY_DIR}/conf.py @ONLY)
add_custom_target(
  sphinx-doc ALL
  COMMAND ${SPHINX_EXECUTABLE} -b html -c ${CMAKE_CURRENT_BINARY_DIR}
          ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}
  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
  COMMENT "Generowanie dokumentacji API za pomocą narzędzia Sphinx"
  VERBATIM)

add_dependencies(sphinx-doc doxygen-doc)
