summaryrefslogtreecommitdiff
path: root/gui/CMakeLists.txt
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2025-05-26 14:14:52 +0200
committerFelix Morgner <felix.morgner@gmail.com>2025-05-26 14:14:52 +0200
commit62f67faaed7577e5bfab2148ffcdda529dfe19a6 (patch)
tree832d7325b6f07ed6a106ebf4b098ca9b2ae896c4 /gui/CMakeLists.txt
parentbaafbc5d7716683e74dc3ecb5298b0322e9eca85 (diff)
downloadturns-62f67faaed7577e5bfab2148ffcdda529dfe19a6.tar.xz
turns-62f67faaed7577e5bfab2148ffcdda529dfe19a6.zip
gui: generate locales
Diffstat (limited to 'gui/CMakeLists.txt')
-rw-r--r--gui/CMakeLists.txt50
1 files changed, 39 insertions, 11 deletions
diff --git a/gui/CMakeLists.txt b/gui/CMakeLists.txt
index 5222efa..d9d3410 100644
--- a/gui/CMakeLists.txt
+++ b/gui/CMakeLists.txt
@@ -1,9 +1,15 @@
# SPDX-FileCopyrightText: 2025 Felix Morgner <felix.morgner@gmail.com>
# SPDX-License-Identifier: LGPL-2.1-only
+find_package("Gettext" REQUIRED)
+
# Resources
-add_library("resources" STATIC)
+file(GLOB UI_SOURCES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/ui" CONFIGURE_DEPENDS "ui/*.ui")
+file(GLOB STYLE_SOURCES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/ui" CONFIGURE_DEPENDS "ui/*.css")
+file(GLOB LANGUAGES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/lang" CONFIGURE_DEPENDS "lang/*.po")
+
+add_library("resources" OBJECT)
target_link_libraries("resources" PUBLIC
"PkgConfig::glib"
@@ -13,15 +19,8 @@ glib_add_resources("resources"
NAME "ui"
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/ui"
PREFIX "/ch/arknet/Turns"
- XML_FILES
- "participant_editor.ui"
- "participant_row.ui"
- "preferences.ui"
- "tracker.ui"
- "turn_order_view.ui"
- CSS_FILES
- "style.css"
- "style-dark.css"
+ XML_FILES ${UI_SOURCES}
+ CSS_FILES ${STYLE_SOURCES}
)
glib_add_resources("resources"
@@ -31,8 +30,36 @@ glib_add_resources("resources"
"metainfo.xml"
)
+list(TRANSFORM LANGUAGES REPLACE "\.po" "")
+
+foreach(LANGUAGE IN LISTS LANGUAGES)
+ set(OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/locale/${LANGUAGE}/LC_MESSAGES")
+ set(OUTPUT_FILE "${OUTPUT_DIRECTORY}/turns.mo")
+
+ add_custom_command(OUTPUT "${OUTPUT_FILE}"
+ COMMAND "${CMAKE_COMMAND}"
+ "-E"
+ "make_directory"
+ "${OUTPUT_DIRECTORY}"
+ COMMAND "${GETTEXT_MSGFMT_EXECUTABLE}"
+ "-D"
+ "${CMAKE_CURRENT_SOURCE_DIR}/lang"
+ "-o"
+ "${OUTPUT_FILE}"
+ "${LANGUAGE}.po"
+ COMMENT "Generating translations for ${LANGUAGE}"
+ DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/lang/${LANGUAGE}.po"
+ )
+
+ target_sources("resources" PRIVATE "${OUTPUT_FILE}")
+endforeach()
+
+install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/locale"
+ DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}"
+)
+
target_compile_definitions("resources" PUBLIC
- "LOCALEDIR=\"$<IF:$<BOOL:${TURNS_USE_INSTALLED_TRANSLATIONS}>,${CMAKE_INSTALL_FULL_LOCALEDIR},${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>>\""
+ "LOCALEDIR=\"$<IF:$<BOOL:${TURNS_USE_INSTALLED_TRANSLATIONS}>,${CMAKE_INSTALL_FULL_LOCALEDIR},${CMAKE_CURRENT_BINARY_DIR}/locale>\""
)
# Application
@@ -81,6 +108,7 @@ install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/ch.arknet.Turns.metainfo.xml"
DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/metainfo"
)
+
install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/ch.arknet.Turns.xml"
DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/mime/packages"