cmake_minimum_required(VERSION 3.1.3 FATAL_ERROR)

# Find doxygen, Module help:
# https://cmake.org/cmake/help/v3.10/module/FindDoxygen.html
find_package(Doxygen)

# cached path to this file, forces refresh on each use
unset(DOCS_LIST_DIR CACHE)
set(DOCS_LIST_DIR "${CMAKE_CURRENT_LIST_DIR}"
  CACHE STRING "(autogenerated) path to docs/CMakeLists.txt")

# Defaults
set(DOXY_NO_THEME_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}"
  CACHE PATH "Path to the doxygen output without theme")
set(DOXY_MCSS_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}"
  CACHE PATH "Path to the doxygen output with mcss theme")

set(DOXY_ROOT_DIR "${DOCS_LIST_DIR}/.."
  CACHE PATH "Path to doxygen root dir")

set(doxy_template "${DOCS_LIST_DIR}/Doxyfile.in")
set(doxy_file "${DOXY_NO_THEME_OUTPUT_DIR}/Doxyfile")
set(doxy_mcss_file "${DOXY_MCSS_OUTPUT_DIR}/Doxyfile-mcss")

# @note: m.css theme cloned as submodule
set(MCSS_ROOT_DIR_FOR_DOCS "${DOXY_ROOT_DIR}/submodules/m.css"
  CACHE PATH "Path to m.css theme for doxygen output")

set(PROJECT_SOURCES_DIR_FOR_DOCS "${DOXY_ROOT_DIR}/src/"
  CACHE PATH "Path to project sources")

set(m_css_executable "${MCSS_ROOT_DIR_FOR_DOCS}/documentation/doxygen.py")

## START used in the Doxyfile.in >
set(DOXY_DOC_DEST_DIR ${DOXY_NO_THEME_OUTPUT_DIR}
  CACHE PATH "Path to the doxygen output")
set(DOXY_PROJECT_NAME ${PROJECT_NAME}
  CACHE PATH "DOXY_PROJECT_NAME")
set(DOXY_PROJECT_VER ${${PROJECT_NAME}_VERSION}
  CACHE PATH "DOXY_PROJECT_VER")
set(DOXY_DOC_INPUT_ROOT_DIRS
  "${PROJECT_SOURCES_DIR_FOR_DOCS}/ ${DOCS_LIST_DIR}"
    CACHE PATH "Path from where to start to parse")
set(DOXY_DOC_EXCLUDE_PATTERNS_DIRS
  "${DOXY_NO_THEME_OUTPUT_DIR}" # ;${DOXY_MCSS_OUTPUT_DIR}
    CACHE STRING "Regex patterns exclusion")
set(DOXY_DOC_COMMON_IMG_PATH "${DOXY_ROOT_DIR}"
  CACHE PATH "Path from which doxygen will be able to found referenced images")
## END used in the Doxyfile.in <

message(STATUS "DOXY_NO_THEME_OUTPUT_DIR: ${DOXY_NO_THEME_OUTPUT_DIR}")

enable_doxygen_generator(${DOCS_LIST_DIR}/Doxyfile-mcss)
