cmake: speed up curldown processing, enable by default

- cmake: enable `BUILD_DOCS` by default (this controls converting and
  installing `.3` files from `.md` sources)

- cmake: speed up generating `.3` files by using a single command per
  directory, instead of a single command per file. This reduces external
  commands by about a thousand. (There remains some CMake logic kicking
  in resulting in 500 -one per file- external `-E touch_nocreate` calls.)

- cd2nroff: add ability to process multiple input files.

- cd2nroff: add `-k` option to use the source filename to form the
  output filename. (instead of the default in-file `Title:` line.)

Follow-up to 3f08d80b22
Follow-up to ea0b575dab #12753
Follow-up to eefcc1bda4 #12730

Closes #12762
This commit is contained in:
Viktor Szakats 2024-01-23 06:40:11 +00:00
parent fe290cbadd
commit 2620aa930b
No known key found for this signature in database
GPG key ID: B5ABD165E2AEF201
3 changed files with 36 additions and 9 deletions

View file

@ -26,21 +26,26 @@ transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.
include("${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
function(add_manual_pages _listname)
unset(_rofffiles)
unset(_mdfiles)
foreach(_file IN LISTS ${_listname})
set(_rofffile "${CMAKE_CURRENT_BINARY_DIR}/${_file}")
list(APPEND _rofffiles "${CMAKE_CURRENT_BINARY_DIR}/${_file}")
if(_file STREQUAL "libcurl-symbols.3")
# Special case, an auto-generated file.
string(REPLACE ".3" ".md" _mdfile "${CMAKE_CURRENT_BINARY_DIR}/${_file}")
else()
string(REPLACE ".3" ".md" _mdfile "${CMAKE_CURRENT_SOURCE_DIR}/${_file}")
string(REPLACE ".3" ".md" _mdfile "${_file}")
endif()
add_custom_command(OUTPUT "${_rofffile}"
COMMAND ${PROJECT_SOURCE_DIR}/scripts/cd2nroff ${_mdfile} > ${_rofffile}
DEPENDS "${_mdfile}"
VERBATIM
)
list(APPEND _mdfiles "${_mdfile}")
endforeach()
add_custom_command(OUTPUT ${_rofffiles}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMAND ${PROJECT_SOURCE_DIR}/scripts/cd2nroff -k -d "${CMAKE_CURRENT_BINARY_DIR}" ${_mdfiles}
DEPENDS ${_mdfiles}
VERBATIM
)
endfunction()
add_custom_command(OUTPUT libcurl-symbols.md