# Enable operator IN_LIST to avoid problems with CMake version 3.12
if(POLICY CMP0057)
    cmake_policy(SET CMP0057 NEW)
endif()

find_package(Doxygen)
# Add a target to generate API documentation with Doxygen
if(DOXYGEN_FOUND)

    # We use the doxygen command of CMake instead of using the separate config file
    set(DOXYGEN_PROJECT_NAME "Storm")
    set(DOXYGEN_PROJECT_BRIEF "A Modern Probabilistic Model Checker")
    set(DOXYGEN_BRIEF_MEMBER_DESC YES)
    set(DOXYGEN_REPEAT_BRIEF YES)
    set(DOXYGEN_JAVADOC_AUTOBRIEF YES)
    set(DOXYGEN_QT_AUTOBRIEF YES)
    set(DOXYGEN_EXTRACT_ALL YES)
    set(DOXYGEN_EXTRACT_STATIC YES)
    set(DOXYGEN_SOURCE_BROWSER YES)
    set(DOXYGEN_GENERATE_TREEVIEW YES)
    set(DOXYGEN_CASE_SENSE_NAMES NO)
    set(DOXYGEN_HTML_TIMESTAMP YES)
    set(DOXYGEN_CREATE_SUBDIRS YES)
    set(DOXYGEN_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/doc")
    doxygen_add_docs(
        doc
        "${PROJECT_SOURCE_DIR}/src"
        COMMENT "Generating API documentation with Doxygen"
    )

    # These commands can be used if the separate config files should be used
    #set(CMAKE_DOXYGEN_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/doc")
    #string(REGEX REPLACE ";" " " CMAKE_DOXYGEN_INPUT_LIST "${PROJECT_SOURCE_DIR}/src")
    #configure_file("${CMAKE_CURRENT_SOURCE_DIR}/resources/doxygen/Doxyfile.in.new" "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile" @ONLY)
    #add_custom_target(doc ${DOXYGEN_EXECUTABLE} "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile" DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile" COMMENT "Generating API documentation with Doxygen" VERBATIM)
endif(DOXYGEN_FOUND)