forked from osmocom/wireshark
CMake: Try to make our man page builds faster.
Depend on our generator targets instead of the generated files, which allows parallel builds outside of Ninja. Don't reserve JRE memory when building HTML and man page targets. This reduces the "docs" target build time on my Windows VM here from over two minutes to under one.
This commit is contained in:
parent
1e18f79373
commit
74747c4d2f
|
@ -50,6 +50,12 @@ if(ASCIIDOCTOR_EXECUTABLE)
|
|||
)
|
||||
|
||||
set(_asciidoctor_common_command
|
||||
${CMAKE_COMMAND} -E env TZ=UTC
|
||||
${ASCIIDOCTOR_EXECUTABLE}
|
||||
${_asciidoctor_common_args}
|
||||
)
|
||||
|
||||
set(_asciidoctor_docbook_common_command
|
||||
${CMAKE_COMMAND} -E env TZ=UTC ASCIIDOCTORJ_OPTS=${_asciidoctorj_opts}
|
||||
${ASCIIDOCTOR_EXECUTABLE}
|
||||
${_asciidoctor_common_args}
|
||||
|
@ -62,7 +68,7 @@ if(ASCIIDOCTOR_EXECUTABLE)
|
|||
add_custom_command(
|
||||
OUTPUT
|
||||
${_output_xml}
|
||||
COMMAND ${_asciidoctor_common_command}
|
||||
COMMAND ${_asciidoctor_docbook_common_command}
|
||||
--backend docbook
|
||||
--out-file ${_output_xml}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/${_asciidocsource}
|
||||
|
@ -112,12 +118,12 @@ if(ASCIIDOCTOR_EXECUTABLE)
|
|||
set( _output_txt ${_source_base_name}.txt )
|
||||
|
||||
ADD_CUSTOM_COMMAND(
|
||||
OUTPUT
|
||||
OUTPUT
|
||||
${_output_txt}
|
||||
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/tools/html2text.py
|
||||
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/tools/html2text.py
|
||||
${_output_html}
|
||||
> ${_output_txt}
|
||||
DEPENDS
|
||||
DEPENDS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/${_asciidocsource}
|
||||
${_output_html}
|
||||
${ARGN}
|
||||
|
|
|
@ -20,16 +20,19 @@ add_custom_command(
|
|||
${CMAKE_SOURCE_DIR}/AUTHORS
|
||||
)
|
||||
|
||||
set(MAN_TARGETS)
|
||||
set(HTML_TARGETS)
|
||||
set(MAN1_INSTALL_FILES)
|
||||
set(MAN4_INSTALL_FILES)
|
||||
set(HTML_INSTALL_FILES)
|
||||
|
||||
macro (ASCIIDOCTOR2MANHTML _page_name _man_section)
|
||||
if(ASCIIDOCTOR_FOUND)
|
||||
ASCIIDOCTOR2HTML(${_page_name}.adoc)
|
||||
ASCIIDOCTOR2MAN(${_page_name}.adoc ${_man_section})
|
||||
|
||||
list(APPEND HTML_INSTALL_FILES ${CMAKE_CURRENT_BINARY_DIR}/${_page_name}.html)
|
||||
list(APPEND HTML_TARGETS generate_${_page_name}.html)
|
||||
list(APPEND MAN_TARGETS generate_${_page_name}.${_man_section})
|
||||
|
||||
if (${_man_section} EQUAL 1)
|
||||
list(APPEND MAN1_INSTALL_FILES ${CMAKE_CURRENT_BINARY_DIR}/${_page_name}.${_man_section})
|
||||
elseif (${_man_section} EQUAL 4)
|
||||
|
@ -83,21 +86,20 @@ if (BUILD_xxx2deb)
|
|||
ASCIIDOCTOR2MANHTML(idl2deb 1)
|
||||
endif()
|
||||
|
||||
set(BUNDLE_RESOURCE_SHARE_MAN1_FILES ${MAN1_INSTALL_FILES} PARENT_SCOPE)
|
||||
set(BUNDLE_RESOURCE_SHARE_MAN4_FILES ${MAN4_INSTALL_FILES} PARENT_SCOPE)
|
||||
set(BUNDLE_RESOURCE_SHARE_MAN1_FILES ${MAN_TARGETS} PARENT_SCOPE)
|
||||
set(BUNDLE_RESOURCE_SHARE_MAN4_FILES ${MAN4_INSTALL_TARGETS} PARENT_SCOPE)
|
||||
|
||||
add_custom_target(manpages DEPENDS
|
||||
${MAN1_INSTALL_FILES}
|
||||
${MAN4_INSTALL_FILES}
|
||||
${MAN_TARGETS}
|
||||
${MAN4_INSTALL_TARGETS}
|
||||
)
|
||||
|
||||
add_custom_target(
|
||||
docs ALL
|
||||
DEPENDS
|
||||
${CMAKE_CURRENT_BINARY_DIR}/AUTHORS-SHORT
|
||||
${MAN1_INSTALL_FILES}
|
||||
${MAN4_INSTALL_FILES}
|
||||
${HTML_INSTALL_FILES}
|
||||
${MAN_TARGETS}
|
||||
${HTML_TARGETS}
|
||||
)
|
||||
set_target_properties(docs PROPERTIES FOLDER "Docs")
|
||||
|
||||
|
|
Loading…
Reference in New Issue