diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2017-02-22 09:07:20 +0100 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2017-02-22 09:07:20 +0100 |
commit | 9339632c619b689451d5f962c9a9b29b9ebd0c93 (patch) | |
tree | af0e7f8eb1999ccf75350e16626ea951e524e7b4 | |
parent | 497980e40ca695f2cf2db0161aac5b88f5d6688e (diff) |
cmake: change translation regen logic
- lupdate runs after every source code change for that module
- lrelease depends on .ts files created by lupdate
- SDK_REGEN_TRANSLATIONS got removed
- file dependencies are expressed right, so parallel build works
-rwxr-xr-x | CMakeLists.txt | 1 | ||||
-rw-r--r-- | cmake/opentrack-boilerplate.cmake | 21 | ||||
-rw-r--r-- | cmake/opentrack-install.cmake | 41 |
3 files changed, 24 insertions, 39 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 1eee42a6..e3d12828 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,7 +30,6 @@ cmake_minimum_required(VERSION 2.8.11) set_property(GLOBAL PROPERTY opentrack-all-modules "") set_property(GLOBAL PROPERTY opentrack-all-source-dirs "") -set_property(GLOBAL PROPERTY opentrack-force-i18n-regen FALSE) set(opentrack-all-translations nl_NL ru_RU stub) include(opentrack-policy) diff --git a/cmake/opentrack-boilerplate.cmake b/cmake/opentrack-boilerplate.cmake index c1d3f4f7..1bd79a97 100644 --- a/cmake/opentrack-boilerplate.cmake +++ b/cmake/opentrack-boilerplate.cmake @@ -216,30 +216,29 @@ function(opentrack_boilerplate n) endif() endif() - set(SDK_REGEN_TRANSLATIONS FALSE CACHE BOOL "Regenerate translation files on build") - set(langs "") foreach(i ${opentrack-all-translations}) set(t "${CMAKE_CURRENT_SOURCE_DIR}/lang/${i}.ts") + list(APPEND langs "${t}") + get_property(tt GLOBAL PROPERTY "opentrack-ts-${i}") list(APPEND tt "${t}") set_property(GLOBAL PROPERTY "opentrack-ts-${i}" "${tt}") endforeach() - get_property(modules GLOBAL PROPERTY opentrack-all-modules) list(APPEND modules "${n}") set_property(GLOBAL PROPERTY opentrack-all-modules "${modules}") - if(NOT langs STREQUAL "") - add_custom_command(OUTPUT ${langs} + foreach(i ${langs}) + add_custom_command(OUTPUT ${i} COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_SOURCE_DIR}/lang" - COMMAND "${Qt5_DIR}/../../../bin/lupdate" -silent -recursive -no-obsolete -locations relative . -ts ${langs} + COMMAND "${Qt5_DIR}/../../../bin/lupdate" -silent -recursive -no-obsolete -locations relative . -ts "${i}" WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - COMMENT "Running lupdate for ${n}") - add_custom_target(i18n-module-${n} DEPENDS ${langs}) - else() - add_custom_target(i18n-module-${n}) - endif() + DEPENDS ${${n}-all} + COMMENT "Running lupdate for ${i}") + endforeach() + + add_custom_target(i18n-module-${n} DEPENDS ${langs}) endfunction() diff --git a/cmake/opentrack-install.cmake b/cmake/opentrack-install.cmake index 66c0edee..28f13a51 100644 --- a/cmake/opentrack-install.cmake +++ b/cmake/opentrack-install.cmake @@ -55,40 +55,27 @@ function(merge_translations) get_property(modules GLOBAL PROPERTY opentrack-all-modules) - set(deps "") - - get_property(maybe-force-i18n GLOBAL PROPERTY opentrack-force-i18n-regen) - - if(SDK_REGEN_TRANSLATIONS OR maybe-force-i18n) - set(maybe-all ALL) - endif() - foreach(i ${opentrack-all-translations}) - get_property(ts_ GLOBAL PROPERTY "opentrack-ts-${i}") - set(ts "") - foreach(i ${ts_}) - list(APPEND ts "${i}") - endforeach() + get_property(ts GLOBAL PROPERTY "opentrack-ts-${i}") - set(qm-output "${CMAKE_BINARY_DIR}/${i}.qm") + set(deps "") foreach(k ${modules}) list(APPEND deps "i18n-module-${k}") endforeach() - if(NOT ts STREQUAL "") - add_custom_command(OUTPUT "${qm-output}" - COMMAND "${Qt5_DIR}/../../../bin/lrelease" -nounfinished -silent ${ts} -qm "${qm-output}" - DEPENDS ${ts} - COMMENT "Running lrelease for ${i}") - add_custom_target(i18n-lang-${i} ALL DEPENDS "${qm-output}") - list(APPEND all-deps "i18n-lang-${i}") - install(FILES "${qm-output}" DESTINATION "${opentrack-i18n-pfx}" RENAME "${i}.qm" ${opentrack-perms}) - else() - message(FATAL_ERROR "build logic error: no translations for language ${i}") - endif() + set(qm-output "${CMAKE_BINARY_DIR}/${i}.qm") + + add_custom_command(OUTPUT "${qm-output}" + COMMAND "${Qt5_DIR}/../../../bin/lrelease" -nounfinished -silent ${ts} -qm "${qm-output}" + DEPENDS ${ts} ${deps} + COMMENT "Running lrelease for ${i}") + + add_custom_target(i18n-lang-${i} ALL DEPENDS "${qm-output}") + + list(APPEND all-deps "i18n-lang-${i}") + install(FILES "${qm-output}" DESTINATION "${opentrack-i18n-pfx}" RENAME "${i}.qm" ${opentrack-perms}) endforeach() - set(maybe-all "") - add_custom_target(i18n ${maybe-all} DEPENDS ${all-deps} ${deps}) + add_custom_target(i18n DEPENDS ${all-deps} ${deps}) endfunction() |