man page! it's not finished yet but we're that much closer to the big leagues now, son
This commit is contained in:
41
cmake/Modules/Ronn.cmake
Normal file
41
cmake/Modules/Ronn.cmake
Normal file
@@ -0,0 +1,41 @@
|
||||
find_program(RONN ronn)
|
||||
find_program(GZIP gzip)
|
||||
|
||||
if(NOT RONN OR NOT GZIP)
|
||||
message(WARNING "Not generating manpages")
|
||||
if(NOT RONN)
|
||||
message(WARNING " ronn not installed")
|
||||
endif(NOT RONN)
|
||||
if (NOT GZIP)
|
||||
message(WARNING " gzip (somehow) not installed")
|
||||
endif(NOT GZIP)
|
||||
macro(generate_manpage) # Empty, won't do anything
|
||||
endmacro(generate_manpage)
|
||||
macro(add_manpage_target) # ditto
|
||||
endmacro(add_manpage_target)
|
||||
else(NOT RONN OR NOT GZIP)
|
||||
set(manpages)
|
||||
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/man")
|
||||
macro(generate_manpage TARGET SECTION)
|
||||
set(ronnfile "${CMAKE_SOURCE_DIR}/doc/${TARGET}.${SECTION}.ronn")
|
||||
set(outfile "${CMAKE_CURRENT_BINARY_DIR}/man/${TARGET}.${SECTION}")
|
||||
add_custom_command(OUTPUT "${outfile}"
|
||||
DEPENDS "${ronnfile}"
|
||||
COMMAND ${RONN}
|
||||
# BULLSHIT: ronn doesn't let you specify your own output filenames,
|
||||
# have to hack it with shell redirecting
|
||||
ARGS -r --pipe "${ronnfile}" > "${outfile}"
|
||||
)
|
||||
add_custom_command(OUTPUT "${outfile}.gz"
|
||||
DEPENDS "${outfile}"
|
||||
COMMAND "${GZIP}"
|
||||
ARGS -f "${outfile}"
|
||||
)
|
||||
set(manpages ${manpages} "${outfile}.gz")
|
||||
endmacro(generate_manpage)
|
||||
|
||||
macro(add_manpage_target) # this is a macro so we can call it after we've generated all our manpages
|
||||
add_custom_target(man ALL DEPENDS ${manpages})
|
||||
install(FILES ${manpages} DESTINATION "${MAN_INSTALL_DIR}/man${SECTION}" OPTIONAL)
|
||||
endmacro(add_manpage_target)
|
||||
endif(NOT RONN OR NOT GZIP)
|
Reference in New Issue
Block a user