From 4be202e6b5e57e185f2622cdab4e7bd13720167f Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Wed, 22 Feb 2017 08:29:03 +0100 Subject: cmake/i18n: express file dependencies correctly Otherwise parallel make was doing lupdate -> lrelease out of order, leading to badness. Also build failing unless all .ts files existed. We need a way to bootstrap .ts files obviously. --- cmake/opentrack-boilerplate.cmake | 9 ++++----- cmake/opentrack-install.cmake | 16 +++++++++++----- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/cmake/opentrack-boilerplate.cmake b/cmake/opentrack-boilerplate.cmake index d9b3b64d..c1d3f4f7 100644 --- a/cmake/opentrack-boilerplate.cmake +++ b/cmake/opentrack-boilerplate.cmake @@ -221,9 +221,6 @@ function(opentrack_boilerplate n) set(langs "") foreach(i ${opentrack-all-translations}) set(t "${CMAKE_CURRENT_SOURCE_DIR}/lang/${i}.ts") - if (NOT EXISTS "${t}") - set_property(GLOBAL PROPERTY opentrack-force-i18n-regen TRUE) - endif() list(APPEND langs "${t}") get_property(tt GLOBAL PROPERTY "opentrack-ts-${i}") list(APPEND tt "${t}") @@ -235,10 +232,12 @@ function(opentrack_boilerplate n) set_property(GLOBAL PROPERTY opentrack-all-modules "${modules}") if(NOT langs STREQUAL "") - add_custom_target(i18n-module-${n} + add_custom_command(OUTPUT ${langs} COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_SOURCE_DIR}/lang" COMMAND "${Qt5_DIR}/../../../bin/lupdate" -silent -recursive -no-obsolete -locations relative . -ts ${langs} - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}") + 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() diff --git a/cmake/opentrack-install.cmake b/cmake/opentrack-install.cmake index 844e77f5..66c0edee 100644 --- a/cmake/opentrack-install.cmake +++ b/cmake/opentrack-install.cmake @@ -57,8 +57,18 @@ function(merge_translations) 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}") + get_property(ts_ GLOBAL PROPERTY "opentrack-ts-${i}") + set(ts "") + foreach(i ${ts_}) + list(APPEND ts "${i}") + endforeach() set(qm-output "${CMAKE_BINARY_DIR}/${i}.qm") @@ -79,10 +89,6 @@ function(merge_translations) endif() endforeach() set(maybe-all "") - get_property(maybe-force-i18n GLOBAL PROPERTY opentrack-force-i18n-regen) - if(SDK_REGEN_TRANSLATIONS OR maybe-force-i18n) - set(maybe-all ALL) - endif() add_custom_target(i18n ${maybe-all} DEPENDS ${all-deps} ${deps}) endfunction() -- cgit v1.2.3