FUNCTION(PLUGIN_LOCALIZATION) FIND_PROGRAM(GETTEXT_XGETTEXT_EXECUTABLE xgettext) string(REPLACE "_pi" "" I18N_NAME ${PACKAGE_NAME}) IF (GETTEXT_XGETTEXT_EXECUTABLE) ADD_CUSTOM_COMMAND( OUTPUT po/${PACKAGE_NAME}.pot.dummy COMMAND ${GETTEXT_XGETTEXT_EXECUTABLE} --force-po --package-name=${PACKAGE_NAME} --package-version="${PACKAGE_VERSION}" --output=po/${PACKAGE_NAME}.pot --keyword=_ --width=80 --files-from=${CMAKE_CURRENT_SOURCE_DIR}/po/POTFILES.in DEPENDS po/POTFILES.in po/${PACKAGE_NAME}.pot WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMENT "${I18N_NAME}-pot-update [${PACKAGE_NAME}]: Generated pot file." ) ADD_CUSTOM_TARGET(${I18N_NAME}-pot-update COMMENT "[${PACKAGE_NAME}]-pot-update: Done." DEPENDS po/${PACKAGE_NAME}.pot.dummy) ENDIF(GETTEXT_XGETTEXT_EXECUTABLE ) MACRO(GETTEXT_UPDATE_PO _potFile) SET(_poFiles ${_potFile}) GET_FILENAME_COMPONENT(_absPotFile ${_potFile} ABSOLUTE) FOREACH (_currentPoFile ${ARGN}) GET_FILENAME_COMPONENT(_absFile ${_currentPoFile} ABSOLUTE) GET_FILENAME_COMPONENT(_poBasename ${_absFile} NAME_WE) ADD_CUSTOM_COMMAND( OUTPUT ${_absFile}.dummy COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --width=80 --strict --quiet --update --backup=none --no-location -s ${_absFile} ${_absPotFile} DEPENDS ${_absPotFile} ${_absFile} COMMENT "${I18N_NAME}-po-update [${_poBasename}]: Updated po file." ) SET(_poFiles ${_poFiles} ${_absFile}.dummy) ENDFOREACH (_currentPoFile ) ADD_CUSTOM_TARGET(${I18N_NAME}-po-update COMMENT "[${PACKAGE_NAME}]-po-update: Done." DEPENDS ${_poFiles}) ENDMACRO(GETTEXT_UPDATE_PO) IF (GETTEXT_MSGMERGE_EXECUTABLE) FILE(GLOB PACKAGE_PO_FILES po/*.po) GETTEXT_UPDATE_PO(po/${PACKAGE_NAME}.pot ${PACKAGE_PO_FILES}) ENDIF(GETTEXT_MSGMERGE_EXECUTABLE) SET(_gmoFiles) MACRO(GETTEXT_BUILD_MO) FOREACH (_poFile ${ARGN}) GET_FILENAME_COMPONENT(_absFile ${_poFile} ABSOLUTE) GET_FILENAME_COMPONENT(_poBasename ${_absFile} NAME_WE) SET(_gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_poBasename}.mo) ADD_CUSTOM_COMMAND( OUTPUT ${_gmoFile} COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} --check -o ${_gmoFile} ${_absFile} COMMAND ${CMAKE_COMMAND} -E copy ${_gmoFile} "Resources/${_poBasename}.lproj/opencpn-${PACKAGE_NAME}.mo" DEPENDS ${_absFile} COMMENT "${I18N_NAME}-i18n [${_poBasename}]: Created mo file." ) IF(APPLE) INSTALL(FILES ${_gmoFile} DESTINATION ${CMAKE_INSTALL_PREFIX}/bin/OpenCPN.app/Contents/Resources/${_poBasename}.lproj RENAME opencpn-${PACKAGE_NAME}.mo ) ELSE(APPLE) INSTALL(FILES ${_gmoFile} DESTINATION ${PREFIX_DATA}/locale/${_poBasename}/LC_MESSAGES RENAME opencpn-${PACKAGE_NAME}.mo ) ENDIF(APPLE) SET(_gmoFiles ${_gmoFiles} ${_gmoFile}) ENDFOREACH (_poFile ) ENDMACRO(GETTEXT_BUILD_MO) if(GETTEXT_MSGFMT_EXECUTABLE) FILE(GLOB PACKAGE_PO_FILES po/*.po) GETTEXT_BUILD_MO(${PACKAGE_PO_FILES}) ADD_CUSTOM_TARGET(${I18N_NAME}-i18n COMMENT "${PACKAGE_NAME}-i18n: Done." DEPENDS ${_gmoFiles}) ADD_DEPENDENCIES(${PACKAGE_NAME} ${I18N_NAME}-i18n) ENDIF(GETTEXT_MSGFMT_EXECUTABLE) ENDFUNCTION()