[CMake] QT4_CREATE_TRANSLATION delete source ts files during clean

Anatoly Shirokov shirokov_a at mail.ru
Thu Feb 27 01:16:17 EST 2014


Dear Jean-Christophe Fillion-Robin!

Thank you very much for your attention. But I do not have a problem with 
CREATE. I have problem with UPDATE, actually with 
QTx_CREATE_TRANSLATION. QTx_CREATE_TRANSLATION uses add_custom_command 
which forces to delete the original updated SOURCE ts file during clean:

- get sources
- change sources
- build (build calls lupdate to update ts files)
- add translation to existing ts files
- "make clean" deletes all ts files with your translations

Have you understood the core of problem?

Here https://bugreports.qt-project.org/browse/QTBUG-31860 and here 
http://cmake.3232098.n2.nabble.com/How-to-not-delete-generated-files-on-make-clean-td4425991.html 
you can find details.

Thank you for your time!

BR,
Anatoly Shirokov.

27.02.2014 9:01, Jean-Christophe Fillion-Robin пишет:
> Hi Anatoly,
>
> Within Slicer [1], we addressed the creation / updates of the 
> translation files by introducing a variable named 
> Slicer_UPDATE_TRANSLATION  [2]
>
> Then, within a macro named 'SlicerMacroTranslation.cmake' [3], 
> depending on the value of Slicer_UPDATE_TRANSLATION, we either call
>
>    (1) QT4_CREATE_TRANSLATION
>
>    or (2) QT4_ADD_TRANSLATION
>
> The convenience macro is then called for each executables and 
> libraries we want to translate. See [4] and [5]
>
> These pointers should help you moving forward.
>
> The documentation of the Qt macros is available here [6]
>
> Note also that the translations file are created/updated within the 
> source tree. That way, it is easy to commit them.
>
> Hth
> Jc
>
> [1] http://wiki.slicer.org/slicerWiki/index.php/Documentation/Labs/I18N
>
> [2] 
> https://github.com/Slicer/Slicer/blob/0dc6eab31c69f859db46a57d3c12ef6a2119f188/CMakeLists.txt#L247
>
> [3] 
> https://github.com/Slicer/Slicer/blob/0dc6eab31c69f859db46a57d3c12ef6a2119f188/CMake/SlicerMacroTranslation.cmake#L21-38
>
> [4] 
> https://github.com/Slicer/Slicer/blob/0dc6eab31c69f859db46a57d3c12ef6a2119f188/Applications/SlicerApp/CMakeLists.txt#L77-98
>
> [5] 
> https://github.com/Slicer/Slicer/blob/0dc6eab31c69f859db46a57d3c12ef6a2119f188/CMake/SlicerMacroBuildBaseQtLibrary.cmake#L175-193
>
> [6] http://www.cmake.org/cmake/help/v2.8.12/cmake.html#module:FindQt4
>
>
> On Wed, Feb 26, 2014 at 11:24 PM, Anatoly Shirokov <shirokov_a at mail.ru 
> <mailto:shirokov_a at mail.ru>> wrote:
>
>     Please see my comments below
>
>     27.02.2014 1:08, Stephen Kelly пишет:
>>     Anatoly Shirokov wrote:
>>
>>>     The translation file is usual source file, it is not binary
>>>     artifact.
>>     I didn't say it was a binary artifact. It's a buildsystem
>>     artifact created
>>     by your buildsystem.
>     This is source which can be updated by build system. But initially
>     this is source file was made by myself for each supported
>     languages and put it to repository.
>>>     The only difference is that I have to support them in up to date
>>>     state
>>>     with the lupdate utility.
>>     Yes.
>>
>>>     I want to invoke lupdate automatically during
>>>     build and after that commit updated translation files to use
>>>     them by
>>>     translator group.
>>     That seems fine.
>>
>>>     What's wrong with such approach?
>>     Maybe the details of your approach are too simple. If you commit the
>>     translation files resulting from your build to your repo, then
>>     how did you
>>     lose work?
>     1. get sources
>     2. update sources
>     3. build to update translation files
>     4. translate new items extracted during the last build (we can
>     translate to several languages ourself)
>     5. make clean to build whole system (and I lose all translated items)
>     6. commit
>     ...
>     N. get sources
>     N+1. ops, where are my translated items?
>
>     Actually it was several times.
>
>     BR,
>     Anatoly Shirokov
>
>
>     --
>
>     Powered by www.kitware.com <http://www.kitware.com>
>
>     Please keep messages on-topic and check the CMake FAQ at:
>     http://www.cmake.org/Wiki/CMake_FAQ
>
>     Kitware offers various services to support the CMake community.
>     For more information on each offering, please visit:
>
>     CMake Support: http://cmake.org/cmake/help/support.html
>     CMake Consulting: http://cmake.org/cmake/help/consulting.html
>     CMake Training Courses: http://cmake.org/cmake/help/training.html
>
>     Visit other Kitware open-source projects at
>     http://www.kitware.com/opensource/opensource.html
>
>     Follow this link to subscribe/unsubscribe:
>     http://www.cmake.org/mailman/listinfo/cmake
>
>
>
>
> -- 
> +1 919 869 8849

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20140227/83432b93/attachment.html>


More information about the CMake mailing list