summaryrefslogtreecommitdiff
path: root/lang/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'lang/CMakeLists.txt')
-rw-r--r--lang/CMakeLists.txt38
1 files changed, 38 insertions, 0 deletions
diff --git a/lang/CMakeLists.txt b/lang/CMakeLists.txt
new file mode 100644
index 0000000..4bc985c
--- /dev/null
+++ b/lang/CMakeLists.txt
@@ -0,0 +1,38 @@
+set(TRANSLATIONS
+ "de"
+ "en_US"
+)
+
+foreach(LANG IN LISTS TRANSLATIONS)
+ set(SOURCE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/po/${LANG}.po")
+ set(BINARY_FILE "${CMAKE_CURRENT_BINARY_DIR}/${LANG}/LC_MESSAGES/turns.mo")
+
+ list(APPEND TRANSLATION_BINARIES "${BINARY_FILE}")
+
+ add_custom_command(OUTPUT "${BINARY_FILE}"
+ COMMAND "${GETTEXT_MSGFMT_EXECUTABLE}"
+ ARGS
+ "-o"
+ "${BINARY_FILE}"
+ "${SOURCE_FILE}"
+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+ DEPENDS "${SOURCE_FILE}"
+ COMMENT "Processing translation ${LANG}"
+ )
+
+ install(FILES "${BINARY_FILE}"
+ DESTINATION "${CMAKE_INSTALL_FULL_LOCALEDIR}/${LANG}/LC_MESSAGES"
+ )
+endforeach()
+
+add_custom_target("mofiles" DEPENDS ${TRANSLATION_BINARIES})
+
+add_library("lang" INTERFACE)
+
+add_library("turns::lang" ALIAS "lang")
+
+target_compile_definitions("lang" INTERFACE
+ "LOCALEDIR=\"${CMAKE_INSTALL_FULL_LOCALEDIR}\""
+)
+
+add_dependencies("lang" "mofiles") \ No newline at end of file