Skip to content

Commit

Permalink
try to fix install with journald
Browse files Browse the repository at this point in the history
  • Loading branch information
goatshriek committed Jul 1, 2023
1 parent efbe390 commit ff0a696
Show file tree
Hide file tree
Showing 3 changed files with 62 additions and 44 deletions.
93 changes: 56 additions & 37 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -93,42 +93,6 @@ set(LOCALE $ENV{LANG}
)


# documentation and doxygen setup
set(PROJECT_DOCS_DIR ${PROJECT_BINARY_DIR}/docs)
include(FindDoxygen QUIET)
if(DOXYGEN_FOUND)
configure_file(${PROJECT_SOURCE_DIR}/tools/doxygen/Doxyfile.in ${PROJECT_BINARY_DIR}/tools/doxygen/Doxyfile)

file(GLOB_RECURSE DOXYGEN_PUBLIC_HEADERS ${PROJECT_SOURCE_DIR}/include/stumpless/*.h)
set(EXAMPLE_SOURCES
${PROJECT_SOURCE_DIR}/docs/examples/basic/basic_example.c
)

add_custom_command(
OUTPUT
${PROJECT_BINARY_DIR}/docs/man/man3/config.h.3
COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_BINARY_DIR}/tools/doxygen/Doxyfile
MAIN_DEPENDENCY ${CMAKE_BINARY_DIR}/tools/doxygen/Doxyfile
DEPENDS
${DOXYGEN_PUBLIC_HEADERS}
${EXAMPLE_SOURCES}
${PROJECT_SOURCE_DIR}/include/stumpless.h
${PROJECT_BINARY_DIR}/include/stumpless/config.h
VERBATIM
)

add_custom_target(docs DEPENDS ${PROJECT_BINARY_DIR}/docs/man/man3/config.h.3)

set(INCLUDE_MANPAGES_IN_INSTALL ${INSTALL_MANPAGES})
else()
if(INSTALL_MANPAGES)
message("doxygen is required to generate and install manpages")
endif()

set(INCLUDE_MANPAGES_IN_INSTALL FALSE)
endif()


# load modules
include(CheckIncludeFiles)
include(CheckSymbolExists)
Expand Down Expand Up @@ -287,6 +251,33 @@ set(WRAPTURE_SPECS
)


# documentation and doxygen steup
set(DOXYGEN_MANPAGES
${PROJECT_BINARY_DIR}/docs/man/man3/stumpless.h.3
${PROJECT_BINARY_DIR}/docs/man/man3/config.h.3
)

set(PROJECT_DOCS_DIR ${PROJECT_BINARY_DIR}/docs)
include(FindDoxygen QUIET)
if(DOXYGEN_FOUND)
set(INCLUDE_MANPAGES_IN_INSTALL ${INSTALL_MANPAGES})
else()
if(INSTALL_MANPAGES)
message("doxygen is required to generate and install manpages")
endif()

set(INCLUDE_MANPAGES_IN_INSTALL FALSE)
endif()

if(${INCLUDE_MANPAGES_IN_INSTALL})
# we need to do this before any other install commands that depend on the
# manpages generated by doxygen, so that they are generated before use
install(CODE
"execute_process(COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target docs)"
)
endif()


# configuration-specific source files
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
set(SUPPORT_ABSTRACT_SOCKET_NAMES TRUE)
Expand Down Expand Up @@ -928,7 +919,10 @@ set(FUZZ_CORPORA_DIR ${PROJECT_SOURCE_DIR}/test/corpora)
configure_file(${PROJECT_SOURCE_DIR}/include/stumpless/config.h.in ${PROJECT_BINARY_DIR}/include/stumpless/config.h)
configure_file(${PROJECT_SOURCE_DIR}/include/private/config.h.in ${PROJECT_BINARY_DIR}/include/private/config.h)
configure_file(${PROJECT_SOURCE_DIR}/include/test/config.hpp.in ${PROJECT_BINARY_DIR}/include/test/config.hpp)
configure_file(${PROJECT_SOURCE_DIR}/tools/portage/stumpless.ebuild.in ${PROJECT_BINARY_DIR}/tools/portage/stumpless-${PROJECT_VERSION}.ebuild @ONLY)
configure_file(${PROJECT_SOURCE_DIR}/tools/portage/stumpless.ebuild.in
${PROJECT_BINARY_DIR}/tools/portage/stumpless-${PROJECT_VERSION}.ebuild
@ONLY
)


# installation of the library
Expand Down Expand Up @@ -1412,3 +1406,28 @@ if(BUILD_PYTHON)
)

endif()


# doxygen build target
if(DOXYGEN_FOUND)
configure_file(${PROJECT_SOURCE_DIR}/tools/doxygen/Doxyfile.in ${PROJECT_BINARY_DIR}/tools/doxygen/Doxyfile)

file(GLOB_RECURSE DOXYGEN_PUBLIC_HEADERS ${PROJECT_SOURCE_DIR}/include/stumpless/*.h)
set(EXAMPLE_SOURCES
${PROJECT_SOURCE_DIR}/docs/examples/basic/basic_example.c
)

add_custom_command(
OUTPUT ${DOXYGEN_MANPAGES}
COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_BINARY_DIR}/tools/doxygen/Doxyfile
MAIN_DEPENDENCY ${PROJECT_BINARY_DIR}/tools/doxygen/Doxyfile
DEPENDS
${DOXYGEN_PUBLIC_HEADERS}
${EXAMPLE_SOURCES}
${PROJECT_SOURCE_DIR}/include/stumpless.h
${PROJECT_BINARY_DIR}/include/stumpless/config.h
VERBATIM
)

add_custom_target(docs DEPENDS ${DOXYGEN_MANPAGES})
endif()
5 changes: 0 additions & 5 deletions tools/cmake/install_manpages.cmake
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
# build the docs so that they are available for install
install(CODE
"execute_process(COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target docs)"
)

set(MANPAGE_BUILD_DIR "${PROJECT_BINARY_DIR}/docs/man/man3")

# install the generated manpages
Expand Down
8 changes: 6 additions & 2 deletions tools/cmake/journald.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,20 @@ install(FILES
DESTINATION "include/stumpless/config"
)


list(APPEND DOXYGEN_MANPAGES ${PROJECT_BINARY_DIR}/docs/man/man3/journald.h.3)
list(APPEND DOXYGEN_MANPAGES ${PROJECT_BINARY_DIR}/docs/man/man3/journald_supported.h.3)

if(INCLUDE_MANPAGES_IN_INSTALL)
install(FILES
${PROJECT_BINARY_DIR}/docs/man/man3/journald.h.3
RENAME stumpless_target_journald.h.3
RENAME stumpless_target_journald.h.3
DESTINATION "man/man3"
)

install(FILES
${PROJECT_BINARY_DIR}/docs/man/man3/journald_supported.h.3
RENAME stumpless_config_journald_supported.h.3
RENAME stumpless_config_journald_supported.h.3
DESTINATION "man/man3"
)
endif()
Expand Down

0 comments on commit ff0a696

Please sign in to comment.