Files
qt5-legatus-legacy/translations/CMakeLists.txt
2026-08-13 18:33:10 +02:00

110 lines
3.8 KiB
CMake
Executable File

#
# Erzeugung / Update der ts & qm-Dateien
#
# $Id$
# $HeadURL$
# $Author$
#
SET(_pri_dir "${CMAKE_BINARY_DIR}/translations/")
IF(BUILD_TS_FILES)
GET_PROPERTY(_targets GLOBAL PROPERTY NGL_TS_TARGETS)
# MESSAGE(STATUS "translation targets: ${_targets}")
# make sure to not have old .pri files ...
FILE(GLOB _pri_files_to_remove LIST_DIRECTORIES false "${_pri_dir}*.pri")
IF (_pri_files_to_remove)
FILE(REMOVE ${_pri_files_to_remove})
ENDIF()
FOREACH(_target ${_targets})
GET_TARGET_PROPERTY(_no_translation ${_target} NO_TRANSLATION)
IF(_no_translation)
CONTINUE()
ENDIF()
GET_TARGET_PROPERTY(_src_dir ${_target} SOURCE_DIR)
GET_TARGET_PROPERTY(_bin_dir ${_target} BINARY_DIR)
# build up sources
GET_TARGET_PROPERTY(_all_sources ${_target} SOURCES)
SET(_ts_sources "")
FOREACH(_source ${_all_sources})
GET_FILENAME_COMPONENT(_ext ${_source} EXT)
IF(_ext STREQUAL ".cpp" OR
_ext STREQUAL ".hpp" OR
_ext STREQUAL ".c" OR
_ext STREQUAL ".h" OR
_ext STREQUAL ".ui")
GET_FILENAME_COMPONENT(_name ${_source} NAME_WE)
IF(NOT _name MATCHES "^moc_.*$" AND
NOT _name MATCHES "^ui_.*h$")
IF(IS_ABSOLUTE ${_source})
LIST(APPEND _ts_sources ${_source})
ELSE()
GET_FILENAME_COMPONENT(_abs_FILE ${_src_dir}/${_source} ABSOLUTE)
IF(EXISTS ${_abs_FILE})
LIST(APPEND _ts_sources ${_abs_FILE})
ELSE()
GET_FILENAME_COMPONENT(_abs_FILE ${_bin_dir}/${_source} ABSOLUTE)
IF(EXISTS ${_abs_FILE})
LIST(APPEND _ts_sources ${_abs_FILE})
ELSE()
MESSAGE(STATUS "Can not find absolute location of source file '${_source}")
ENDIF()
ENDIF()
ENDIF()
ENDIF()
ENDIF()
ENDFOREACH()
LIST(LENGTH _ts_sources _len)
IF(${_len} GREATER 0)
SET(_ts_pri ${_pri_dir}${_target}_lupdate.pri)
STRING(REPLACE ";" " " _pro_srcs "${_ts_sources}")
FILE(WRITE "${_ts_pri}" "SOURCES += ${_pro_srcs}")
ENDIF()
ENDFOREACH()
MACRO(TDS_GENERATE_TS_FILES _language)
FIND_PACKAGE(PythonInterp 2.7 REQUIRED)
SET(_pro_file ${CMAKE_CURRENT_BINARY_DIR}/tds_${_language}.pro)
SET(_ts_file ${CMAKE_CURRENT_SOURCE_DIR}/tds_${_language}.ts)
FILE(GLOB _pri_files ${CMAKE_CURRENT_BINARY_DIR} "*.pri")
ADD_CUSTOM_COMMAND(OUTPUT ${_pro_file}
COMMAND ${PYTHON_EXECUTABLE}
ARGS ${CMAKE_CURRENT_SOURCE_DIR}/create_ts_pro.py ${CMAKE_CURRENT_BINARY_DIR} ${_pro_file} ${_targets_to_ignore}
DEPENDS ${_pri_files} create_ts_pro.py
)
#SET(_lupdate_options -target-language ${_language} -locations absolute -tr-function-alias QT_TRANSLATE_NOOP+=tr_lts -no-obsolete)
SET(_lupdate_options -target-language ${_language} -locations absolute -tr-function-alias QT_TRANSLATE_NOOP+=tr_lts)
ADD_CUSTOM_TARGET(update_ts_${_language}
COMMAND Qt5::lupdate ${_lupdate_options} ${_pro_file} -ts ${_ts_file}
DEPENDS ${_pro_file}
)
ENDMACRO(TDS_GENERATE_TS_FILES)
TDS_GENERATE_TS_FILES(en_US)
TDS_GENERATE_TS_FILES(en_GB)
TDS_GENERATE_TS_FILES(de_DE)
ENDIF()
MACRO(TDS_INSTALL_TRANSLATION _language _project)
SET(_ts_file ${CMAKE_CURRENT_SOURCE_DIR}/${_project}_${_language}.ts)
SET(_qm_files)
NGL_ADD_TRANSLATION(${_pri_dir}${_language} ${_project} ${_ts_file} _qm_files)
NGL_INSTALL(ALL FILES ${_qm_files} DESTINATION translations/${_language})
ADD_CUSTOM_TARGET(${_project}-translation-${_language} ALL DEPENDS ${_qm_files})
ENDMACRO()
TDS_INSTALL_TRANSLATION(en_US tds)
TDS_INSTALL_TRANSLATION(en_GB tds)
TDS_INSTALL_TRANSLATION(de_DE tds)
TDS_INSTALL_TRANSLATION(en_US kdreports)
TDS_INSTALL_TRANSLATION(en_GB kdreports)
TDS_INSTALL_TRANSLATION(de_DE kdreports)