[CMake] Manual page generation
Michael Wild
themiwi at gmail.com
Fri Sep 24 08:00:42 EDT 2010
This works for me:
CMakeLists.txt:
# BOF ----------------
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
project(manTest)
find_program(A2X_EXECUTABLE NAMES a2x a2x.py)
set(A2X_OPTS
-D ${CMAKE_BINARY_DIR}
-d manpage
-f manpage
)
set(MAN_NAMES foo.1 bar.3)
set(MAN_FILES)
foreach(m IN LISTS MAN_NAMES)
set(mf ${CMAKE_BINARY_DIR}/${m})
set(ms ${CMAKE_SOURCE_DIR}/${m}.txt)
add_custom_command(OUTPUT ${mf}
COMMAND ${A2X_EXECUTABLE} ${A2X_OPTS} ${ms}
DEPENDS ${ms}
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
COMMENT "Building manpage ${mf}"
VERBATIM)
list(APPEND MAN_FILES ${mf})
endforeach()
add_custom_target(man ALL DEPENDS ${MAN_FILES})
# EOF ----------------
Michael
On 24. Sep, 2010, at 13:43 , Laszlo Papp wrote:
> This did not work either :((( :
>
> set(ASCIIDOC_MANS
> hacky.8
> akabei-create-db.8
> akabei.conf.5
> akabei.3
> )
>
> set(A2X_OPTS
> -no-xmllint
> -d manpage
> -f manpage
> --xsltproc-opts='-param man.endnotes.list.enabled 0 -param
> man.endnotes.are.numbered 0'
> )
>
> foreach(manpage $(ASCIIDOC_MANS))
> execute_process(COMMAND ${a2x} ${A2X_OPTS}
> --asciidoc-opts="${AKABEI_VERSION_STRING}"
> ${CMAKE_CURRENT_SOURCE_DIR}/${manpage}.txt
> --destination-dir=${CMAKE_CURRENT_BINARY_DIR})
> endforeach()
>
> install(FILES ${CMAKE_CURRENT_BINARY_DIR}/akabei.3.gz DESTINATION
> ${MAN_INSTALL_DIR}/man3/)
> install(FILES ${CMAKE_CURRENT_BINARY_DIR}/akabei.conf.5.gz DESTINATION
> ${MAN_INSTALL_DIR}/man5/)
> install(FILES ${CMAKE_CURRENT_BINARY_DIR}/hacky.8.gz DESTINATION
> ${MAN_INSTALL_DIR}/man8/)
>
>
> On Fri, Sep 24, 2010 at 2:04 PM, Michael Wild <themiwi at gmail.com> wrote:
>>
>> On 24. Sep, 2010, at 12:36 , Laszlo Papp wrote:
>>
>>> Hi,
>>>
>>> What is wrong about the following CMakeLists.txt file ? I would like
>>> to generate manual pages, like this project does with autotools:
>>> http://projects.archlinux.org/pacman.git/tree/doc/Makefile.am
>>>
>>> Thank you in advance!
>>>
>>> ========================================================================================
>>>
>>> set(ASCIIDOC_MANS
>>> hacky.8
>>> akabei-create-db.8
>>> akabei.conf.5
>>> akabei.3
>>> )
>>>
>>> set(A2X_OPTS
>>> -no-xmllint
>>> -d manpage
>>> -f manpage
>>> --xsltproc-opts='-param man.endnotes.list.enabled 0 -param
>>> man.endnotes.are.numbered 0'
>>> )
>>>
>>> foreach(manpage ${ASCIIDOC_MANS})
>>> add_custom_command(OUTPUT ${manpage}
>>> COMMAND a2x ${A2X_OPTS}
>>> --asciidoc-opts="${AKABEI_VERSION_STRING}" ${manpage}.txt
>>> VERBATIM)
>>> endforeach(manpage)
>>>
>>> # install(FILES akabei.3.gz DESTINATION ${MAN_INSTALL_DIR}/man3/)
>>> # install(FILES akabei.conf.5.gz DESTINATION ${MAN_INSTALL_DIR}/man5/)
>>> # install(FILES hacky.8.gz DESTINATION ${MAN_INSTALL_DIR}/man8/)
>>>
>>> Best Regards,
>>> Laszlo Papp
>>
>> You need a top-level target that depends on the individual manpages:
>>
>> add_custom_target(man ALL
>> DEPENDS ${ASCIIDOC_MANS})
>>
>> HTH
>>
>> Michael
>>
>> --
>> There is always a well-known solution to every human problem -- neat, plausible, and wrong.
>> H. L. Mencken
>>
>>
--
There is always a well-known solution to every human problem -- neat, plausible, and wrong.
H. L. Mencken
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 195 bytes
Desc: This is a digitally signed message part
URL: <http://www.cmake.org/pipermail/cmake/attachments/20100924/f7b52a76/attachment.pgp>
More information about the CMake
mailing list