1 |
FIND_PROGRAM(XGETTEXT xgettext)
|
2 |
|
3 |
set(POTFILES
|
4 |
${PROJECT_SOURCE_DIR}/navit/main.c
|
5 |
${PROJECT_SOURCE_DIR}/navit/navigation.c
|
6 |
${PROJECT_SOURCE_DIR}/navit/navit.c
|
7 |
${PROJECT_SOURCE_DIR}/navit/popup.c
|
8 |
${PROJECT_SOURCE_DIR}/navit/country.c
|
9 |
${PROJECT_SOURCE_DIR}/navit/gui/gtk/destination.c
|
10 |
${PROJECT_SOURCE_DIR}/navit/gui/gtk/gui_gtk_action.c
|
11 |
${PROJECT_SOURCE_DIR}/navit/gui/gtk/gui_gtk_statusbar.c
|
12 |
${PROJECT_SOURCE_DIR}/navit/gui/internal/gui_internal.c
|
13 |
${PROJECT_SOURCE_DIR}/navit/osd/core/osd_core.c
|
14 |
${CMAKE_CURRENT_BINARY_DIR}/navit_shipped.c
|
15 |
)
|
16 |
if (XGETTEXT_GLADE)
|
17 |
list(APPEND POTFILES ${CMAKE_CURRENT_BINARY_DIR}/navit_shipped.glade)
|
18 |
endif()
|
19 |
|
20 |
ADD_CUSTOM_COMMAND(
|
21 |
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/navit_shipped.c
|
22 |
DEPENDS ${PROJECT_SOURCE_DIR}/navit/navit_shipped.xml
|
23 |
COMMAND ${CMAKE_COMMAND} -D SRC=${PROJECT_SOURCE_DIR}/navit/navit_shipped.xml -D DST=${CMAKE_CURRENT_BINARY_DIR}/navit_shipped.c
|
24 |
-P ${PROJECT_SOURCE_DIR}/cmake/navit_xml_parser.cmake
|
25 |
)
|
26 |
|
27 |
ADD_CUSTOM_COMMAND(
|
28 |
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/navit_shipped.glade
|
29 |
DEPENDS ${PROJECT_SOURCE_DIR}/navit/navit_shipped.xml
|
30 |
COMMAND ${CMAKE_COMMAND} -D SRC=${PROJECT_SOURCE_DIR}/navit/navit_shipped.xml -D DST=${CMAKE_CURRENT_BINARY_DIR}/navit_shipped.glade
|
31 |
-P ${PROJECT_SOURCE_DIR}/cmake/navit_xml_parser_glade.cmake
|
32 |
)
|
33 |
|
34 |
ADD_CUSTOM_COMMAND(
|
35 |
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/navit.po
|
36 |
DEPENDS ${POTFILES}
|
37 |
COMMAND ${XGETTEXT} --no-location --default-domain=navit_tmp --add-comments --keyword=_ --keyword=_n ${POTFILES}
|
38 |
COMMAND ${CMAKE_COMMAND} -DMATCHES="CHARSET" -DREPLACE="utf-8"
|
39 |
-DSRC=${CMAKE_CURRENT_BINARY_DIR}/navit_tmp.po -DDST=${CMAKE_CURRENT_BINARY_DIR}/navit.po
|
40 |
-P ${PROJECT_SOURCE_DIR}/cmake/replace.cmake
|
41 |
)
|
42 |
|
43 |
FILE(GLOB POIN_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.po.in")
|
44 |
|
45 |
string(REPLACE ".po.in" "" LANGUAGES "${POIN_FILES}")
|
46 |
|
47 |
foreach (LANG ${LANGUAGES})
|
48 |
ADD_CUSTOM_COMMAND(
|
49 |
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${LANG}.po
|
50 |
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/navit.po
|
51 |
COMMAND ${CMAKE_COMMAND} -D SRC=${CMAKE_CURRENT_SOURCE_DIR}/${LANG}.po.in -D DST=${CMAKE_CURRENT_BINARY_DIR}/${LANG}.po.tmp -DPACKAGE_STRING=${PACKAGE_STRING} -P ${PROJECT_SOURCE_DIR}/cmake/navit_po_version.cmake
|
52 |
COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --no-fuzzy-matching --verbose -o "${CMAKE_CURRENT_BINARY_DIR}/${LANG}.po" "${CMAKE_CURRENT_BINARY_DIR}/${LANG}.po.tmp" ${CMAKE_CURRENT_BINARY_DIR}/navit.po
|
53 |
COMMAND ${CMAKE_COMMAND} -E remove "${CMAKE_CURRENT_BINARY_DIR}/${LANG}.po.tmp"
|
54 |
)
|
55 |
endforeach(LANG ${LANGUAGES})
|
56 |
|
57 |
foreach (LANG ${LANGUAGES})
|
58 |
ADD_CUSTOM_COMMAND(
|
59 |
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${LANG}.mo
|
60 |
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${LANG}.po
|
61 |
COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} --check --verbose --statistics --output-file="${CMAKE_CURRENT_BINARY_DIR}/${LANG}.mo" "${CMAKE_CURRENT_BINARY_DIR}/${LANG}.po"
|
62 |
COMMAND ${CMAKE_COMMAND} -E make_directory "${PROJECT_BINARY_DIR}/locale/${LANG}/LC_MESSAGES"
|
63 |
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_BINARY_DIR}/${LANG}.mo" "${PROJECT_BINARY_DIR}/locale/${LANG}/LC_MESSAGES/navit.mo"
|
64 |
)
|
65 |
SET(MOFILES ${CMAKE_CURRENT_BINARY_DIR}/${LANG}.mo ${MOFILES})
|
66 |
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${LANG}.mo DESTINATION ${LOCALE_DIR}/${LANG}/LC_MESSAGES RENAME navit.mo)
|
67 |
endforeach(LANG ${LANGUAGES})
|
68 |
|
69 |
add_custom_target(locales ALL DEPENDS ${MOFILES})
|