File: CMakeLists.txt

package info (click to toggle)
kuserfeedback 1.3.0-9
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 3,496 kB
  • sloc: cpp: 13,251; php: 2,192; xml: 224; yacc: 90; lex: 82; sh: 17; makefile: 8
file content (90 lines) | stat: -rw-r--r-- 4,127 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
if(QT_MAJOR_VERSION STREQUAL "5")
    query_qmake(QT_INSTALL_DOCS "QT_INSTALL_DOCS")
    query_qmake(QT_INSTALL_DATA "QT_INSTALL_DATA")
    find_file(QDOC_TEMPLATE global/qt-html-templates-offline.qdocconf
        HINTS ${QT_INSTALL_DOCS}
        HINTS ${QT_INSTALL_DATA}
        HINTS ${QT_INSTALL_DATA}/doc
    )
elseif(QT_MAJOR_VERSION STREQUAL "6")
    find_file(QDOC_TEMPLATE global/qt-html-templates-offline.qdocconf
        HINTS ${QT6_INSTALL_PREFIX}/${QT6_INSTALL_DOCS}
    )
endif()

get_filename_component(QDOC_TEMPLATE_DIR ${QDOC_TEMPLATE} DIRECTORY)
if(NOT QDOC_TEMPLATE_DIR)
    message(STATUS "Could not build .qch because the qdoc template directory could not be found")
endif()

function(_qdoc_status_report)
    message(STATUS "Unable to build .qch user manual:")

    if(TARGET Qt${QT_MAJOR_VERSION}::qdoc)
        get_property(_path TARGET Qt${QT_MAJOR_VERSION}::qdoc PROPERTY LOCATION)
        message(STATUS "qdoc executable: ${_path}")
    else()
        message(STATUS "qdoc executable not found")
    endif()

    if(TARGET Qt${QT_MAJOR_VERSION}::qhelpgenerator)
        get_property(_path TARGET Qt${QT_MAJOR_VERSION}::qhelpgenerator PROPERTY LOCATION)
        message(STATUS "qhelpgenerator executable: ${_path}")
    else()
        message(STATUS "qhelpgenerator not found")
    endif()
endfunction()

set(_qdoc_available FALSE)
if(QDOC_TEMPLATE_DIR AND TARGET Qt${QT_MAJOR_VERSION}::qdoc AND TARGET Qt${QT_MAJOR_VERSION}::qhelpgenerator)
    set(_qdoc_available TRUE)
endif()

# If qdoc and qhelpgenerator are found build .qch
if(NOT _qdoc_available)
    _qdoc_status_report()
else()
    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/user-feedback-manual.qdocconf.in ${CMAKE_CURRENT_BINARY_DIR}/user-feedback-manual.qdocconf)
    file(GLOB_RECURSE _qdoc_srcs ${CMAKE_CURRENT_SOURCE_DIR} "*.qdoc")
    set(_qdoc_output_dir ${CMAKE_CURRENT_BINARY_DIR}/manual)
    add_custom_command(
        OUTPUT ${_qdoc_output_dir}/user-feedback-manual.qhp
        COMMAND Qt${QT_MAJOR_VERSION}::qdoc
            --outputdir ${_qdoc_output_dir}
            ${CMAKE_CURRENT_BINARY_DIR}/user-feedback-manual.qdocconf
        DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/user-feedback-manual.qdocconf ${_qdoc_srcs}
    )
    add_custom_command(
        OUTPUT ${_qdoc_output_dir}/user-feedback-manual.qch
        COMMAND Qt${QT_MAJOR_VERSION}::qhelpgenerator ${_qdoc_output_dir}/user-feedback-manual.qhp
        DEPENDS ${_qdoc_output_dir}/user-feedback-manual.qhp
    )
    add_custom_target(user_feedback_manual_qch ALL DEPENDS ${_qdoc_output_dir}/user-feedback-manual.qch)
    install(FILES ${_qdoc_output_dir}/user-feedback-manual.qch DESTINATION ${KDE_INSTALL_DATAROOTDIR}/KDE/UserFeedbackConsole)
endif()

# If qcollectiongenerator is found build .qhc
if(NOT TARGET Qt${QT_MAJOR_VERSION}::qcollectiongenerator OR NOT _qdoc_available)
    message(STATUS "Unable to build .qhc user manual:")
    if(TARGET Qt${QT_MAJOR_VERSION}::qcollectiongenerator)
        get_property(_path TARGET Qt${QT_MAJOR_VERSION}::qcollectiongenerator PROPERTY LOCATION)
        message(STATUS "qcollectiongenerator executable: ${_path}")
    else()
        message(STATUS "qcollectiongenerator not found")
    endif()

    _qdoc_status_report()
else()
    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/user-feedback.qhcp.in ${CMAKE_CURRENT_BINARY_DIR}/user-feedback.qhcp)
    add_custom_command(
        OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/user-feedback.qhc
        COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/manual/user-feedback-manual.qch ${CMAKE_CURRENT_BINARY_DIR}
        COMMAND Qt${QT_MAJOR_VERSION}::qcollectiongenerator ${CMAKE_CURRENT_BINARY_DIR}/user-feedback.qhcp -o ${CMAKE_CURRENT_BINARY_DIR}/user-feedback.qhc
        DEPENDS
            ${CMAKE_CURRENT_BINARY_DIR}/user-feedback.qhcp
            user_feedback_manual_qch
        WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
    )
    add_custom_target(user_feedback_qhc ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/user-feedback.qhc)
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/user-feedback.qhc DESTINATION ${KDE_INSTALL_DATAROOTDIR}/KDE/UserFeedbackConsole)
endif()