Add cmake update-po4a-man(ual) targets.

Still needs more polishing and optimization, but with autotools
support removed want to get something working in first.
This commit is contained in:
Mark de Wever 2011-01-02 11:05:43 +00:00
parent 471e48799b
commit afd1a0bfbe
5 changed files with 139 additions and 0 deletions

View file

@ -42,6 +42,7 @@ Version 1.9.3+svn:
data/hardwired/english.cfg.
* Un-hardwired the [language] block in data/hardwired/english.cfg, and
moved the file out of that subdirectory.
* Add update-po4a-man and update-po4a-manual targets to cmake.
Version 1.9.3:
* Campaigns:

17
cmake/po4a-man.cmake Normal file
View file

@ -0,0 +1,17 @@
file(STRINGS ${PROJECT_SOURCE_DIR}/po/LINGUAS LANGUAGES)
separate_arguments(LANGUAGES)
find_program(PO4A "po4a")
set(PO4A_options --rm-backups --copyright-holder "Wesnoth Development Team")
foreach(LANG ${LANGUAGES})
execute_process(COMMAND ${CMAKE_COMMAND} -E remove ${LANG}/wesnoth.6)
execute_process(COMMAND ${CMAKE_COMMAND} -E remove ${LANG}/wesnothd.6)
endforeach(LANG ${LANGUAGES})
execute_process(COMMAND ${PO4A}
${PO4A_options}
wesnoth-manpages.cfg
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/po/wesnoth-manpages)

93
cmake/po4a-manual.cmake Normal file
View file

@ -0,0 +1,93 @@
file(STRINGS ${PROJECT_SOURCE_DIR}/po/LINGUAS LANGUAGES)
separate_arguments(LANGUAGES)
find_program(ASCIIDOC_EXECUTABLE "asciidoc")
find_program(DOS2UNIX_EXECUTABLE "dos2unix")
find_program(PO4A-TRANSLATE_EXECUTABLE "po4a-translate")
find_program(PO4A-UPDATEPO_EXECUTABLE "po4a-updatepo")
find_program(PO4A-GETTEXTIZE_EXECUTABLE "po4a-gettextize")
find_program(PO4A "po4a")
find_program(XSLTPROC_EXECUTABLE "xsltproc")
set(XSLTOPTS
--nonet
--stringparam callout.graphics 0
--stringparam navig.graphics 0
--stringparam admon.textlabel 1
--stringparam admon.graphics 0
--stringparam html.stylesheet "./styles/manual.css"
)
set(PO4A-TRANSLATE_EXECUTABLE_options
-f docbook
-k 80
-M utf-8
-L utf-8)
# Remove old files
execute_process(COMMAND ${CMAKE_COMMAND} -E remove manual.en.xml)
execute_process(COMMAND ${CMAKE_COMMAND} -E remove manual.en.html)
foreach(LANG ${LANGUAGES})
execute_process(COMMAND ${CMAKE_COMMAND} -E remove manual.${LANG}.html)
execute_process(COMMAND ${CMAKE_COMMAND} -E remove manual.${LANG}.xml)
endforeach(LANG ${LANGUAGES})
# Recreate master files
execute_process(COMMAND ${ASCIIDOC_EXECUTABLE}
-b docbook
-d book
-n
-a toc
-o manual.en.xml
manual.txt)
execute_process(COMMAND ${DOS2UNIX_EXECUTABLE} manual.en.xml)
execute_process(COMMAND ${XSLTPROC_EXECUTABLE}
${XSLTOPTS}
/etc/asciidoc/docbook-xsl/xhtml.xsl
manual.en.xml
OUTPUT_FILE manual.en.html)
# Pot update
message("[update-po4a-manual] Generate pot file.")
execute_process(COMMAND ${PO4A-GETTEXTIZE_EXECUTABLE}
--copyright-holder "Wesnoth Development Team"
-f docbook
-M utf-8
-L utf-8
-m ../../doc/manual/manual.en.xml
-p wesnoth-manual.pot
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/po/wesnoth-manual)
# Recreate translations
foreach(LANG ${LANGUAGES})
message("[update-po4a-manual ${LANG}] Update po file.")
execute_process(COMMAND ${PO4A-UPDATEPO_EXECUTABLE}
${PO4A-UPDATEPO_EXECUTABLE_options}
-f docbook
-M utf-8
-m ../../doc/manual/manual.en.xml
-p ${LANG}.po
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/po/wesnoth-manual)
message("[update-po4a-manual ${LANG}] create xml file.")
execute_process(COMMAND ${PO4A-TRANSLATE_EXECUTABLE}
${PO4A-TRANSLATE_EXECUTABLE_options}
-m ../../doc/manual/manual.en.xml
-p ${LANG}.po
-l ../../doc/manual/manual.${LANG}.xml
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/po/wesnoth-manual)
if(EXISTS manual.${LANG}.xml)
message("[update-po4a-manual ${LANG}] create manual file.")
execute_process(COMMAND ${XSLTPROC_EXECUTABLE}
${XSLTOPTS}
/etc/asciidoc/docbook-xsl/xhtml.xsl
manual.${LANG}.xml
OUTPUT_FILE manual.${LANG}.html)
endif(EXISTS manual.${LANG}.xml)
endforeach(LANG ${LANGUAGES})

View file

@ -6,6 +6,8 @@ if(ENABLE_SERVER)
SET(MANPAGES ${MANPAGES} wesnothd.6)
endif()
set(ALL_MANPAGES wesnoth.6 wesnothd.6)
foreach(MANPAGE ${MANPAGES})
install(FILES ${MANPAGE} DESTINATION "${MANDIR}/man6/")
@ -15,3 +17,15 @@ foreach(MANPAGE ${MANPAGES})
endforeach(LANG ${LINGUAS})
endif(ENABLE_NLS)
endforeach(MANPAGE ${MANPAGES})
if(ENABLE_POT_UPDATE_TARGET)
add_custom_target(update-po4a-man
COMMAND ${CMAKE_COMMAND}
-DPROJECT_SOURCE_DIR="${PROJECT_SOURCE_DIR}"
-DMANPAGES="${ALL_MANPAGES}"
-P "${CMAKE_MODULE_PATH}/po4a-man.cmake"
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/wesnoth.6
${CMAKE_CURRENT_SOURCE_DIR}/wesnothd.6
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
endif(ENABLE_POT_UPDATE_TARGET)

View file

@ -11,6 +11,20 @@ find_program(ASCIIDOC_EXECUTABLE "asciidoc")
find_program(DOS2UNIX_EXECUTABLE "dos2unix")
find_program(XSLTPROC_EXECUTABLE "xsltproc")
file(STRINGS ${PROJECT_SOURCE_DIR}/po/LINGUAS LANGUAGES)
separate_arguments(LANGUAGES)
if(ENABLE_POT_UPDATE_TARGET)
add_custom_target(update-po4a-manual
COMMAND ${CMAKE_COMMAND}
-DPROJECT_SOURCE_DIR="${PROJECT_SOURCE_DIR}"
-P "${CMAKE_MODULE_PATH}/po4a-manual.cmake"
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/manual.txt
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
endif(ENABLE_POT_UPDATE_TARGET)
if(ASCIIDOC_EXECUTABLE AND DOS2UNIX_EXECUTABLE AND XSLTPROC_EXECUTABLE)
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/manual.en.xml
COMMAND ${ASCIIDOC_EXECUTABLE} -b docbook -d book -n -a toc -o manual.en.xml ${CMAKE_CURRENT_SOURCE_DIR}/manual.txt