Files
Archive/shadowsocks-libev/libipset/docs/CMakeLists.txt
2024-03-05 02:32:38 -08:00

103 lines
2.8 KiB
CMake

# -*- coding: utf-8 -*-
# ----------------------------------------------------------------------
# Copyright © 2011-2013, RedJack, LLC.
# All rights reserved.
#
# Please see the LICENSE.txt file in this distribution for license
# details.
# ----------------------------------------------------------------------
# Fill in this with the text that you want to include in the header and footer
# of each man page.
set(MAN_HEADER "ipset documentation")
set(MAN_FOOTER "ipset")
# Fill this in with any man pages that should be built from a pandoc source
# file. For a man page called foo.5, there should be a pandoc source file
# called foo.5.pandoc.
set(MAN_PAGES
)
#-----------------------------------------------------------------------
# Everything below is boilerplate!
find_program(
PANDOC_EXECUTABLE
NAMES pandoc
HINTS ENV PANDOC_DIR
PATH_SUFFIXES bin
DOC "Pandoc man page generator"
)
set(GENERATE_DOC TRUE CACHE BOOL
"Whether to rebuild documentation")
if (NOT PANDOC_EXECUTABLE)
message(WARNING "Unable to find pandoc documentation generator")
set(GENERATE_DOC FALSE)
endif (NOT PANDOC_EXECUTABLE)
# Link man pages go in docs/links
macro(install_links section)
file(GLOB links "links/*.${section}")
if (links)
install(
FILES ${links}
DESTINATION "share/man/man${section}"
)
endif (links)
endmacro(install_links section)
install_links(1) # commands
install_links(3) # library API
install_links(4) # special files and drivers
install_links(5) # file formats and conventions
install_links(7) # miscellaneous
install_links(8) # system commands
# Man pages with actual content go in docs
set(ALL_MANS)
macro(pandocify name)
set(src "${CMAKE_CURRENT_SOURCE_DIR}/${name}.pandoc")
set(dest "${CMAKE_CURRENT_SOURCE_DIR}/${name}")
get_filename_component(section "${name}" EXT)
string(REPLACE "." "" section "${section}")
# Only compile the markdown source into groff man pages if requested.
if (GENERATE_DOC)
add_custom_command(
OUTPUT ${dest}
COMMAND ${PANDOC_EXECUTABLE}
-f markdown -t man -s --smart
-V header="${MAN_HEADER}"
-V footer="${MAN_FOOTER}"
-V date=${RELEASE_DATE}
-o ${dest} ${src}
MAIN_DEPENDENCY ${src}
COMMENT "Building ${name}"
)
list(APPEND ALL_MANS ${dest})
endif (GENERATE_DOC)
# We should always have an already-compiled copy of each man page in the
# source tree, which we can install even if we didn't build fresh new
# copies.
install(
FILES ${dest}
DESTINATION "share/man/man${section}"
)
endmacro(pandocify)
foreach(MAN_PAGE ${MAN_PAGES})
pandocify(${MAN_PAGE})
endforeach(MAN_PAGE)
add_custom_target(doc ALL DEPENDS ${ALL_MANS})