C
Qt Quick Ultralite translation Example
cmake_minimum_required (VERSION 3.21.1)
project(translation VERSION 0.0.1 LANGUAGES C CXX ASM)
if (NOT TARGET Qul::Core)
find_package(Qul)
endif()
#
# Setup qml modules.
#
qul_add_qml_module(translation_fontconfig_static
URI fontconfiguration
OUTPUT_DIRECTORY
${CMAKE_CURRENT_BINARY_DIR}/translation_fontconfig_static
QML_FILES
"imports/fontconfigs/static/FontConfiguration.qml"
)
if(TARGET Qul::MonotypeSpark)
qul_add_qml_module(translation_fontconfig_spark
URI fontconfiguration
OUTPUT_DIRECTORY
${CMAKE_CURRENT_BINARY_DIR}/translation_fontconfig_spark
QML_FILES
"imports/fontconfigs/spark/FontConfiguration.qml"
)
endif()
# Set up a target that includes all bundled languages
qul_add_target(translation_all)
qul_add_resource(translation_all
FILES
japan-flag-small.png
saudi-arabia-flag-small.png
thai-flag-small.png
latvia-flag-small.png
usa-flag-small.png
norway-flag-small.png
)
qul_target_qml_sources(translation_all translation.qml)
target_link_libraries(translation_all PRIVATE Qul::Controls translation_fontconfig_static)
app_target_setup_os(translation_all)
app_target_default_entrypoint(translation_all translation)
qul_target_embed_translations(translation_all translation.nb_NO.ts translation.lv_LV.ts translation.ja_JP.ts translation.ar_SA.ts translation.th_TH.ts)
# Set up a lv_LV-only target
qul_add_target(translation_lv)
qul_add_resource(translation_lv
FILES
japan-flag-small.png
saudi-arabia-flag-small.png
thai-flag-small.png
latvia-flag-small.png
usa-flag-small.png
norway-flag-small.png
)
qul_target_qml_sources(translation_lv translation.qml)
target_link_libraries(translation_lv PRIVATE Qul::Controls translation_fontconfig_static)
app_target_setup_os(translation_lv)
app_target_default_entrypoint(translation_lv translation)
target_compile_definitions(translation_lv PRIVATE APP_DEFAULT_UILANGUAGE="lv_LV")
qul_target_embed_translations(translation_lv translation.lv_LV.ts OMIT_SOURCE_LANGUAGE)
# Qul ships some default fonts. Since they don't contain glyphs for
# all the characters that are needed for this application, set the
# QUL_FONT_FILES target property to add some fonts.
set(FONT_FILES
"${CMAKE_CURRENT_SOURCE_DIR}/fonts/kosugi/Kosugi-Regular.ttf"
"${CMAKE_CURRENT_SOURCE_DIR}/fonts/sarabun/Sarabun-Regular.ttf"
)
set_property(TARGET translation_all translation_lv APPEND PROPERTY QUL_FONT_FILES "${FONT_FILES}")
if(TARGET Qul::MonotypeSpark)
# Set up Spark target
qul_add_target(translation_spark)
qul_add_resource(translation_spark
FILES
japan-flag-small.png
saudi-arabia-flag-small.png
thai-flag-small.png
latvia-flag-small.png
usa-flag-small.png
norway-flag-small.png
)
set_target_properties(translation_spark
PROPERTIES
QUL_FONT_ENGINE "Spark"
QUL_DEFAULT_FONT_FAMILY "arabic-style-font"
QUL_FONT_CACHE_SIZE 1 # Disable the cache
QUL_FONT_FILES "${CMAKE_CURRENT_SOURCE_DIR}/fonts/monotype/TranslationsSampleFontmap.fmp")
qul_target_qml_sources(translation_spark translation.qml)
target_link_libraries(translation_spark PRIVATE Qul::Controls translation_fontconfig_spark)
app_target_setup_os(translation_spark)
app_target_default_entrypoint(translation_spark translation)
qul_target_embed_translations(translation_spark translation.nb_NO.ts translation.lv_LV.ts translation.ja_JP.ts translation.ar_SA.ts translation.th_TH.ts)
endif()
if (QUL_BUILD_QMLPROJECT_EXAMPLES)
# Set up a target that includes all bundled languages
qul_add_target(translation_all_qmlproject QML_PROJECT translation_all.qmlproject)
app_target_setup_os(translation_all_qmlproject)
app_target_default_entrypoint(translation_all_qmlproject translation)
# Set up a lv_LV-only target
qul_add_target(translation_lv_qmlproject QML_PROJECT translation_lv.qmlproject)
app_target_setup_os(translation_lv_qmlproject)
app_target_default_entrypoint(translation_lv_qmlproject translation)
target_compile_definitions(translation_lv_qmlproject PRIVATE APP_DEFAULT_UILANGUAGE="lv_LV")
if(TARGET Qul::MonotypeSpark)
# Set up Spark target
qul_add_target(translation_spark_qmlproject QML_PROJECT translation_spark.qmlproject)
app_target_setup_os(translation_spark_qmlproject)
app_target_default_entrypoint(translation_spark_qmlproject translation)
endif()
endif()