From 3636300050148ab6fd61b0fcd003c4d7e1cc4a22 Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Thu, 16 May 2024 22:19:53 +0200 Subject: [PATCH] build: package generated manpage source files --- CMakeLists.txt | 20 ++++++++++++++------ cmake/dwarfs_install.cmake.in | 3 +++ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 54c48c7c..0897cc71 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -654,20 +654,28 @@ else() endif() if(WITH_MAN_OPTION) - include(${CMAKE_SOURCE_DIR}/cmake/render_manpage.cmake) - list(APPEND LIBDWARFS_COMMON_SRC src/dwarfs/pager.cpp src/dwarfs/render_manpage.cpp ) + if(DWARFS_GIT_BUILD) + include(${CMAKE_SOURCE_DIR}/cmake/render_manpage.cmake) + set(DWARFS_MANPAGE_SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}) + else() + set(DWARFS_MANPAGE_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) + endif() + foreach(man mkdwarfs dwarfs dwarfsck dwarfsextract) - file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/src/dwarfs") - add_manpage_source(doc/${man}.md NAME ${man} - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/src/dwarfs/${man}_manpage.cpp) + if(DWARFS_GIT_BUILD) + file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/src/dwarfs") + add_manpage_source(doc/${man}.md NAME ${man} + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/src/dwarfs/${man}_manpage.cpp) + endif() + # TODO: this doesn't need to be in the common library -> just link to the # specific tool - list(APPEND LIBDWARFS_COMMON_SRC ${CMAKE_CURRENT_BINARY_DIR}/src/dwarfs/${man}_manpage.cpp) + list(APPEND LIBDWARFS_COMMON_SRC ${DWARFS_MANPAGE_SOURCE_DIR}/src/dwarfs/${man}_manpage.cpp) endforeach() endif() diff --git a/cmake/dwarfs_install.cmake.in b/cmake/dwarfs_install.cmake.in index 0573b334..14c38633 100644 --- a/cmake/dwarfs_install.cmake.in +++ b/cmake/dwarfs_install.cmake.in @@ -20,6 +20,9 @@ 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") + foreach(prog dwarfs dwarfsck dwarfsextract mkdwarfs) + file(INSTALL "@PROJECT_BINARY_DIR@/src/dwarfs/${prog}_manpage.cpp" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/src/dwarfs") + 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}...") file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/thrift/dwarfs")