eaa2ed5cbb
Translations are build into the executable at compile time, providing FGData is available during the build.
43 lines
No EOL
1.6 KiB
CMake
43 lines
No EOL
1.6 KiB
CMake
|
|
GET_FILENAME_COMPONENT(SRC_PARENT_DIR ${PROJECT_SOURCE_DIR} PATH)
|
|
SET(FGDATA_SRC_DIR "${SRC_PARENT_DIR}/fgdata")
|
|
|
|
if(EXISTS ${TRANSLATIONS_SRC_DIR})
|
|
message(STATUS "Using explicitly defined translations from: ${TRANSLATIONS_SRC_DIR}")
|
|
set(do_translate TRUE)
|
|
elseif(EXISTS ${FGDATA_SRC_DIR})
|
|
SET(TRANSLATIONS_SRC_DIR "${FGDATA_SRC_DIR}/Translations")
|
|
message(STATUS "Found translations dir implicitly: ${TRANSLATIONS_SRC_DIR}")
|
|
set(do_translate TRUE)
|
|
else()
|
|
message(STATUS "Couldn't find translations data, will not include translated string in the executable")
|
|
endif()
|
|
|
|
if (${do_translate})
|
|
# FIXME - determine this based on subdirs of TRANSLATIONS_SRC_DIR
|
|
set(LANGUAGES en_US de es nl fr it pl pt zh_CN)
|
|
set(translation_res "${PROJECT_BINARY_DIR}/translations.qrc")
|
|
|
|
add_custom_target(fgfs_qm_files ALL)
|
|
|
|
file(WRITE ${translation_res} "<RCC>\n<qresource prefix=\"/\">")
|
|
|
|
# qm generation and installation
|
|
foreach(LANG ${LANGUAGES})
|
|
set(out_file "${PROJECT_BINARY_DIR}/FlightGear_${LANG}.qm")
|
|
add_custom_command(
|
|
OUTPUT ${out_file}
|
|
COMMAND Qt5::lrelease ${TRANSLATIONS_SRC_DIR}/${LANG}/FlightGear-Qt.xlf
|
|
-qm ${out_file}
|
|
DEPENDS ${TRANSLATIONS_SRC_DIR}/${LANG}/FlightGear-Qt.xlf
|
|
)
|
|
add_custom_target(fgfs_${LANG}_qm ALL DEPENDS ${out_file})
|
|
|
|
add_dependencies(fgfs_qm_files fgfs_${LANG}_qm)
|
|
|
|
# local path needed here, not absolute
|
|
file(APPEND ${translation_res} "<file>FlightGear_${LANG}.qm</file>\n")
|
|
endforeach()
|
|
|
|
file(APPEND ${translation_res} "</qresource>\n</RCC>")
|
|
endif() # of do translate |