1# generate documentation on 'make doxygen-doc'
2file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/doc)
3
4find_package(Doxygen)
5set_package_properties(Doxygen PROPERTIES
6    DESCRIPTION "Documentation generator"
7    URL "http://doxygen.org"
8    PURPOSE "Needed to generate the API documentation")
9
10if(DOXYGEN_FOUND)
11    find_program(QHELPGENERATOR_EXECUTABLE qhelpgenerator)
12    mark_as_advanced(QHELPGENERATOR_EXECUTABLE)
13
14    include(FindPackageHandleStandardArgs)
15    find_package_handle_standard_args(QHELPGENERATOR DEFAULT_MSG QHELPGENERATOR_EXECUTABLE)
16
17    set(QT_TAGS_FILE     ${QT_DOC_DIR}/qtcore/qtcore.tags)
18    if(EXISTS ${QT_TAGS_FILE})
19        find_package(Perl QUIET)
20
21        if (NOT PERL_FOUND)
22            message(WARNING "Perl was not found. Qt crosslinks in uploaded docs won't be valid.")
23        endif ()
24    else()
25        message(WARNING "html/qt.tags not found in ${QT_DOC_DIR}. Set the QT_DOC_DIR variable to
26point to its location to enable crosslinking.")
27        unset(QT_TAGS_FILE)
28    endif()
29
30    set(abs_top_builddir ${CMAKE_BINARY_DIR})
31    set(abs_top_srcdir   ${CMAKE_SOURCE_DIR})
32    set(GENERATE_HTML    YES)
33    set(GENERATE_RTF     NO)
34    set(GENERATE_CHM     NO)
35    set(GENERATE_CHI     NO)
36    set(GENERATE_LATEX   NO)
37    set(GENERATE_MAN     NO)
38    set(GENERATE_XML     NO)
39    set(GENERATE_QHP     ${QHELPGENERATOR_FOUND})
40    configure_file(doxygen.cfg.in ${CMAKE_BINARY_DIR}/doxygen.cfg)
41    add_custom_target(doxygen-doc
42        ${DOXYGEN_EXECUTABLE} ${CMAKE_BINARY_DIR}/doxygen.cfg
43        SOURCES
44            doxygen.cfg.in
45            TelepathyQt/account-capability-filter.dox
46            TelepathyQt/and-filter.dox
47            TelepathyQt/async-model.dox
48            TelepathyQt/callbacks.dox
49            TelepathyQt/examples.dox
50            TelepathyQt/filter.dox
51            TelepathyQt/generic-capability-filter.dox
52            TelepathyQt/generic-property-filter.dox
53            TelepathyQt/groups.dox
54            TelepathyQt/main.dox
55            TelepathyQt/method-invocation-context.dox
56            TelepathyQt/not-filter.dox
57            TelepathyQt/or-filter.dox
58            TelepathyQt/shared-ptr.dox
59    )
60else()
61    # Suppress cmake policy CMP0046 warnings.
62    # This target is being used as a dependency in other targets,
63    # so it always needs to be available, even if empty.
64    add_custom_target(doxygen-doc)
65endif()
66