File: AddGncDocTargets.cmake

package info (click to toggle)
gnucash-docs 5.14-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 164,276 kB
  • sloc: xml: 101,090; ruby: 229; makefile: 59; sh: 8
file content (79 lines) | stat: -rw-r--r-- 2,915 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
function (add_gnc_doc_targets lang entities figures xslt_files)

    get_filename_component(targetbase ${CMAKE_CURRENT_SOURCE_DIR} NAME)
    set(docname "gnucash-${targetbase}")

    if(entities)
        # Add a target to run xml lint checks on this document's source xml files
        add_custom_target("${lang}-${targetbase}-check"
            COMMAND  ${XMLLINT} --postvalid
                                --xinclude
                                --noout
                                --path ${CMAKE_SOURCE_DIR}/docbook
                                ${CMAKE_CURRENT_SOURCE_DIR}/index.docbook
            COMMAND  ${CMAKE_COMMAND}
                -D XMLLINT=${XMLLINT}
                -D GNC_SOURCE_DIR=${CMAKE_SOURCE_DIR}
                -D GNC_CURRENT_SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}
                -D docname=${docname}
                -D cmake_fig_list="${figures}"
                -P ${CMAKE_SOURCE_DIR}/cmake/CheckFigures.cmake
            DEPENDS ${entities} "index.docbook" "${CMAKE_SOURCE_DIR}/docbook/gnc-docbookx.dtd")
        add_dependencies(${lang}-check "${lang}-${targetbase}-check")
    endif()

    # Parse and assign XSLT file path for each document format
    set(xslt_html "${BASE_XSLT_HTML}")
    set(xslt_pdf "${BASE_XSLT_PDF}")
    set(xslt_epub "${BASE_XSLT_EPUB}")
    set(xslt_chm "${BASE_XSLT_CHM}")
    set(xslt_filename_list "")
    list(LENGTH xslt_files entries)
    while(entries)
      list(GET xslt_files 0 xslt_docfmt)
      list(GET xslt_files 1 xslt_filename)
      list(REMOVE_AT xslt_files 0 1)
      list(LENGTH xslt_files entries)
      list(APPEND xslt_filename_list ${xslt_filename})
        if(xslt_docfmt STREQUAL "html")
            set(xslt_html ${xslt_filename})
        endif()
        if(xslt_docfmt STREQUAL "pdf")
            set(xslt_pdf ${xslt_filename})
        endif()
        if(xslt_docfmt STREQUAL "epub")
            set(xslt_epub ${xslt_filename})
        endif()
        if(xslt_docfmt STREQUAL "chm")
            set(xslt_chm ${xslt_filename})
        endif()
    endwhile()

    # Add targets for each document format that is enabled
    if (WITH_CHM)
      add_chm_target(${targetbase} ${lang} "${entities}" "${figures}" "${xslt_chm}")
    endif()
    if (WITH_XDGHELP)
      add_xdghelp_target(${targetbase} ${lang} "${entities}" "${figures}")
    endif()
    if (WITH_HTML)
      add_html_target(${targetbase} ${lang} "${entities}" "${figures}" "${xslt_html}")
    endif()
    if (WITH_PDF)
      add_pdf_target(${targetbase} ${lang} "${entities}" "${figures}" "${xslt_pdf}")
    endif()
    if (WITH_EPUB)
      add_epub_target(${targetbase} ${lang} "${entities}" "${figures}" "${xslt_epub}")
    endif()
    if (WITH_MOBI)
      add_mobi_target(${targetbase} ${lang})
    endif()

    add_to_dist(
        CMakeLists.txt
        index.docbook
        ${entities}
        ${figures}
        ${xslt_filename_list})

endfunction()