Files
cinema-ticket-management-sy…/cmake/setup/Translations.cmake
T
2026-07-12 14:34:52 +04:00

34 lines
1.1 KiB
CMake

# 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})