pianobooster/translations/CMakeLists.txt
Martchus 54402c2483 Allow built-in translations via qtutilities
Allow bundling translations as resources by setting `BUILTIN_TRANSLATIONS`.
This is useful to create self-contained executables.

The code for this is already in qtutilities so we basically just need to
look within the resource root `:/` for translations as well and tweak the
build script a little.

With this change it is still possible to load translations separately from
the usual locations as it is only effective if `BUILTIN_TRANSLATIONS` is
set to a truthy value.
2023-06-27 19:58:10 +02:00

46 lines
1.4 KiB
CMake

set(TRANSLATIONS_FILES
pianobooster_ca.ts
pianobooster_cs.ts
pianobooster_da.ts
pianobooster_de.ts
pianobooster_es.ts
pianobooster_fr.ts
pianobooster_gl.ts
pianobooster_is.ts
pianobooster_it.ts
pianobooster_ja.ts
pianobooster_nb.ts
pianobooster_nl.ts
pianobooster_pl.ts
pianobooster_ru.ts
pianobooster_sk.ts
pianobooster_sv.ts
pianobooster_uk.ts
pianobooster_zh.ts)
if (INSTALL_ALL_LANGS)
file(GLOB TRANSLATIONS_FILES "*.ts")
endif ()
get_filename_component(full_path_blank_ts ${CMAKE_CURRENT_SOURCE_DIR}/pianobooster_blank.ts ABSOLUTE)
list(REMOVE_ITEM TRANSLATIONS_FILES ${full_path_blank_ts})
# set TS_FILES and EXTERNAL_QM_FILESj to let qtutilities handle translation processing
foreach (TS_FILE ${TRANSLATIONS_FILES})
list(APPEND TS_FILES "../translations/${TS_FILE}")
endforeach ()
set(TS_FILES "${TS_FILES}" PARENT_SCOPE)
set(EXTERNAL_QM_FILES "${CMAKE_CURRENT_BINARY_DIR}/../langs.json" PARENT_SCOPE)
# allow to built-in translations (via qtutilities); otherwise install langs.json normally
option(BUILTIN_TRANSLATIONS "enables/disables built-in translations" OFF)
if (NOT BUILTIN_TRANSLATIONS)
if ((UNIX OR MINGW) AND NOT APPLE)
install(FILES langs.json DESTINATION ${DATA_DIR}/translations)
elseif (WIN32)
install(FILES langs.json DESTINATION .)
endif ()
endif ()
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/langs.json ${CMAKE_CURRENT_BINARY_DIR}/.. COPYONLY)