geary/help/CMakeLists.txt
Charles Lindsay 2e30e47b98 Generate and install localized help docs
This causes us to generate localized help docs whenever Geary builds,
and then the localized docs are installed with the rest of the help
pages.

It would be great to also have the CMakeLists read from the Makefile.am
file to determine what translations to run, but that hasn't happened
yet.

Closes: bgo #713831
2014-03-17 12:02:17 -07:00

81 lines
2.5 KiB
CMake

set(HELP_FILES
accounts.page
archive.page
bugs.page
index.page
label.page
limits.page
overview.page
preferences.page
search.page
shortcuts.page
star.page
write.page
)
# FIXME: don't re-specify this here, instead read it from Makefile.am.
set(TRANSLATED
el
es
)
set(HELP_DEST share/gnome/help/geary)
set(HELP_SOURCE)
foreach(_page ${HELP_FILES})
set(HELP_SOURCE ${HELP_SOURCE} C/${_page})
endforeach()
install(FILES ${HELP_SOURCE} DESTINATION ${HELP_DEST}/C)
install(FILES C/figures/geary.svg DESTINATION ${HELP_DEST}/C/figures)
FIND_PROGRAM(XML2PO_BIN xml2po)
IF(NOT XML2PO_BIN)
MESSAGE(FATAL_ERROR "xml2po not found")
ENDIF()
# Hacked together from the similar macro in cmake/Gettext.cmake.
MACRO(HELP_CREATE_TRANSLATIONS _firstLang)
SET(_translatedPages)
SET(_addToAll)
SET(_isComment FALSE)
FOREACH(_lang ${_firstLang} ${ARGN})
IF(_lang STREQUAL "ALL")
SET(_addToAll "ALL")
ELSEIF(_lang STREQUAL "COMMENT")
SET(_isComment TRUE)
ELSEIF(_isComment)
SET(_isComment FALSE)
SET(_comment ${_lang})
ELSE()
GET_FILENAME_COMPONENT(_absPo ${_lang}/${_lang}.po ABSOLUTE)
FOREACH(_page ${HELP_FILES})
GET_FILENAME_COMPONENT(_absSourcePage C/${_page} ABSOLUTE)
SET(_destPage ${CMAKE_CURRENT_BINARY_DIR}/${_lang}/${_page})
GET_FILENAME_COMPONENT(_destPath ${_destPage} PATH)
#MESSAGE("_absPo=${_absPo} _absSourcePage=${_absSourcePage} _destPage=${_destPage} _lang=${_lang} _page=${_page} curr_bin=${CMAKE_CURRENT_BINARY_DIR}\n")
ADD_CUSTOM_COMMAND(
OUTPUT ${_destPage}
COMMAND mkdir -p ${_destPath} && ${XML2PO_BIN} -m mallard -p ${_absPo} -o ${_destPage} ${_absSourcePage}
DEPENDS ${_absPo} ${_absSourcePage}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
INSTALL(FILES ${_destPage} DESTINATION ${HELP_DEST}/${_lang})
SET(_translatedPages ${_translatedPages} ${_destPage})
ENDFOREACH()
ENDIF()
ENDFOREACH()
IF(DEFINED _comment)
ADD_CUSTOM_TARGET(help_translations ${_addToAll} DEPENDS ${_translatedPages} COMMENT ${_comment})
ELSE()
ADD_CUSTOM_TARGET(help_translations ${_addToAll} DEPENDS ${_translatedPages})
ENDIF()
ENDMACRO()
HELP_CREATE_TRANSLATIONS(ALL ${TRANSLATED} COMMENT "Translating help docs.")