File: CMakeLists.txt

package info (click to toggle)
evolution-data-server 3.56.2-8
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 47,108 kB
  • sloc: ansic: 365,415; xml: 578; cpp: 482; perl: 297; sh: 62; makefile: 60; python: 35; javascript: 29
file content (78 lines) | stat: -rw-r--r-- 2,900 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
find_program(GETTEXT_XGETTEXT_EXECUTABLE xgettext)

set(DOMAIN ${FULL_PROJECT_NAME})
set(POT_FILE ${GETTEXT_PACKAGE}.pot)

file(STRINGS ${CMAKE_CURRENT_SOURCE_DIR}/POTFILES.in TRANSLATED_FILES_IN ENCODING UTF-8 REGEX "^[^#].*")
set(TRANSLATED_FILES)
foreach(TRANSLATED_FILE ${TRANSLATED_FILES_IN})
    list(APPEND TRANSLATED_FILES "../${TRANSLATED_FILE}")
endforeach(TRANSLATED_FILE)

# Creates the .pot file containing the translations template
add_custom_command(
    COMMENT "Generating translation template"
    COMMAND ${GETTEXT_XGETTEXT_EXECUTABLE} -o ${POT_FILE}
        --directory=${CMAKE_SOURCE_DIR}
        --package-name=${GETTEXT_PACKAGE}
        --files-from=${CMAKE_CURRENT_SOURCE_DIR}/POTFILES.in
        --from-code=UTF-8
        --add-comments
        --keyword=_
        --keyword=N_
        --keyword=C_:1c,2
        --keyword=NC_:1c,2
        --keyword=g_dcgettext:2
        --keyword=g_dngettext:2,3
        --keyword=g_dpgettext2:2c,3
        --keyword=DisplayName
        --flag=N_:1:pass-c-format
        --flag=C_:2:pass-c-format
        --flag=NC_:2:pass-c-format
        --flag=g_dngettext:2:pass-c-format
        --flag=g_strdup_printf:1:c-format
        --flag=g_string_printf:2:c-format
        --flag=g_string_append_printf:2:c-format
        --flag=g_error_new:3:c-format
        --flag=g_set_error:4:c-format
        --flag=g_markup_printf_escaped:1:c-format
        --flag=g_log:3:c-format
        --flag=g_print:1:c-format
        --flag=g_printerr:1:c-format
        --flag=g_printf:1:c-format
        --flag=g_fprintf:2:c-format
        --flag=g_sprintf:2:c-format
        --flag=g_snprintf:3:c-format
    OUTPUT ${POT_FILE}
    DEPENDS ${TRANSLATED_FILES}
)

file(GLOB po_files ${CMAKE_CURRENT_SOURCE_DIR}/*.po)
set(LINGUAS)
foreach(file IN LISTS po_files)
    get_filename_component(lang ${file} NAME_WE)
    list(APPEND LINGUAS ${lang})
    configure_file("${lang}.po" "${lang}.po" COPYONLY)
endforeach(file)

string (REPLACE ";" "\n" LINGUAS_CONTENT "${LINGUAS}")
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/LINGUAS" ${LINGUAS_CONTENT})
add_custom_target(linguas)
add_custom_command(TARGET linguas
    POST_BUILD
    COMMENT "Updating LINGUAS"
    COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/LINGUAS ${CMAKE_CURRENT_SOURCE_DIR}/LINGUAS
)

add_custom_target(${GETTEXT_PACKAGE}-pot DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${POT_FILE})

add_custom_target(${GETTEXT_PACKAGE}-update-po DEPENDS ${GETTEXT_PACKAGE}-pot)
foreach(LANG ${LINGUAS})
    add_custom_command(TARGET ${GETTEXT_PACKAGE}-update-po
        POST_BUILD
        COMMENT "Update ${LANG}.po"
        COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} -q --update ${CMAKE_CURRENT_SOURCE_DIR}/${LANG}.po ${CMAKE_CURRENT_BINARY_DIR}/${POT_FILE}
    )
endforeach(LANG)

gettext_process_pot_file(${CMAKE_CURRENT_BINARY_DIR}/${POT_FILE} ALL INSTALL_DESTINATION "${LOCALE_INSTALL_DIR}" LANGUAGES ${LINGUAS})