QGIS/i18n/CMakeLists.txt
2024-06-21 14:02:18 +02:00

60 lines
2.5 KiB
CMake

find_package(${QT_VERSION_BASE} COMPONENTS LinguistTools REQUIRED)
set(QT_LRELEASE_EXECUTABLE ${QT_VERSION_BASE}::lrelease)
macro(ADD_TRANSLATION_FILES _sources )
foreach (_current_FILE ${ARGN})
get_filename_component(_in ${_current_FILE} ABSOLUTE)
get_filename_component(_basename ${_current_FILE} NAME_WE)
set(_out ${QGIS_OUTPUT_DIRECTORY}/i18n/${_basename}.qm)
add_custom_command(
OUTPUT ${_out}
COMMAND ${QT_LRELEASE_EXECUTABLE}
ARGS -silent ${_in} -qm ${_out}
DEPENDS ${_in}
)
set(${_sources} ${${_sources}} ${_out} )
endforeach (_current_FILE)
endmacro(ADD_TRANSLATION_FILES)
# make sure the output directory exists
file(MAKE_DIRECTORY ${QGIS_OUTPUT_DIRECTORY}/i18n)
set(TS_FILES qgis_ar.ts qgis_az.ts qgis_bg.ts qgis_bs.ts qgis_ca.ts qgis_cs.ts qgis_da.ts qgis_de.ts qgis_en_US.ts qgis_es.ts qgis_et.ts qgis_eu.ts qgis_fi.ts qgis_fr.ts qgis_gl.ts qgis_hu.ts qgis_is.ts qgis_it.ts qgis_ja.ts qgis_ko.ts qgis_lt.ts qgis_lv.ts qgis_nb.ts qgis_nl.ts qgis_pl.ts qgis_pt_BR.ts qgis_pt_PT.ts qgis_ro.ts qgis_ru.ts qgis_sc.ts qgis_sk.ts qgis_sv.ts qgis_tr.ts qgis_uk.ts qgis_vi.ts qgis_zh-Hans.ts qgis_zh-Hant.ts)
ADD_TRANSLATION_FILES (QM_FILES ${TS_FILES})
# TODO QGIS 4.0: remove configure and call directly script
configure_file(${CMAKE_SOURCE_DIR}/scripts/ts2appinfo.py.in ${CMAKE_BINARY_DIR}/ts2appinfo.py)
if (UNIX AND NOT APPLE AND PYQT_FOUND)
add_custom_command(
OUTPUT ${CMAKE_BINARY_DIR}/org.qgis.qgis.desktop ${CMAKE_BINARY_DIR}/org.qgis.qgis.appdata.xml
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
COMMAND ${Python_EXECUTABLE}
ARGS ${CMAKE_BINARY_DIR}/ts2appinfo.py "${CMAKE_BINARY_DIR}"
COMMENT "Updating appinfo files..."
DEPENDS ${QM_FILES} ${CMAKE_SOURCE_DIR}/linux/org.qgis.qgis.desktop.in ${CMAKE_SOURCE_DIR}/linux/org.qgis.qgis.appdata.xml.in
)
set(MD_FILES ${CMAKE_BINARY_DIR}/org.qgis.qgis.desktop ${CMAKE_BINARY_DIR}/org.qgis.qgis.appdata.xml)
install(FILES ${CMAKE_BINARY_DIR}/org.qgis.qgis.desktop DESTINATION share/applications)
install(FILES ${CMAKE_BINARY_DIR}/org.qgis.qgis.appdata.xml DESTINATION share/metainfo)
endif()
# creating a custom target is needed to make the files build
# "ALL" means that it will be run by default
add_custom_target (translations ALL DEPENDS ${QM_FILES} ${MD_FILES})
# first compile sources, then compile translations
if (WITH_DESKTOP)
add_dependencies (translations ${QGIS_APP_NAME})
endif()
install (FILES ${QM_FILES}
DESTINATION ${QGIS_DATA_DIR}/i18n)