1 find_program(ASCIIDOCTOR_EXE asciidoctor)
2 mark_as_advanced(ASCIIDOCTOR_EXE) # Don't show in CMake UIs
4 if(NOT ASCIIDOCTOR_EXE)
5 message(WARNING "Could not find asciidoctor; documentation will not be generated")
7 function(generate_doc backend adoc_file output_file)
8 get_filename_component(base_name "${adoc_file}" NAME_WE)
10 OUTPUT "${output_file}"
14 -a revnumber="${CCACHE_VERSION}"
18 -a stylesheet="${CMAKE_CURRENT_SOURCE_DIR}/ccache-doc.css"
20 "${CMAKE_SOURCE_DIR}/${adoc_file}"
21 MAIN_DEPENDENCY "${CMAKE_SOURCE_DIR}/${adoc_file}"
22 DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/ccache-doc.css"
24 set(doc_files "${doc_files}" "${output_file}" PARENT_SCOPE)
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}")
39 generate_doc(manpage doc/MANUAL.adoc ccache.1.tmp)
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
48 FILES "${CMAKE_CURRENT_BINARY_DIR}/ccache.1"
49 DESTINATION "${CMAKE_INSTALL_MANDIR}/man1"
51 add_custom_target(doc-man-page DEPENDS ccache.1)
53 add_custom_target(doc ALL DEPENDS doc-html doc-man-page)