[cmake-developers] Integration of manpage installation

Werner Mahr werner at vollstreckernet.de
Tue Jun 7 13:40:27 EDT 2011


Michael Wild wrote:
 
> foreach(m amule.1 amule.de.1 locale.7)
>   get_filename_component(b ${m} NAME_WE)
>   get_filename_component(e ${m} EXT)
>   if(e MATCHES "(([a-zA-Z_-]+)\\.)?([0-9])")
>     set(l "${CMAKE_MATCH_2}")
>     set(s "${CMAKE_MATCH_3}")
>   else()
>     message(SEND_ERROR
>       "Failed to parse language and section from manpage name '${m}'")
>   endif()
>   install(FILES ${m}
>     DESTINATION "${CMAKE_INSTALL_MANDIR}/${l}/man${s}" COMPONENT doc
>     RENAME ${b}.${s})
> endforeach()

Unfortunately not:

CMake Error at docs/man/cmake_install.cmake:38 (FILE):
  file called with network path DESTINATION.  This does not make sense 
when
  using DESTDIR.  Specify local absolute path or remove DESTDIR 
environment
  variable.

  DESTINATION=

  //man1
Call Stack (most recent call first):
  cmake_install.cmake:39 (INCLUDE)

Plus there are files out there like:

svgalib.faq.de.7

which would raise the error in the code. I don't think that writing 
stuff like this in many different projects is a good idea, that's why I 
proposed to include it native in cmake.

ADD_EXECUTABLE(<app>, <sources>)
SET_TARGET_PROPERTIES (<app> PROPERTIES MAN_SOURCES "docs/man/")

is much easier to write. Expected behaviour is to install above 
mentioned sheme docs/man/<app>* to the right places.

>From my point as a dev participating in more than one prjoect it would 
be a pita to try to understand how they implemented their manpage-
installation, plus it would slim down many projects lot.

-- 
MfG usw.

Werner Mahr




More information about the cmake-developers mailing list