]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
cmake: use curldown to build man pages
authorRichard Levitte <richard@levitte.org>
Mon, 22 Jan 2024 06:49:08 +0000 (07:49 +0100)
committerDaniel Stenberg <daniel@haxx.se>
Mon, 22 Jan 2024 23:29:02 +0000 (00:29 +0100)
This throws away the previous HTML and PDF producers, to mimic what
Makefile.am does as faithfully as possible.

Closes #12753

docs/THANKS
docs/libcurl/CMakeLists.txt
docs/libcurl/opts/CMakeLists.txt

index 88d924f63b353b23bfffd6e2ec84fa99a02008b3..8c3fd27ec3d3a3993b37244efe7358b533515c7e 100644 (file)
@@ -2355,6 +2355,7 @@ Richard Gorton
 Richard Gray
 Richard Hosking
 Richard Hsu
+Richard Levitte
 Richard Marion
 Richard Michael
 Richard Moore
index c83b5c91c4c47b0172b88c2c59d535ee3fabaf46..0d52a7e5675c4f16f59ba60cf16b3801f4e04c88 100644 (file)
@@ -27,41 +27,27 @@ include("${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
 
 function(add_manual_pages _listname)
   foreach(_file IN LISTS ${_listname})
+    set(_rofffile "${CMAKE_CURRENT_BINARY_DIR}/${_file}")
     if(_file STREQUAL "libcurl-symbols.3")
       # Special case, an auto-generated file.
-      set(_srcfile "${CMAKE_CURRENT_BINARY_DIR}/${_file}")
+      string(REPLACE ".3" ".md" _mdfile "${CMAKE_CURRENT_BINARY_DIR}/${_file}")
     else()
-      set(_srcfile "${CMAKE_CURRENT_SOURCE_DIR}/${_file}")
+      string(REPLACE ".3" ".md" _mdfile "${CMAKE_CURRENT_SOURCE_DIR}/${_file}")
     endif()
 
-    string(REPLACE ".3" ".html" _htmlfile "${CMAKE_CURRENT_BINARY_DIR}/${_file}")
-    add_custom_command(OUTPUT "${_htmlfile}"
-      COMMAND roffit "--mandir=${CMAKE_CURRENT_SOURCE_DIR}" "${_srcfile}" > "${_htmlfile}"
-      DEPENDS "${_srcfile}"
+    add_custom_command(OUTPUT "${_rofffile}"
+      COMMAND ${PROJECT_SOURCE_DIR}/scripts/cd2nroff ${_mdfile} > ${_rofffile}
+      DEPENDS "${_mdfile}"
       VERBATIM
     )
-
-    string(REPLACE ".3" ".pdf" _pdffile "${CMAKE_CURRENT_BINARY_DIR}/${_file}")
-    string(REPLACE ".3" ".ps" _psfile "${CMAKE_CURRENT_BINARY_DIR}/${_file}")
-    # XXX any reason why groff -Tpdf (for gropdf) is not used?
-    add_custom_command(OUTPUT "${_pdffile}"
-      COMMAND groff -Tps -man "${_srcfile}" > "${_psfile}"
-      COMMAND ps2pdf "${_psfile}" "${_pdffile}"
-      COMMAND "${CMAKE_COMMAND}" -E remove "${_psfile}"
-      DEPENDS "${_srcfile}"
-      #BYPRODUCTS "${_psfile}"
-      VERBATIM
-    )
-    # "BYPRODUCTS" for add_custom_command requires CMake 3.2. For now hope that
-    # the temporary files are removed (i.e. the command is not interrupted).
   endforeach()
 endfunction()
 
-add_custom_command(OUTPUT libcurl-symbols.3
+add_custom_command(OUTPUT libcurl-symbols.md
   COMMAND
     "${PERL_EXECUTABLE}"
     "${CMAKE_CURRENT_SOURCE_DIR}/mksymbolsmanpage.pl" <
-    "${CMAKE_CURRENT_SOURCE_DIR}/symbols-in-versions" > libcurl-symbols.3
+    "${CMAKE_CURRENT_SOURCE_DIR}/symbols-in-versions" > libcurl-symbols.md
   DEPENDS
     "${CMAKE_CURRENT_SOURCE_DIR}/symbols-in-versions"
     "${CMAKE_CURRENT_SOURCE_DIR}/mksymbolsmanpage.pl"
@@ -69,10 +55,10 @@ add_custom_command(OUTPUT libcurl-symbols.3
 )
 
 add_manual_pages(man_MANS)
-
-string(REPLACE ".3" ".html" HTMLPAGES "${man_MANS}")
-string(REPLACE ".3" ".pdf" PDFPAGES "${man_MANS}")
-add_custom_target(html DEPENDS ${HTMLPAGES})
-add_custom_target(pdf DEPENDS ${PDFPAGES})
+add_custom_target(man ALL DEPENDS ${man_MANS})
+if(NOT CURL_DISABLE_INSTALL)
+  install(FILES "$<LIST:TRANSFORM,${man_MANS},PREPEND,${CMAKE_CURRENT_BINARY_DIR}/>"
+          DESTINATION ${CMAKE_INSTALL_MANDIR}/man3)
+endif()
 
 add_subdirectory(opts)
index 152a08a3511f17ab2e3dc6ab3c626b07ebef7771..82844a2251ae8b0ef6ed29fe832481c35bf0e7d6 100644 (file)
@@ -26,10 +26,9 @@ transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.
 include("${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
 
 add_manual_pages(man_MANS)
-
-string(REPLACE ".3" ".html" HTMLPAGES "${man_MANS}")
-string(REPLACE ".3" ".pdf" PDFPAGES "${man_MANS}")
-add_custom_target(opts-html DEPENDS ${HTMLPAGES})
-add_custom_target(opts-pdf DEPENDS ${PDFPAGES})
-add_dependencies(html opts-html)
-add_dependencies(pdf opts-pdf)
+add_custom_target(opts-man DEPENDS ${man_MANS})
+add_dependencies(man opts-man)
+if(NOT CURL_DISABLE_INSTALL)
+  install(FILES "$<LIST:TRANSFORM,${man_MANS},PREPEND,${CMAKE_CURRENT_BINARY_DIR}/>"
+          DESTINATION ${CMAKE_INSTALL_MANDIR}/man3)
+endif()