[cmake-developers] Integration of manpage installation
Michael Wild
themiwi at gmail.com
Tue Jun 7 14:26:25 EDT 2011
On 06/07/2011 07:40 PM, Werner Mahr wrote:
> 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)
That is a different, unrelated problem.
>
> Plus there are files out there like:
>
> svgalib.faq.de.7
>
> which would raise the error in the code.
Well, then that can be fixed.
> 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.
>
IMHO, sounds an awful lot like DWIM to me, but others might disagree. I
don't think that CMake could satisfy everybody by using such a scheme.
Just my 2c...
Michael
More information about the cmake-developers
mailing list