Man pages of identic prefix as executables
[gpivtools.git] / CMake / GpivUtilities.cmake
blobc3dadf3fcad75f970d0272a711094302d5da5935
1 function(gpiv_install_script name src)
2   install (PROGRAMS ${src}
3     RENAME ${EXE_PREFIX}${name}
4     DESTINATION bin
5   )
6 endfunction()
9 function(gpiv_add_executable name src)
10   add_executable (${name} ${src})
11   target_link_libraries (${name} ${GPIV_LIBRARIES} ${GSL_CONFIG_LIBS} m 
12     ${Glib_LIBRARIES})
13   set_target_properties (${name} PROPERTIES
14     OUTPUT_NAME ${EXE_PREFIX}${name})
15   install_targets (/bin ${name})
17   add_dependencies(${name} githash)
18   add_manpage(${name})
19 endfunction()
22 function(git_hash)
23 # Adding git hash
24   set (gitrev_h git-rev.h)
25   set (gitrev_in ${gitrev_h}.in)
26   add_custom_target(githash
27   ${CMAKE_COMMAND} -E remove -f ${CMAKE_CURRENT_BINARY_DIR}/${gitrev_h}
28   COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/${gitrev_in} ${CMAKE_CURRENT_BINARY_DIR}/${gitrev_h}
29   COMMAND ${GIT_EXECUTABLE} rev-parse HEAD >> ${CMAKE_CURRENT_BINARY_DIR}/${gitrev_h}
30   WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}         #very important, otherwise git repo might not be found in shadow build
31   VERBATIM                                              #portability wanted
32   )
33 endfunction()
36 function(git_msg msg)
37 # Adding message instead of git hash
38   set (gitrev_h git-rev.h)
39   set (gitrev_in ${gitrev_h}.in)
40   add_custom_target(gitrev
41   ${CMAKE_COMMAND} -E remove -f ${CMAKE_CURRENT_BINARY_DIR}/${gitrev_h}
42   COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/${gitrev_in} ${CMAKE_CURRENT_BINARY_DIR}/${gitrev_h}
43   COMMAND echo ${msg} >> ${CMAKE_CURRENT_BINARY_DIR}/${gitrev_h}
44   WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}         #very important, otherwise git repo might not be found in shadow build
45   VERBATIM                                              #portability wanted
46   )
47 endfunction()
50 function(add_manpage name)
51   file(COPY ${CMAKE_SOURCE_DIR}/man/${name}.1 
52     DESTINATION ${CMAKE_BINARY_DIR}/man/)
53   file(RENAME ${CMAKE_BINARY_DIR}/man/${name}.1 
54     ${CMAKE_BINARY_DIR}/man/${EXE_PREFIX}${name}.1)
56   install(FILES ${CMAKE_BINARY_DIR}/man/${EXE_PREFIX}${name}.1
57         DESTINATION ${DOC_PATH}
61 endfunction()