Bump to ccache 4.4
[platform/upstream/ccache.git] / doc / CMakeLists.txt
1 find_program(ASCIIDOCTOR_EXE asciidoctor)
2 mark_as_advanced(ASCIIDOCTOR_EXE) # Don't show in CMake UIs
3
4 if(NOT ASCIIDOCTOR_EXE)
5   message(WARNING "Could not find asciidoctor; documentation will not be generated")
6 else()
7   function(generate_doc backend adoc_file output_file)
8     get_filename_component(base_name "${adoc_file}" NAME_WE)
9     add_custom_command(
10       OUTPUT "${output_file}"
11       COMMAND
12         ${ASCIIDOCTOR_EXE}
13           -o "${output_file}"
14           -a revnumber="${CCACHE_VERSION}"
15           -a icons=font
16           -a toc=left
17           -a sectanchors
18           -a stylesheet="${CMAKE_CURRENT_SOURCE_DIR}/ccache-doc.css"
19           -b "${backend}"
20           "${CMAKE_SOURCE_DIR}/${adoc_file}"
21       MAIN_DEPENDENCY "${CMAKE_SOURCE_DIR}/${adoc_file}"
22       DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/ccache-doc.css"
23     )
24     set(doc_files "${doc_files}" "${output_file}" PARENT_SCOPE)
25   endfunction()
26
27   #
28   # HTML documentation
29   #
30   generate_doc(html    LICENSE.adoc     LICENSE.html)
31   generate_doc(html    doc/AUTHORS.adoc AUTHORS.html)
32   generate_doc(html    doc/MANUAL.adoc  MANUAL.html)
33   generate_doc(html    doc/NEWS.adoc    NEWS.html)
34   add_custom_target(doc-html DEPENDS "${doc_files}")
35
36   #
37   # Man page
38   #
39   generate_doc(manpage doc/MANUAL.adoc ccache.1.tmp)
40   add_custom_command(
41     OUTPUT ccache.1
42     # Convert monospace to bold since that's typically rendered better when
43     # viewing the man page.
44     COMMAND perl -pe "'s!\\\\f\\(CR(.*?)\\\\fP!\\\\fB\\1\\\\fP!g'" ccache.1.tmp >ccache.1
45     MAIN_DEPENDENCY ccache.1.tmp
46   )
47   install(
48     FILES "${CMAKE_CURRENT_BINARY_DIR}/ccache.1"
49     DESTINATION "${CMAKE_INSTALL_MANDIR}/man1"
50   )
51   add_custom_target(doc-man-page DEPENDS ccache.1)
52
53   add_custom_target(doc ALL DEPENDS doc-html doc-man-page)
54 endif()