1
# Translations.cmake, CMake macros written for Marlin, feel free to re-use them
3
macro(add_translations_directory NLS_PACKAGE)
4
add_custom_target (i18n ALL COMMENT “Building i18n messages.”)
5
find_program (MSGFMT_EXECUTABLE msgfmt)
6
file (GLOB PO_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.po)
7
foreach (PO_INPUT ${PO_FILES})
8
get_filename_component (PO_INPUT_BASE ${PO_INPUT} NAME_WE)
9
set (MO_OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${PO_INPUT_BASE}.mo)
10
add_custom_command (TARGET i18n COMMAND ${MSGFMT_EXECUTABLE} -o ${MO_OUTPUT} ${PO_INPUT})
12
install (FILES ${MO_OUTPUT} DESTINATION
13
share/locale/${PO_INPUT_BASE}/LC_MESSAGES
14
RENAME ${NLS_PACKAGE}.mo)
15
endforeach (PO_INPUT ${PO_FILES})
16
endmacro(add_translations_directory)
19
macro(add_translations_catalog NLS_PACKAGE)
20
add_custom_target (pot COMMENT “Building translation catalog.”)
21
find_program (XGETTEXT_EXECUTABLE xgettext)
26
foreach(FILES_INPUT ${ARGN})
27
file (GLOB_RECURSE SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/${FILES_INPUT}/*.c)
28
foreach(C_FILE ${SOURCE_FILES})
29
set(C_SOURCE ${C_SOURCE} ${C_FILE})
31
file (GLOB_RECURSE SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/${FILES_INPUT}/*.vala)
32
foreach(C_FILE ${SOURCE_FILES})
33
set(C_SOURCE ${C_SOURCE} ${C_FILE})
37
add_custom_command (TARGET pot COMMAND
38
${XGETTEXT_EXECUTABLE} -d ${NLS_PACKAGE} -o ${CMAKE_CURRENT_SOURCE_DIR}/${NLS_PACKAGE}.pot
39
${VALA_SOURCE} ${C_SOURCE} --keyword="_" --keyword="N_" --from-code=UTF-8