Manpages are installed as gzipped files on 'make install'

This commit is contained in:
JayPiKay 2012-03-27 23:07:23 +02:00
parent 151abb65a4
commit 68baecfdc0
1 changed files with 34 additions and 4 deletions

View File

@ -1,18 +1,48 @@
cmake_minimum_required(VERSION 2.6)
cmake_minimum_required(VERSION 2.8)
project(g35d)
set(CMAKE_INSTALL_PREFIX /usr/local/)
set(SOURCE_DIR ${PROJECT_SOURCE_DIR})
set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR})
# When building libg35 and g35d side by side
include_directories(${PROJECT_SOURCE_DIR}/include)
link_directories(${PROJECT_SOURCE_DIR}/libs)
include_directories(${SOURCE_DIR}/include)
link_directories(${SOURCE_DIR}/libs)
set(G35D_MAN_SRC
${SOURCE_DIR}/manpages/g35d.1
${SOURCE_DIR}/manpages/g35d.rc.5)
add_executable(g35d g35d.c g35config.c)
target_link_libraries(g35d g35 pthread confuse)
foreach(manpage ${G35D_MAN_SRC})
get_filename_component(basename ${manpage} NAME)
string(REGEX REPLACE "^.*\\.([0-9])$" "\\1" section ${basename})
set(MANPAGE_DIR ${BUILD_DIR}/man/man${section})
file(MAKE_DIRECTORY ${MANPAGE_DIR})
set(gzfile ${MANPAGE_DIR}/${basename}.gz)
add_custom_command(
COMMAND groff -man -Tascii ${manpage} | gzip -c >${gzfile}
WORKING_DIRECTORY ${MANPAGE_DIR}
OUTPUT ${gzfile}
DEPENDS ${manpage})
set(MANPAGES ${MANPAGES} ${gzfile})
endforeach()
add_custom_target(man ALL DEPENDS ${MANPAGES})
install(TARGETS g35d
DESTINATION "bin"
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
install(FILES g35d.rc
DESTINATION "/etc"
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
install(DIRECTORY ${BUILD_DIR}/man/man1 DESTINATION "man"
FILES_MATCHING PATTERN "*.gz")
install(DIRECTORY ${BUILD_DIR}/man/man5 DESTINATION "man"
FILES_MATCHING PATTERN "*.gz")