110 lines
3.8 KiB
CMake
Executable File
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)
|