From b6f4e25a174335c5ee8caf1552a39694b49ed024 Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Tue, 6 Aug 2024 15:51:17 +0200 Subject: [PATCH] build: ship generated man pages in source tarball --- CMakeLists.txt | 51 ++++++++++++++++++++--------------- cmake/dwarfs_install.cmake.in | 4 +++ 2 files changed, 34 insertions(+), 21 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 24b131af..bb3e2f02 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -206,33 +206,40 @@ if(STATIC_BUILD_DO_NOT_USE) endif() if(WITH_MAN_PAGES) - find_program(RONN_EXE ronn DOC "ronn man page generator" REQUIRED) + if(DWARFS_GIT_BUILD) + find_program(RONN_EXE ronn DOC "ronn man page generator" REQUIRED) + endif() foreach(man dwarfs.1 mkdwarfs.1 dwarfsck.1 dwarfsextract.1 dwarfs-format.5) string(REGEX MATCH "^[^.]*" docname "${man}") string(REGEX MATCH "[^.]*$" section "${man}") - set(man_dir "${CMAKE_CURRENT_BINARY_DIR}/man${section}") - set(man_input "${CMAKE_CURRENT_SOURCE_DIR}/doc/${docname}.md") - set(man_output "${man_dir}/${man}") - execute_process( - COMMAND ${RONN_EXE} - INPUT_FILE "${man_input}" - RESULT_VARIABLE ronn_result - OUTPUT_VARIABLE ronn_output - ERROR_VARIABLE ronn_error) + if(DWARFS_GIT_BUILD) + set(man_dir "${CMAKE_CURRENT_BINARY_DIR}/man${section}") + set(man_input "${CMAKE_CURRENT_SOURCE_DIR}/doc/${docname}.md") + set(man_output "${man_dir}/${man}") - if(${ronn_result} EQUAL 0) - add_custom_command( - OUTPUT "${man_output}" - COMMAND mkdir -p "${man_dir}" - COMMAND ${RONN_EXE} <"${man_input}" >"${man_output}" - DEPENDS "${man_input}") - list(APPEND MAN_PAGES "${man_output}") - list(APPEND MAN_DIRS "${man_dir}") + execute_process( + COMMAND ${RONN_EXE} + INPUT_FILE "${man_input}" + RESULT_VARIABLE ronn_result + OUTPUT_VARIABLE ronn_output + ERROR_VARIABLE ronn_error) + + if(${ronn_result} EQUAL 0) + add_custom_command( + OUTPUT "${man_output}" + COMMAND mkdir -p "${man_dir}" + COMMAND ${RONN_EXE} <"${man_input}" >"${man_output}" + DEPENDS "${man_input}") + list(APPEND MAN_PAGES "${man_output}") + list(APPEND MAN_DIRS "${man_dir}") + else() + message(WARNING "${RONN_EXE} failed to process ${man_input} -> ${man}") + message(WARNING "error: ${ronn_error}") + endif() else() - message(WARNING "${RONN_EXE} failed to process ${man_input} -> ${man}") - message(WARNING "error: ${ronn_error}") + list(APPEND MAN_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/doc/man${section}") endif() endforeach() endif() @@ -1015,7 +1022,9 @@ endif() if(WITH_MAN_PAGES) list(REMOVE_DUPLICATES MAN_DIRS) - add_custom_target(manpages ALL DEPENDS ${MAN_PAGES}) + if(DWARFS_GIT_BUILD) + add_custom_target(manpages ALL DEPENDS ${MAN_PAGES}) + endif() endif() if(DWARFS_GIT_BUILD) diff --git a/cmake/dwarfs_install.cmake.in b/cmake/dwarfs_install.cmake.in index e59262ae..ec911437 100644 --- a/cmake/dwarfs_install.cmake.in +++ b/cmake/dwarfs_install.cmake.in @@ -20,8 +20,12 @@ if(CPACK_SOURCE_INSTALLED_DIRECTORIES) message(STATUS "Adding versioning files from @PROJECT_BINARY_DIR@ to ${CMAKE_CURRENT_BINARY_DIR}...") file(INSTALL "@PROJECT_BINARY_DIR@/include/dwarfs/version.h" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/include/dwarfs") file(INSTALL "@PROJECT_BINARY_DIR@/src/dwarfs/version.cpp" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/src/dwarfs") + file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/doc/man1") + file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/doc/man5") + file(INSTALL "@PROJECT_BINARY_DIR@/man5/dwarfs-format.5" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/doc/man5") foreach(prog dwarfs dwarfsck dwarfsextract mkdwarfs) file(INSTALL "@PROJECT_BINARY_DIR@/src/dwarfs/tool/${prog}_manpage.cpp" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/src/dwarfs/tool") + file(INSTALL "@PROJECT_BINARY_DIR@/man1/${prog}.1" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/doc/man1") endforeach() file(INSTALL "@PROJECT_BINARY_DIR@/package_version.cmake" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/cmake") message(STATUS "Adding generated thrift files from @PROJECT_BINARY_DIR@ to ${CMAKE_CURRENT_BINARY_DIR}...")