[CMake] SOLVED! Re: Problem with a macro

Leopold Palomo Avellaneda leo at alaxarxa.net
Wed Sep 24 18:59:00 EDT 2008


Sorry for the noise,

the proglem was in another place. This macro is based in some of kde and 
works.

Regards,

Leo



A Dimecres 24 Setembre 2008, Leopold Palomo Avellaneda va escriure:
> Hi,
>
> I'm trying to develop a macro to create gmo files (binarys from .po) for a
> project that uses gettext. This macro gets some parameters,
>
> The idea is that you have program: foo
> a template with the strings: foo.pot (the potfile)
> several languages to translate: ca en es de (the langs var)
> and a place to put the translations: INSTALLDIR
>
> to have a mo file, for each language to must:
> msgmerge foo_LANG.po foo.pot
> msgfmt foo_LANG.po -o foo_LANG.gmo
>
> the last command generates the output.
>
> The macro, creates a custom target: foo_pos
> with all the needed files.
>
> This target is a dependency of another target (translations) because I can
> have several groups (domains) in my project, and with make translations I
> would like to create all.
>
> My problem is that is doesn't work, doesn't do the job and I don't know
> what's is happening.
>
> Please, could some one look on it? I need that two different eyes look
> this.
>
> Regards,
>
> Leo
>
>
> # GETTEXT_CREATE_TRANSLATIONS potFile INSTALLDIR langs)
> #
> # potFile with a potfile
> #
> # INSTALLDIR where to install the translations
> # in this way ${INSTALLDIR}/${_lang} RENAME ${_potBasename}.mo)
> # if is empty install it on:
> # share/locale/${_lang}/LC_MESSAGES RENAME  ${_potBasename}.mo)
> #
> # langs a list of languages to process
> # it checks for
> # ${CMAKE_CURRENT_SOURCE_DIR}/${_potBasename}_${_lang})
> # if the file potFile_lang doesn't exist create it in
> #
>
> macro(GETTEXT_CREATE_TRANSLATIONS potFile INSTALLDIR langs)
>
>    set(_gmoFiles)
>    get_filename_component(_potBasename ${potFile} NAME_WE)
>    get_filename_component(_absPotFile ${potFile} ABSOLUTE)
>
>    foreach(_lang ${${langs}})
>       set(_absPoFile
> ${CMAKE_CURRENT_SOURCE_DIR}/${_potBasename}_${_lang}.po) set(_gmoFile
> ${CMAKE_CURRENT_BINARY_DIR}/${_potBasename}_${_lang}.gmo)
>
>       get_filename_component(_gmoBasename ${_gmoFile} NAME)
>
>       if(NOT EXISTS ${_absPoFile})
>          file(WRITE ${_absPoFile} "")
>       endif(NOT EXISTS ${_absPoFile})
>
>       add_custom_command(
>          OUTPUT  ${_potBasename}_${_lang}.gmo
>          COMMAND
> ${GETTEXT_MSGMERGE_EXECUTABLE} --quiet --update --backup=none -s
> ${_absPoFile} ${_absPotFile}
>          COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_absPoFile}
>          DEPENDS ${_absPotFile} ${_absPoFile}
>       )
>       if(INSTALLDIR)
>          install (FILES ${_gmoFile} DESTINATION ${INSTALLDIR}/${_lang}/
> RENAME ${_potBasename}.mo)
>       else(INSTALLDIR)
>          install (FILES ${_gmoFile} DESTINATION
> share/locale/${_lang}/LC_MESSAGES RENAME ${_potBasename}.mo)
>       endif(INSTALLDIR)
>
>       list (APPEND _gmoFiles ${_gmoFile})
>
>    endforeach (_lang ${${langs}})
>
>    add_custom_target( ${_potBasename}_pos DEPENDS ${_gmoFiles})
>    add_dependencies(translations  ${_gmoFile})
> endmacro(GETTEXT_CREATE_TRANSLATIONS )



-- 
--
Linux User 152692
PGP: 0xF944807E
Catalonia
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part.
URL: <http://www.cmake.org/pipermail/cmake/attachments/20080925/3c3af9ae/attachment.pgp>


More information about the CMake mailing list