Fix:build:Remove unnecessary output during build; add comment.
[profile/ivi/navit.git] / navit / po / CMakeLists.txt
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/start_real.c
10       ${PROJECT_SOURCE_DIR}/navit/route.c
11       ${PROJECT_SOURCE_DIR}/navit/bookmarks.c
12       ${PROJECT_SOURCE_DIR}/navit/gui/gtk/destination.c
13       ${PROJECT_SOURCE_DIR}/navit/gui/gtk/gui_gtk_action.c
14       ${PROJECT_SOURCE_DIR}/navit/gui/gtk/gui_gtk_statusbar.c
15       ${PROJECT_SOURCE_DIR}/navit/gui/internal/gui_internal.c
16       ${PROJECT_SOURCE_DIR}/navit/osd/core/osd_core.c
17       ${CMAKE_CURRENT_BINARY_DIR}/navit_shipped.c
18 )
19 if (XGETTEXT_GLADE)
20       list(APPEND POTFILES ${CMAKE_CURRENT_BINARY_DIR}/navit_shipped.glade)
21 endif()
22
23 # Trick gettext to get translateable strings out of navit_shipped.xml
24
25 ADD_CUSTOM_COMMAND(
26    OUTPUT  ${CMAKE_CURRENT_BINARY_DIR}/navit_shipped.c
27    DEPENDS ${PROJECT_SOURCE_DIR}/navit/navit_shipped.xml
28    COMMAND ${CMAKE_COMMAND} -D SRC=${PROJECT_SOURCE_DIR}/navit/navit_shipped.xml -D DST=${CMAKE_CURRENT_BINARY_DIR}/navit_shipped.c
29                      -P ${PROJECT_SOURCE_DIR}/cmake/navit_xml_parser.cmake
30 )
31
32 ADD_CUSTOM_COMMAND(
33    OUTPUT  ${CMAKE_CURRENT_BINARY_DIR}/navit_shipped.glade
34    DEPENDS ${PROJECT_SOURCE_DIR}/navit/navit_shipped.xml
35    COMMAND ${CMAKE_COMMAND} -D SRC=${PROJECT_SOURCE_DIR}/navit/navit_shipped.xml -D DST=${CMAKE_CURRENT_BINARY_DIR}/navit_shipped.glade
36                      -P ${PROJECT_SOURCE_DIR}/cmake/navit_xml_parser_glade.cmake
37 )
38
39 ADD_CUSTOM_COMMAND(
40    OUTPUT  ${CMAKE_CURRENT_BINARY_DIR}/navit.pot
41    DEPENDS ${POTFILES}
42    COMMAND ${XGETTEXT} --no-location --default-domain=navit_tmp --add-comments --keyword=_ --keyword=_n ${POTFILES}
43    COMMAND ${CMAKE_COMMAND} -DMATCHES="CHARSET" -DREPLACE="utf-8"
44                             -DSRC=${CMAKE_CURRENT_BINARY_DIR}/navit_tmp.po -DDST=${CMAKE_CURRENT_BINARY_DIR}/navit.pot
45                             -P ${PROJECT_SOURCE_DIR}/cmake/replace.cmake 
46 )
47
48 FILE(GLOB POIN_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.po.in")
49
50 string(REPLACE ".po.in" "" LANGUAGES "${POIN_FILES}")
51
52 foreach (LANG ${LANGUAGES})
53    ADD_CUSTOM_COMMAND(
54       OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${LANG}.po
55       DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/navit.pot ${CMAKE_CURRENT_SOURCE_DIR}/${LANG}.po.in
56       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
57       COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --no-fuzzy-matching --verbose --quiet -o "${CMAKE_CURRENT_BINARY_DIR}/${LANG}.po" "${CMAKE_CURRENT_BINARY_DIR}/${LANG}.po.tmp" ${CMAKE_CURRENT_BINARY_DIR}/navit.pot
58       COMMAND ${CMAKE_COMMAND} -E remove "${CMAKE_CURRENT_BINARY_DIR}/${LANG}.po.tmp"
59    )
60 endforeach(LANG ${LANGUAGES})
61
62 foreach (LANG ${LANGUAGES})
63    ADD_CUSTOM_COMMAND(
64       OUTPUT  ${CMAKE_CURRENT_BINARY_DIR}/${LANG}.mo
65       DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${LANG}.po
66       COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} --check --verbose --statistics --output-file="${CMAKE_CURRENT_BINARY_DIR}/${LANG}.mo" "${CMAKE_CURRENT_BINARY_DIR}/${LANG}.po" 
67       COMMAND ${CMAKE_COMMAND} -E make_directory "${PROJECT_BINARY_DIR}/locale/${LANG}/LC_MESSAGES" 
68       COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_BINARY_DIR}/${LANG}.mo" "${PROJECT_BINARY_DIR}/locale/${LANG}/LC_MESSAGES/navit.mo"
69    )
70    SET(MOFILES ${CMAKE_CURRENT_BINARY_DIR}/${LANG}.mo ${MOFILES})
71    INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${LANG}.mo DESTINATION ${LOCALE_DIR}/${LANG}/LC_MESSAGES RENAME navit.mo)
72 endforeach(LANG ${LANGUAGES})
73
74 add_custom_target(locales ALL DEPENDS  ${MOFILES})