aboutsummaryrefslogtreecommitdiff
path: root/translations
diff options
context:
space:
mode:
authorxiphon <xiphon@protonmail.com>2020-07-09 15:13:21 +0000
committerxiphon <xiphon@protonmail.com>2020-07-09 16:42:32 +0000
commitc9d36b1302dc5caf2d1db03e8fb284cbb2255ace (patch)
treefbf4e31e577648d55524556b21bdb3ad4e0c9359 /translations
parentd93102296349f46b81c159b9f2ebe9ec75f50cb8 (diff)
downloadmonzero-gui-c9d36b1302dc5caf2d1db03e8fb284cbb2255ace.tar.gz
monzero-gui-c9d36b1302dc5caf2d1db03e8fb284cbb2255ace.tar.xz
monzero-gui-c9d36b1302dc5caf2d1db03e8fb284cbb2255ace.zip
cmake: translations deps handling, build translations as a library
Diffstat (limited to 'translations')
-rw-r--r--translations/CMakeLists.txt47
1 files changed, 36 insertions, 11 deletions
diff --git a/translations/CMakeLists.txt b/translations/CMakeLists.txt
index 8f1c0bc6..ab10fa4a 100644
--- a/translations/CMakeLists.txt
+++ b/translations/CMakeLists.txt
@@ -1,23 +1,48 @@
+find_package(Qt5Core REQUIRED)
+
+find_package(Qt5LinguistTools QUIET)
+if(NOT Qt5_LRELEASE_EXECUTABLE)
+ find_program(Qt5_LRELEASE_EXECUTABLE lrelease REQUIRED)
+endif()
+
file(GLOB TS_FILES *.ts)
-set(QRC "<RCC><qresource prefix=\"/\">")
+set(QM_FILES)
+set(QRC_CONTENTS "<RCC><qresource prefix=\"/\">")
foreach(TS_FILE ${TS_FILES})
get_filename_component(QM_FILE ${TS_FILE} NAME_WE)
set(QM_FILE ${CMAKE_CURRENT_BINARY_DIR}/${QM_FILE}.qm)
+ list(APPEND QM_FILES ${QM_FILE})
- execute_process(COMMAND lrelease -compress -nounfinished -removeidentical ${TS_FILE} -qm ${QM_FILE}
- RESULT_VARIABLE RET
- OUTPUT_VARIABLE OUT
- ERROR_VARIABLE ERR
+ add_custom_command(
+ OUTPUT ${QM_FILE}
+ COMMAND ${Qt5_LRELEASE_EXECUTABLE} -compress -nounfinished -removeidentical ${TS_FILE} -qm ${QM_FILE}
+ DEPENDS ${TS_FILE}
)
- if(RET)
- message(FATAL_ERROR "${TS_FILE}: lrelease returned non-zero exit code: ${RET} ${OUT} ${ERR}")
- endif()
get_filename_component(QM_FILE_NAME ${QM_FILE} NAME)
- string(APPEND QRC "<file>${QM_FILE_NAME}</file>")
+ string(APPEND QRC_CONTENTS "<file>${QM_FILE_NAME}</file>")
endforeach()
-string(APPEND QRC "</qresource></RCC>")
+string(APPEND QRC_CONTENTS "</qresource></RCC>")
set(TRANSLATIONS_QRC ${CMAKE_CURRENT_BINARY_DIR}/translations.qrc)
-file(WRITE ${TRANSLATIONS_QRC} ${QRC})
+add_custom_command(
+ OUTPUT ${TRANSLATIONS_QRC}
+ COMMAND echo ${QRC_CONTENTS} > ${TRANSLATIONS_QRC}
+ VERBATIM
+)
+set_source_files_properties(${TRANSLATIONS_QRC} PROPERTIES SKIP_AUTORCC ON)
+
+set(TRANSLATIONS_CPP ${CMAKE_CURRENT_BINARY_DIR}/qrc_translations.cpp)
+add_custom_command(
+ OUTPUT ${TRANSLATIONS_CPP}
+ COMMAND ${Qt5Core_RCC_EXECUTABLE}
+ ARGS --name translations --output ${TRANSLATIONS_CPP} ${TRANSLATIONS_QRC}
+ MAIN_DEPENDENCY ${TRANSLATIONS_QRC}
+ DEPENDS ${QM_FILES}
+ VERBATIM
+)
+set_source_files_properties(${TRANSLATIONS_CPP} PROPERTIES SKIP_AUTOMOC ON)
+set_source_files_properties(${TRANSLATIONS_CPP} PROPERTIES SKIP_AUTOUIC ON)
+
+add_library(translations ${TRANSLATIONS_CPP})