CMakeLists.txt

changeset 31
ab17a56a47dd
parent 30
0fec6a1abd13
child 48
ddd1171ecda5
--- 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 =====
+
+

mercurial