X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=po%2FCMakeLists.txt;h=a87e6590f60dc34fff4ba6aab19db4b225466c8e;hb=42b5d038414cf4a4a050e816b471f890b24e8032;hp=99c94e623e561ff6e30daa997db73742c5cbe0be;hpb=b61a0ff7e76a542a874714e4ee7753db48f9f8aa;p=platform%2Fupstream%2Flibzypp.git diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt index 99c94e6..a87e659 100644 --- a/po/CMakeLists.txt +++ b/po/CMakeLists.txt @@ -1,27 +1,69 @@ -# -# Creating the .pot file to be translated. -# -ADD_CUSTOM_TARGET( zypp.pot - COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/createPot ${LIBZYPP_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/zypp.pot -) -SET_DIRECTORY_PROPERTIES( PROPERTIES - ADDITIONAL_MAKE_CLEAN_FILES zypp.pot -) +# Translation set name +SET( POT_NAME "zypp" ) + +# Creating the .pot file.... +# POT_FILE_DEPENDS was set in ../src +SET( POT_FILE ${CMAKE_CURRENT_BINARY_DIR}/${POT_NAME}.pot ) + +SET( XGETTEXT_CMD "xgettext" ) +SET( XGETTEXT_OPTIONS -L C++ --boost --no-wrap --add-comments --add-location --foreign-user ) +SET( XGETTEXT_OPTIONS ${XGETTEXT_OPTIONS} --keyword=_ --keyword=_:1,2 --keyword=__ --keyword=N_ --keyword=PL_:1,2 ) +SET( XGETTEXT_OPTIONS ${XGETTEXT_OPTIONS} --copyright-holder=\"SuSE Linux GmbH, Nuernberg\" ) +SET( XGETTEXT_OPTIONS ${XGETTEXT_OPTIONS} --package-name=${POT_NAME} --default-domain=${POT_NAME} ) -# -# Provides the 'translations' target that creates the .gmo files -# out of the pofiles provided by zypp-po.tar.bz2. -# Use USE_TRANSLATION_SET to use an alternate set provided by -# ${USE_TRANSLATION_SET}-po.tar.bz2 -# -#GETTEXT_CREATE_TARBALL_TRANSLATIONS( "zypp" ) - -EXECUTE_PROCESS( - COMMAND find ${CMAKE_CURRENT_SOURCE_DIR} -name *.po -printf "%f;" - OUTPUT_VARIABLE TRANSLATION_SET_CONTENT +SET( _abs_POT_FILE_DEPENDS ) +FOREACH( _currentDepends ${POT_FILE_DEPENDS} ) + SET( _abs_POT_FILE_DEPENDS ${_abs_POT_FILE_DEPENDS} ${LIBZYPP_SOURCE_DIR}/${_currentDepends} ) +ENDFOREACH() + +ADD_CUSTOM_COMMAND( OUTPUT ${POT_FILE} + COMMAND ${XGETTEXT_CMD} ${XGETTEXT_OPTIONS} --output=${POT_FILE} ${POT_FILE_DEPENDS} + WORKING_DIRECTORY ${LIBZYPP_SOURCE_DIR} + DEPENDS ${_abs_POT_FILE_DEPENDS} + COMMENT "Extract translatable messages to ${POT_FILE}" ) -MESSAGE( STATUS "Translations: ${TRANSLATION_SET_CONTENT}" ) -GETTEXT_CREATE_TRANSLATIONS( "zypp" "ALL" ${TRANSLATION_SET_CONTENT} ) +# Creating the .gmo files out of the .po files +FILE( GLOB PO_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.po" ) + +SET( GMO_FILES ) +FOREACH( _currentPoFile ${PO_FILES} ) + GET_FILENAME_COMPONENT( _absFile ${_currentPoFile} ABSOLUTE ) + GET_FILENAME_COMPONENT( _lang ${_absFile} NAME_WE ) + + SET( _poFile ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.po ) + SET( _gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo ) + + ADD_CUSTOM_COMMAND( OUTPUT ${_gmoFile} + COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --quiet -o ${_poFile} ${_absFile} ${POT_FILE} + COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_poFile} + DEPENDS ${POT_FILE} ${_absFile} + COMMENT "Update ${_gmoFile}" + ) + INSTALL( FILES ${_gmoFile} + DESTINATION share/locale/${_lang}/LC_MESSAGES + RENAME ${POT_NAME}.mo + ) + + SET( GMO_FILES ${GMO_FILES} ${_gmoFile} ) +ENDFOREACH() + + +# Provides the 'translations' target that +# creates the .gmo files out of the .po files +SET( SOURCE_POT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${POT_NAME}.pot ) + +ADD_CUSTOM_TARGET( translations ALL + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/PotfileDiff.sh ${SOURCE_POT_FILE} ${POT_FILE} | grep '^[+-][^+-]' || true + DEPENDS ${GMO_FILES} + COMMENT ".pot file diff..." +) + +ADD_CUSTOM_TARGET( potfile_update + COMMAND ./PotfileDiff.sh ${SOURCE_POT_FILE} ${POT_FILE} -q || ./PotfileUpadte.sh ${CMAKE_CURRENT_BINARY_DIR} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + DEPENDS translations + COMMENT "Checking for uncommitted changes to the .pot file..." +)