# Update translations find_program(LUPDATE_EXECUTABLE lupdate REQUIRED) if(NOT LUPDATE_EXECUTABLE) message(WARNING "The 'lupdate' program was not found. Translation update will be skipped.") return() endif() add_custom_target(update_translations ALL COMMAND ${LUPDATE_EXECUTABLE} ${CMAKE_SOURCE_DIR} -ts ${TRANSLATIONS} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMENT "Updating translation files" ) # Compile translations find_program(LRELEASE_EXECUTABLE lrelease REQUIRED) if(NOT LRELEASE_EXECUTABLE) message(WARNING "The 'lrelease' program was not found. Translation compilation will be skipped.") return() endif() foreach(TRANSLATION ${TRANSLATIONS}) get_filename_component(QM_FILE ${TRANSLATION} NAME_WE) set(QM_FILE ${CMAKE_BINARY_DIR}/translations/${QM_FILE}.qm) add_custom_command(OUTPUT ${QM_FILE} COMMAND ${LRELEASE_EXECUTABLE} ${TRANSLATION} -qm ${QM_FILE} DEPENDS ${TRANSLATION} COMMENT "Compiling ${QM_FILE}" ) list(APPEND QM_FILES ${QM_FILE}) endforeach() # Create translations target add_custom_target(translations ALL DEPENDS ${QM_FILES})