find_package(Doxygen)
if (NOT DOXYGEN_FOUND)
    message(FATAL_ERROR "Doxygen could not be sourced.")
    return()
endif()

include(FetchContent)
FetchContent_Declare(
    doxygen-awesome-css
    URL https://github.com/jothepro/doxygen-awesome-css/archive/refs/heads/main.zip
)
FetchContent_MakeAvailable(doxygen-awesome-css)
FetchContent_GetProperties(doxygen-awesome-css SOURCE_DIR AWESOME_CSS_DIR)

set(DOXYGEN_GENERATE_HTML YES)
set(DOXYGEN_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/docs)
set(DOXYGEN_HTML_EXTRA_STYLESHEET ${AWESOME_CSS_DIR}/doxygen-awesome.css)

if(NB_SOURCE_FILES)
    message("Using file timestamps...")
    doxygen_add_docs(NBEngineDocumentation
        ${NB_SOURCE_FILES} ${NB_INCLUDE_FILES}
        USE_STAMP
        COMMENT "Building documentation"
    )
else()
    message("Processing all files...")
    doxygen_add_docs(NBEngineDocumentation
        ${PROJECT_SOURCE_DIR}/engine ALL
        COMMENT "Building documentation"
    )
endif()