repos
/
qt.examples
/ annotate_shade
summary
|
shortlog
|
log
|
tree
|
commit
|
commitdiff
|
headdiff
|
annotate
|
headblob
|
headfilediff
|
filehistory
normal
|
plain
|
shade
|
zebra
initial import
Annotate for file src/UseClQti18n.cmake
2009-04-05 tobias
1
# - Extract qt:tr strings from lisp source files and generate the Qt message files.
15:36:46 '
2
#
'
3
# macro CL_GENERATE_QT_CATALOG(CATALOG_NAME LISP_SOURCE_FILES)
'
4
# Generates ${CATALOG_NAME}.pot, updates the ${CATALOG_NAME}_LANGS.po files and
'
5
# makes the ${CATALOG_NAME}_LANGS.qm files when the global target is build.
'
6
#
'
7
'
8
find_package(Gettext)
'
9
find_program(XGETTEXT_EXECUTABLE xgettext)
'
10
'
11
macro(CL_GENERATE_QT_CATALOG CATALOG_NAME LISP_SOURCE_FILES)
'
12
## Run xgettext
'
13
##
'
14
## TODO: set charset
'
15
if(XGETTEXT_EXECUTABLE)
'
16
add_custom_command(OUTPUT ${CATALOG_NAME}.pot
'
17
COMMAND ${XGETTEXT_EXECUTABLE} -L lisp
'
18
-kqt:tr:1,2c
'
19
-kqt:tr:1
'
20
${LISP_SOURCE_FILES} -o ${CATALOG_NAME}.pot
'
21
DEPENDS ${LISP_SOURCE_FILES})
'
22
add_custom_target(messages ALL DEPENDS ${CATALOG_NAME}.pot)
'
23
endif(XGETTEXT_EXECUTABLE)
'
24
'
25
## Generate Qt .qm files from the .po files.
'
26
##
'
27
## based on:
'
28
## http://techbase.kde.org/Development/Tutorials/Localization/i18n_Build_Systems#Extracting_and_merging_messages
'
29
if(GETTEXT_MSGFMT_EXECUTABLE AND GETTEXT_MSGMERGE_EXECUTABLE)
'
30
file(GLOB PO_FILES ${CATALOG_NAME}*.po)
'
31
message ("PO ${PO_FILES}")
'
32
'
33
set(QM_FILES "")
'
34
'
35
foreach(_poFile ${PO_FILES})
'
36
get_filename_component(_poFileName ${_poFile} NAME)
'
37
string(REGEX REPLACE "^${CATALOG_NAME}_?" "" _langCode ${_poFileName} )
'
38
string(REGEX REPLACE "\\.po$" "" _langCode ${_langCode} )
'
39
'
40
if( _langCode )
'
41
get_filename_component(_lang ${_poFile} NAME_WE)
'
42
set(_qmFile ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.qm)
'
43
add_custom_command(OUTPUT ${_qmFile}
'
44
COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE}
'
45
--quiet --update --backup=none
'
46
${_poFileName}
'
47
${CATALOG_NAME}.pot
'
48
'
49
COMMAND ${GETTEXT_MSGFMT_EXECUTABLE}
'
50
--check --use-fuzzy --qt -o ${_qmFile} ${_poFile}
'
51
'
52
DEPENDS ${_poFile} ${CATALOG_NAME}.pot)
'
53
list(APPEND QM_FILES ${_qmFile})
'
54
endif( _langCode )
'
55
'
56
endforeach(_poFile ${PO_FILES})
'
57
'
58
add_custom_target(translations ALL
'
59
DEPENDS ${QM_FILES})
'
60
'
61
endif(GETTEXT_MSGFMT_EXECUTABLE AND GETTEXT_MSGMERGE_EXECUTABLE)
'
62
'
63
endmacro(CL_GENERATE_QT_CATALOG)
'
64
'
65
'
66