~xapantu/audience/pantheon-submarine

« back to all changes in this revision

Viewing changes to cmake/Translations.cmake

  • Committer: John Guerreiro
  • Date: 2015-08-04 15:53:13 UTC
  • Revision ID: johngr@tuta.io-20150804155313-bq782ibg4gh65z14
Added Base Files

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# Translations.cmake, CMake macros written for Marlin, feel free to re-use them
 
2
 
 
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})
 
11
 
 
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)
 
17
 
 
18
 
 
19
macro(add_translations_catalog NLS_PACKAGE)
 
20
    add_custom_target (pot COMMENT “Building translation catalog.”)
 
21
    find_program (XGETTEXT_EXECUTABLE xgettext)
 
22
 
 
23
    set(C_SOURCE "")
 
24
    set(VALA_SOURCE "")
 
25
    set(GLADE_SOURCE "")
 
26
 
 
27
    foreach(FILES_INPUT ${ARGN})
 
28
        set(BASE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${FILES_INPUT})
 
29
 
 
30
        file (GLOB_RECURSE SOURCE_FILES ${BASE_DIRECTORY}/*.c)
 
31
        foreach(C_FILE ${SOURCE_FILES})
 
32
            set(C_SOURCE ${C_SOURCE} ${C_FILE})
 
33
        endforeach()
 
34
 
 
35
        file (GLOB_RECURSE SOURCE_FILES ${BASE_DIRECTORY}/*.vala)
 
36
        foreach(VALA_C_FILE ${SOURCE_FILES})
 
37
            set(VALA_SOURCE ${VALA_SOURCE} ${VALA_C_FILE})
 
38
        endforeach()
 
39
 
 
40
        file (GLOB_RECURSE SOURCE_FILES ${BASE_DIRECTORY}/*.ui)
 
41
        foreach(GLADE_C_FILE ${SOURCE_FILES})
 
42
            set(GLADE_SOURCE ${GLADE_SOURCE} ${GLADE_C_FILE})
 
43
        endforeach()
 
44
    endforeach()
 
45
 
 
46
    set(BASE_XGETTEXT_COMMAND
 
47
        ${XGETTEXT_EXECUTABLE} -d ${NLS_PACKAGE}
 
48
        -o ${CMAKE_CURRENT_SOURCE_DIR}/${NLS_PACKAGE}.pot
 
49
        --keyword="_" --keyword="N_" --from-code=UTF-8)
 
50
 
 
51
   set(CONTINUE_FLAG "")
 
52
 
 
53
    IF(NOT "${C_SOURCE}" STREQUAL "")
 
54
        add_custom_command(TARGET pot COMMAND ${BASE_XGETTEXT_COMMAND} ${C_SOURCE})
 
55
        set(CONTINUE_FLAG "-j")
 
56
    ENDIF()
 
57
 
 
58
    IF(NOT "${VALA_SOURCE}" STREQUAL "")
 
59
        add_custom_command(TARGET pot COMMAND ${BASE_XGETTEXT_COMMAND} ${CONTINUE_FLAG} -LC\# ${VALA_SOURCE})
 
60
        set(CONTINUE_FLAG "-j")
 
61
    ENDIF()
 
62
 
 
63
    IF(NOT "${GLADE_SOURCE}" STREQUAL "")
 
64
        add_custom_command (TARGET pot COMMAND ${BASE_XGETTEXT_COMMAND} ${CONTINUE_FLAG} -LGlade ${GLADE_SOURCE})
 
65
    ENDIF()  
 
66
endmacro()