diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt index 4b111b85a..694861725 100644 --- a/docs/CMakeLists.txt +++ b/docs/CMakeLists.txt @@ -1,3 +1,3 @@ #add_subdirectory(examples) -#add_subdirectory(libcurl) +add_subdirectory(libcurl) add_subdirectory(cmdline-opts) diff --git a/docs/libcurl/CMakeLists.txt b/docs/libcurl/CMakeLists.txt new file mode 100644 index 000000000..bdbcad45f --- /dev/null +++ b/docs/libcurl/CMakeLists.txt @@ -0,0 +1,55 @@ +# Load man_MANS from shared file +transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake") +include("${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake") + +function(add_manual_pages _listname) + foreach(_file IN LISTS ${_listname}) + if(_file STREQUAL "libcurl-symbols.3") + # Special case, an auto-generated file. + set(_srcfile "${CMAKE_CURRENT_BINARY_DIR}/${_file}") + else() + set(_srcfile "${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}" + 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 + COMMAND + "${PERL_EXECUTABLE}" + "${CMAKE_CURRENT_SOURCE_DIR}/mksymbolsmanpage.pl" < + "${CMAKE_CURRENT_SOURCE_DIR}/symbols-in-versions" > libcurl-symbols.3 + DEPENDS + "${CMAKE_CURRENT_SOURCE_DIR}/symbols-in-versions" + "${CMAKE_CURRENT_SOURCE_DIR}/mksymbolsmanpage.pl" + VERBATIM +) + +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_subdirectory(opts) diff --git a/docs/libcurl/opts/CMakeLists.txt b/docs/libcurl/opts/CMakeLists.txt new file mode 100644 index 000000000..24c011180 --- /dev/null +++ b/docs/libcurl/opts/CMakeLists.txt @@ -0,0 +1,12 @@ +# Load man_MANS from shared file +transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake") +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)