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:
parent
471e48799b
commit
afd1a0bfbe
5 changed files with 139 additions and 0 deletions
|
@ -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
17
cmake/po4a-man.cmake
Normal 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
93
cmake/po4a-manual.cmake
Normal 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})
|
||||
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue