Add per-language targets for po-generation: update-po-domain-LANG
Fix gettext detection Fix out of source build
This commit is contained in:
parent
4fe4c219de
commit
7419a6726d
4 changed files with 30 additions and 17 deletions
|
@ -15,6 +15,7 @@ FIND_PACKAGE( PythonLibs 2.4 )
|
|||
FIND_PACKAGE( Boost 1.33 REQUIRED COMPONENTS iostreams regex )
|
||||
FIND_PACKAGE( ZLIB REQUIRED )
|
||||
FIND_PACKAGE( PNG REQUIRED )
|
||||
FIND_PACKAGE( Gettext REQUIRED )
|
||||
|
||||
#Options
|
||||
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
MACRO (ADD_POT_TARGET DOMAIN)
|
||||
add_custom_command(OUTPUT remove-potcdate.sed
|
||||
add_custom_command(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/remove-potcdate.sed
|
||||
COMMAND sed
|
||||
ARGS -e "'/^#/d'" remove-potcdate.sin > remove-potcdate.sed
|
||||
MAIN_DEPENDENCY remove-potcdate.sin )
|
||||
MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/remove-potcdate.sin
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
set(POTFILE ${DOMAIN}.pot)
|
||||
|
||||
add_custom_target(update-pot-${DOMAIN}
|
||||
COMMAND ${CMAKE_SOURCE_DIR}/po/pot-update.sh ${DOMAIN}
|
||||
COMMAND ${CMAKE_BINARY_DIR}/po/pot-update.sh ${DOMAIN}
|
||||
DEPENDS remove-potcdate.sed
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
# add_custom_command(OUTPUT ${POTFILE}
|
||||
|
@ -23,42 +24,51 @@ ENDMACRO (ADD_POT_TARGET DOMAIN)
|
|||
|
||||
|
||||
MACRO (ADD_PO_TARGETS DOMAIN)
|
||||
if(GETTEXT_MSGMERGE_EXECUTABLE AND GETTEXT_MSGINIT_EXECUTABLE)
|
||||
set(LINGUAS ${ARGN})
|
||||
set(POFILES)
|
||||
|
||||
add_custom_target(update-po-${DOMAIN})
|
||||
|
||||
foreach(LANG ${LINGUAS})
|
||||
set(POFILE ${LANG}.po)
|
||||
set(UPDFILE ${LANG}.upd)
|
||||
|
||||
add_custom_command(OUTPUT ${UPDFILE}
|
||||
COMMAND ${CMAKE_SOURCE_DIR}/po/po-update.sh
|
||||
ARGS ${DOMAIN} ${LANG} ${GETTEXT_MSGMERGE_EXECUTABLE} ${GETTEXT_MSGINIT_EXECUTABLE}
|
||||
MAIN_DEPENDENCY ${DOMAIN}.pot )
|
||||
add_custom_target(update-po-${DOMAIN}-${LANG}
|
||||
COMMAND ${CMAKE_SOURCE_DIR}/po/po-update.sh
|
||||
${DOMAIN} ${LANG} ${GETTEXT_MSGMERGE_EXECUTABLE} ${GETTEXT_MSGINIT_EXECUTABLE}
|
||||
DEPENDS ${DOMAIN}.pot
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
add_dependencies(update-po-${DOMAIN} update-po-${DOMAIN}-${LANG})
|
||||
#add_dependencies(update-po-${DOMAIN}-${LANG} )
|
||||
|
||||
set_source_files_properties(${POFILE} PROPERTIES GENERATED TRUE)
|
||||
set(POFILES ${POFILES} ${UPDFILE})
|
||||
endforeach(LANG ${LINGUAS})
|
||||
|
||||
add_custom_target(update-po-${DOMAIN} DEPENDS ${POFILES})
|
||||
add_dependencies(update-po update-po-${DOMAIN})
|
||||
|
||||
endif(GETTEXT_MSGMERGE_EXECUTABLE AND GETTEXT_MSGINIT_EXECUTABLE)
|
||||
ENDMACRO (ADD_PO_TARGETS DOMAIN)
|
||||
|
||||
|
||||
MACRO (ADD_MO_TARGETS DOMAIN)
|
||||
if(GETTEXT_MSGFMT_EXECUTABLE)
|
||||
|
||||
set(LINGUAS ${ARGN})
|
||||
set(MOFILES)
|
||||
|
||||
foreach(LANG ${LINGUAS})
|
||||
set(POFILE ${LANG}.po)
|
||||
set(MOFILE ${LANG}.gmo)
|
||||
set(MOFILE ${CMAKE_CURRENT_BINARY_DIR}/${LANG}.gmo)
|
||||
set_source_files_properties(${POFILE} PROPERTIES GENERATED TRUE)
|
||||
|
||||
add_custom_command(OUTPUT ${MOFILE}
|
||||
COMMAND ${GETTEXT_MSGFMT_EXECUTABLE}
|
||||
COMMAND ${GETTEXT_MSGFMT_EXECUTABLE}
|
||||
ARGS -c -o ${MOFILE} ${POFILE}
|
||||
MAIN_DEPENDENCY ${POFILE} )
|
||||
MAIN_DEPENDENCY ${POFILE}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
install(FILES ${MOFILE} DESTINATION ${LOCALE_INSTALL}/${LANG}/LC_MESSAGES/ RENAME ${DOMAIN}.mo)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${MOFILE} DESTINATION ${LOCALE_INSTALL}/${LANG}/LC_MESSAGES/ RENAME ${DOMAIN}.mo)
|
||||
|
||||
set(MOFILES ${MOFILES} ${MOFILE})
|
||||
|
||||
|
@ -66,4 +76,6 @@ MACRO (ADD_MO_TARGETS DOMAIN)
|
|||
|
||||
add_custom_target(update-gmo-${DOMAIN} ALL DEPENDS ${MOFILES})
|
||||
add_dependencies(update-gmo update-gmo-${DOMAIN})
|
||||
|
||||
endif(GETTEXT_MSGFMT_EXECUTABLE)
|
||||
ENDMACRO (ADD_MO_TARGETS DOMAIN)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
INCLUDE(TranslationTargets)
|
||||
set(XGETTEXT_OPTIONS "--from-code=UTF-8 --sort-by-file --keyword=sgettext --keyword=vgettext --keyword=_n:1,2 --keyword=sngettext:1,2 --keyword=vngettext:1,2")
|
||||
|
||||
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/pot-update.sh.in ${CMAKE_CURRENT_SOURCE_DIR}/pot-update.sh)
|
||||
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/pot-update.sh.in ${CMAKE_CURRENT_BINARY_DIR}/pot-update.sh)
|
||||
|
||||
add_custom_target(update-pot)
|
||||
add_custom_target(update-po)
|
||||
|
|
|
@ -8,9 +8,9 @@ GETTEXT_MSGINIT_EXECUTABLE=$4
|
|||
if test -f "$LANG.po"; then
|
||||
echo "$GETTEXT_MSGMERGE_EXECUTABLE --update $LANG.po $DOMAIN.pot"
|
||||
$GETTEXT_MSGMERGE_EXECUTABLE --update $LANG.po $DOMAIN.pot
|
||||
touch $LANG.upd
|
||||
# touch $LANG.upd
|
||||
else
|
||||
echo "$GETTEXT_MSGINIT_EXECUTABLE --no-translator --input=$DOMAIN.pot --output-file=$LANG.po --locale=$LANG"
|
||||
$GETTEXT_MSGINIT_EXECUTABLE --no-translator --input="$DOMAIN.pot" --output-file="$LANG.po" --locale="$LANG"
|
||||
touch $LANG.upd
|
||||
# touch $LANG.upd
|
||||
fi
|
||||
|
|
Loading…
Add table
Reference in a new issue