67 lines
2.4 KiB
CMake
67 lines
2.4 KiB
CMake
|
# Translations.cmake, CMake macros written for Marlin, feel free to re-use them
|
||
|
|
||
|
macro(add_translations_directory NLS_PACKAGE)
|
||
|
add_custom_target (i18n ALL COMMENT “Building i18n messages.”)
|
||
|
find_program (MSGFMT_EXECUTABLE msgfmt)
|
||
|
file (GLOB PO_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.po)
|
||
|
foreach (PO_INPUT ${PO_FILES})
|
||
|
get_filename_component (PO_INPUT_BASE ${PO_INPUT} NAME_WE)
|
||
|
set (MO_OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${PO_INPUT_BASE}.mo)
|
||
|
add_custom_command (TARGET i18n COMMAND ${MSGFMT_EXECUTABLE} -o ${MO_OUTPUT} ${PO_INPUT})
|
||
|
|
||
|
install (FILES ${MO_OUTPUT} DESTINATION
|
||
|
share/locale/${PO_INPUT_BASE}/LC_MESSAGES
|
||
|
RENAME ${NLS_PACKAGE}.mo)
|
||
|
endforeach (PO_INPUT ${PO_FILES})
|
||
|
endmacro(add_translations_directory)
|
||
|
|
||
|
|
||
|
macro(add_translations_catalog NLS_PACKAGE)
|
||
|
add_custom_target (pot COMMENT “Building translation catalog.”)
|
||
|
find_program (XGETTEXT_EXECUTABLE xgettext)
|
||
|
|
||
|
set(C_SOURCE "")
|
||
|
set(VALA_SOURCE "")
|
||
|
set(GLADE_SOURCE "")
|
||
|
|
||
|
foreach(FILES_INPUT ${ARGN})
|
||
|
set(BASE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${FILES_INPUT})
|
||
|
|
||
|
file (GLOB_RECURSE SOURCE_FILES ${BASE_DIRECTORY}/*.c)
|
||
|
foreach(C_FILE ${SOURCE_FILES})
|
||
|
set(C_SOURCE ${C_SOURCE} ${C_FILE})
|
||
|
endforeach()
|
||
|
|
||
|
file (GLOB_RECURSE SOURCE_FILES ${BASE_DIRECTORY}/*.vala)
|
||
|
foreach(VALA_C_FILE ${SOURCE_FILES})
|
||
|
set(VALA_SOURCE ${VALA_SOURCE} ${VALA_C_FILE})
|
||
|
endforeach()
|
||
|
|
||
|
file (GLOB_RECURSE SOURCE_FILES ${BASE_DIRECTORY}/*.ui)
|
||
|
foreach(GLADE_C_FILE ${SOURCE_FILES})
|
||
|
set(GLADE_SOURCE ${GLADE_SOURCE} ${GLADE_C_FILE})
|
||
|
endforeach()
|
||
|
endforeach()
|
||
|
|
||
|
set(BASE_XGETTEXT_COMMAND
|
||
|
${XGETTEXT_EXECUTABLE} -d ${NLS_PACKAGE}
|
||
|
-o ${CMAKE_CURRENT_SOURCE_DIR}/${NLS_PACKAGE}.pot
|
||
|
--keyword="_" --keyword="N_" --from-code=UTF-8)
|
||
|
|
||
|
set(CONTINUE_FLAG "")
|
||
|
|
||
|
IF(NOT "${C_SOURCE}" STREQUAL "")
|
||
|
add_custom_command(TARGET pot COMMAND ${BASE_XGETTEXT_COMMAND} ${C_SOURCE})
|
||
|
set(CONTINUE_FLAG "-j")
|
||
|
ENDIF()
|
||
|
|
||
|
IF(NOT "${VALA_SOURCE}" STREQUAL "")
|
||
|
add_custom_command(TARGET pot COMMAND ${BASE_XGETTEXT_COMMAND} ${CONTINUE_FLAG} -LC\# ${VALA_SOURCE})
|
||
|
set(CONTINUE_FLAG "-j")
|
||
|
ENDIF()
|
||
|
|
||
|
IF(NOT "${GLADE_SOURCE}" STREQUAL "")
|
||
|
add_custom_command (TARGET pot COMMAND ${BASE_XGETTEXT_COMMAND} ${CONTINUE_FLAG} -LGlade ${GLADE_SOURCE})
|
||
|
ENDIF()
|
||
|
endmacro()
|