set(DOXYGEN_GENERATE_HTML YES PARENT_SCOPE)

set(DOXYGEN_TOC_INCLUDE_HEADINGS 0 PARENT_SCOPE)
set(DOXYGEN_DISABLE_INDEX YES PARENT_SCOPE)
set(DOXYGEN_GENERATE_TREEVIEW YES PARENT_SCOPE)
set(DOXYGEN_FULL_SIDEBAR NO PARENT_SCOPE)

file(GLOB CSS_FILES ./*.css)
set(DOXYGEN_HTML_EXTRA_STYLESHEET ${CSS_FILES} PARENT_SCOPE)
set(DOXYGEN_HTML_HEADER ${CMAKE_CURRENT_SOURCE_DIR}/header.html PARENT_SCOPE)

if(NOT FENIX_BRANCH STREQUAL "local")
    message(STATUS "Building documentation for branch ${FENIX_BRANCH}")
    set(DOXYGEN_HTML_OUTPUT ${FENIX_BRANCH} PARENT_SCOPE)
    set(DOXYGEN_PROJECT_NUMBER "@${FENIX_BRANCH}" PARENT_SCOPE)
endif()



file(GLOB DOC_INDEXES RELATIVE ${DOXYGEN_OUTPUT_DIRECTORY} CONFIGURE_DEPENDS ${DOXYGEN_OUTPUT_DIRECTORY}/*/index.html)
foreach(DOC_INDEX ${DOC_INDEXES})
    string(REGEX REPLACE "/index.html" "" DOC_VERSION ${DOC_INDEX})
    list(APPEND DOC_VERSIONS ${DOC_VERSION})
endforeach()
if("html" IN_LIST DOC_VERSIONS)
    list(REMOVE_ITEM DOC_VERSIONS "html")
endif()

list(APPEND DOC_VERSIONS ${DOXYGEN_HTML_OUTPUT})
list(REMOVE_DUPLICATES DOC_VERSIONS)
list(SORT DOC_VERSIONS)
if("main" IN_LIST DOC_VERSIONS)
    list(REMOVE_ITEM DOC_VERSIONS "main")
    list(PREPEND DOC_VERSIONS "main")
endif()

message(STATUS "Documentation versions: ${DOC_VERSIONS}")

set(DOC_DEFAULT_VERSION "develop")
if(NOT DOC_DEFAULT_VERSION IN_LIST DOC_VERSIONS)
    set(DOC_DEFAULT_VERSION ${FENIX_BRANCH})
endif()
list(REMOVE_ITEM DOC_VERSIONS ${DOC_DEFAULT_VERSION})
list(PREPEND DOC_VERSIONS ${DOC_DEFAULT_VERSION})

foreach(DOC_VERSION ${DOC_VERSIONS})
    set(DOC_VERSION_SELECT "${DOC_VERSION_SELECT} <option value=\"${DOC_VERSION}\">${DOC_VERSION}</option>")
endforeach()

configure_file(index.html.in ${DOXYGEN_OUTPUT_DIRECTORY}/index.html)
configure_file(version_selector.html.in ${DOXYGEN_OUTPUT_DIRECTORY}/version_selector.html)
configure_file(version_select_handler.js ${DOXYGEN_OUTPUT_DIRECTORY}/version_select_handler.js COPYONLY)
