--- a/CMakeLists.txt Sun Feb 27 20:45:41 2022 +0100 +++ b/CMakeLists.txt Mon Feb 28 21:21:33 2022 +0100 @@ -14,6 +14,9 @@ # Compile flags +OPTION(DO_RELEASE_BUILD "If on, will do a release build. Otherwise, debug build." OFF) +option(UPDATE_TRANSLATIONS "Enable rescanning sources to update .ts files" OFF) + # Automatically run moc on source files when necessary set(CMAKE_AUTOMOC ON) set(CMAKE_AUTOUIC ON) @@ -60,7 +63,7 @@ SET(SRCDIR "${ROOTDIR}/src") SET(UIDIR "${ROOTDIR}/ui") SET(DATADIR "${ROOTDIR}/data") -#SET(TRANSLATIONSDIR "${ROOTDIR}/translations") +SET(TRANSLATIONSDIR "${ROOTDIR}/translations") INCLUDE_DIRECTORIES(${SRCDIR}) INCLUDE_DIRECTORIES("${CMAKE_BINARY_DIR}/src") # In case of out-of-source build. @@ -68,7 +71,7 @@ # ===== Find Qt5 ===== # Minimum versio 5.13 for debug messages. -find_package(Qt5 5.13 REQUIRED COMPONENTS Core Widgets Network Sql) +find_package(Qt5 5.13 REQUIRED COMPONENTS Core Widgets Network Sql LinguistTools) # PrintSupport Xml LinguistTools @@ -163,6 +166,12 @@ ${UIDIR}/MainWindow.ui ) + +set( TS_FILES + ${TRANSLATIONSDIR}/bmsapp_en.ts # English + ${TRANSLATIONSDIR}/bmsapp_nl.ts # Dutch +) + set( SOURCE_FILES ${SRCS} ${HDRS} @@ -173,6 +182,24 @@ # ===== Build the application ===== -add_executable(${bmsapp_EXECUTABLE} ${SOURCE_FILES}) +# Run with cmake -DUPDATE_TRANSLATIONS=ON .. +# or cmake -DUPDATE_TRANSLATIONS=OFF .. + +if(UPDATE_TRANSLATIONS) + message("** parse sources for new translations") + qt5_create_translation(QM_FILES ${SOURCE_FILES} ${TS_FILES}) +else() + message("** update qm files") + qt5_add_translation(QM_FILES ${TS_FILES}) +endif() + +add_executable(${bmsapp_EXECUTABLE} ${SOURCE_FILES} ${QM_FILES}) target_link_libraries(${bmsapp_EXECUTABLE} Qt5::Core Qt5::Widgets Qt5::Network Qt5::Sql) +# `make translations' +add_custom_target(translations DEPENDS ${QM_FILES}) + + +# ===== Install the application ===== + +