Mercurial > molko
annotate cmake/MolkoBuildTranslations.cmake @ 245:97f55f6b9593
doc: add CMake macros documentation
author | David Demelier <markand@malikania.fr> |
---|---|
date | Mon, 30 Nov 2020 10:54:59 +0100 |
parents | 498da86d1cd7 |
children |
rev | line source |
---|---|
241
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 # |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 # MolkoBuildTranslations.cmake -- CMake build system for molko |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 # |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
4 # Copyright (c) 2020 David Demelier <markand@malikania.fr> |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 # |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 # Permission to use, copy, modify, and/or distribute this software for any |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 # purpose with or without fee is hereby granted, provided that the above |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 # copyright notice and this permission notice appear in all copies. |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 # |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 # |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 |
243
71b3b7036de7
misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents:
242
diff
changeset
|
19 # |
245
97f55f6b9593
doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents:
244
diff
changeset
|
20 # # molko_build_translations |
97f55f6b9593
doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents:
244
diff
changeset
|
21 # |
97f55f6b9593
doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents:
244
diff
changeset
|
22 # Build translations and update them. |
243
71b3b7036de7
misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents:
242
diff
changeset
|
23 # |
245
97f55f6b9593
doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents:
244
diff
changeset
|
24 # ## Synopsis |
243
71b3b7036de7
misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents:
242
diff
changeset
|
25 # |
245
97f55f6b9593
doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents:
244
diff
changeset
|
26 # ```cmake |
243
71b3b7036de7
misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents:
242
diff
changeset
|
27 # molko_build_translations( |
71b3b7036de7
misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents:
242
diff
changeset
|
28 # TARGET target name |
71b3b7036de7
misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents:
242
diff
changeset
|
29 # SOURCES target sources |
71b3b7036de7
misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents:
242
diff
changeset
|
30 # OUTPUTS output variable |
71b3b7036de7
misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents:
242
diff
changeset
|
31 # TRANSLATIONS list of localizations |
71b3b7036de7
misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents:
242
diff
changeset
|
32 # ) |
245
97f55f6b9593
doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents:
244
diff
changeset
|
33 # ``` |
243
71b3b7036de7
misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents:
242
diff
changeset
|
34 # |
244
498da86d1cd7
cmake: create a unique TARGET-po target to update translations
David Demelier <markand@malikania.fr>
parents:
243
diff
changeset
|
35 # Generate target and output commands for NLS (via GNU gettext) support for the |
245
97f55f6b9593
doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents:
244
diff
changeset
|
36 # given *TARGET* name. |
243
71b3b7036de7
misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents:
242
diff
changeset
|
37 # |
245
97f55f6b9593
doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents:
244
diff
changeset
|
38 # The argument *SOURCES* must contain sources to extract gettext keywords, it |
97f55f6b9593
doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents:
244
diff
changeset
|
39 # will search for _, N_. The list of *SOURCES* can contain any files, only .c |
97f55f6b9593
doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents:
244
diff
changeset
|
40 # and .h will be filtered. |
243
71b3b7036de7
misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents:
242
diff
changeset
|
41 # |
245
97f55f6b9593
doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents:
244
diff
changeset
|
42 # The argument *OUTPUTS* will be set with the generated .mo files in the binary |
97f55f6b9593
doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents:
244
diff
changeset
|
43 # directory and installed to *CMAKE_INSTALL_LOCALEDIR*. |
243
71b3b7036de7
misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents:
242
diff
changeset
|
44 # |
245
97f55f6b9593
doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents:
244
diff
changeset
|
45 # The argument *TRANSLATIONS* should contain a list of languages supported in the |
243
71b3b7036de7
misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents:
242
diff
changeset
|
46 # gettext form (ll_LL@variant, see ISO 639 and ISO 3166 for more details). |
71b3b7036de7
misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents:
242
diff
changeset
|
47 # |
245
97f55f6b9593
doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents:
244
diff
changeset
|
48 # This macro create a `<TARGET>-po` target that will recreate the .pot file and |
244
498da86d1cd7
cmake: create a unique TARGET-po target to update translations
David Demelier <markand@malikania.fr>
parents:
243
diff
changeset
|
49 # every .po files in the nls/ directory for each language specified in |
245
97f55f6b9593
doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents:
244
diff
changeset
|
50 # *TRANSLATIONS*. Note, if you add a new language into translations but do not |
97f55f6b9593
doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents:
244
diff
changeset
|
51 # copy the .pot file, a warning will be issued and you should copy the .pot |
97f55f6b9593
doc: add CMake macros documentation
David Demelier <markand@malikania.fr>
parents:
244
diff
changeset
|
52 # file as the new .po language file. |
243
71b3b7036de7
misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents:
242
diff
changeset
|
53 # |
244
498da86d1cd7
cmake: create a unique TARGET-po target to update translations
David Demelier <markand@malikania.fr>
parents:
243
diff
changeset
|
54 # Since the target is modifying files directly in the source tree they are not |
498da86d1cd7
cmake: create a unique TARGET-po target to update translations
David Demelier <markand@malikania.fr>
parents:
243
diff
changeset
|
55 # included in any build process and must be invoked manually. |
243
71b3b7036de7
misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents:
242
diff
changeset
|
56 # |
71b3b7036de7
misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents:
242
diff
changeset
|
57 |
241
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
58 if (MOLKO_WITH_NLS) |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
59 find_program(XGETTEXT_EXE xgettext) |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
60 find_program(MSGMERGE_EXE msgmerge) |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
61 find_program(MSGFMT_EXE msgfmt) |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
62 endif () |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
63 |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
64 if (MOLKO_WITH_NLS AND XGETTEXT_EXE AND MSGMERGE_EXE) |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
65 macro(molko_build_translations) |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
66 set(options) |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
67 set(oneValueArgs TARGET OUTPUTS) |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
68 set(multiValueArgs SOURCES TRANSLATIONS) |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
69 |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
70 cmake_parse_arguments(NLS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
71 |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
72 if (NOT NLS_OUTPUTS) |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
73 message(FATAL_ERROR "Missing OUTPUTS argument") |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
74 endif () |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
75 if (NOT NLS_TARGET) |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
76 message(FATAL_ERROR "Missing TARGET argument") |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
77 endif () |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
78 if (NOT NLS_SOURCES) |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
79 message(FATAL_ERROR "Missing SOURCES argument") |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
80 endif () |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
81 |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
82 # Remove non C files. |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
83 list(FILTER NLS_SOURCES INCLUDE REGEX "\\.[ch$]") |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
84 set(pot ${CMAKE_CURRENT_SOURCE_DIR}/nls/${NLS_TARGET}.pot) |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
85 |
244
498da86d1cd7
cmake: create a unique TARGET-po target to update translations
David Demelier <markand@malikania.fr>
parents:
243
diff
changeset
|
86 # First command to generate the .pot. |
498da86d1cd7
cmake: create a unique TARGET-po target to update translations
David Demelier <markand@malikania.fr>
parents:
243
diff
changeset
|
87 list( |
498da86d1cd7
cmake: create a unique TARGET-po target to update translations
David Demelier <markand@malikania.fr>
parents:
243
diff
changeset
|
88 APPEND |
498da86d1cd7
cmake: create a unique TARGET-po target to update translations
David Demelier <markand@malikania.fr>
parents:
243
diff
changeset
|
89 commands |
498da86d1cd7
cmake: create a unique TARGET-po target to update translations
David Demelier <markand@malikania.fr>
parents:
243
diff
changeset
|
90 COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_SOURCE_DIR}/nls |
498da86d1cd7
cmake: create a unique TARGET-po target to update translations
David Demelier <markand@malikania.fr>
parents:
243
diff
changeset
|
91 COMMAND ${XGETTEXT_EXE} -cj -k_ -kN_ -LC -s -o ${pot} ${NLS_SOURCES} |
241
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
92 ) |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
93 |
244
498da86d1cd7
cmake: create a unique TARGET-po target to update translations
David Demelier <markand@malikania.fr>
parents:
243
diff
changeset
|
94 # |
498da86d1cd7
cmake: create a unique TARGET-po target to update translations
David Demelier <markand@malikania.fr>
parents:
243
diff
changeset
|
95 # For every translation create a msgmerge command and output |
498da86d1cd7
cmake: create a unique TARGET-po target to update translations
David Demelier <markand@malikania.fr>
parents:
243
diff
changeset
|
96 # file. |
498da86d1cd7
cmake: create a unique TARGET-po target to update translations
David Demelier <markand@malikania.fr>
parents:
243
diff
changeset
|
97 # |
241
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
98 set(outputs) |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
99 |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
100 foreach (t ${NLS_TRANSLATIONS}) |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
101 set(po ${CMAKE_CURRENT_SOURCE_DIR}/nls/${t}.po) |
242
4c24604efcab
cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
241
diff
changeset
|
102 |
244
498da86d1cd7
cmake: create a unique TARGET-po target to update translations
David Demelier <markand@malikania.fr>
parents:
243
diff
changeset
|
103 # |
498da86d1cd7
cmake: create a unique TARGET-po target to update translations
David Demelier <markand@malikania.fr>
parents:
243
diff
changeset
|
104 # If library dir isn't absolute, install them in the |
498da86d1cd7
cmake: create a unique TARGET-po target to update translations
David Demelier <markand@malikania.fr>
parents:
243
diff
changeset
|
105 # build directory so we can use translations during |
498da86d1cd7
cmake: create a unique TARGET-po target to update translations
David Demelier <markand@malikania.fr>
parents:
243
diff
changeset
|
106 # development. |
498da86d1cd7
cmake: create a unique TARGET-po target to update translations
David Demelier <markand@malikania.fr>
parents:
243
diff
changeset
|
107 # |
242
4c24604efcab
cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
241
diff
changeset
|
108 if (NOT IS_ABSOLUTE ${CMAKE_INSTALL_LIBDIR}) |
4c24604efcab
cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
241
diff
changeset
|
109 set(modir ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${CMAKE_INSTALL_LOCALEDIR}/${t}/LC_MESSAGES) |
4c24604efcab
cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
241
diff
changeset
|
110 set(mo ${modir}/${NLS_TARGET}.mo) |
4c24604efcab
cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
241
diff
changeset
|
111 else () |
4c24604efcab
cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
241
diff
changeset
|
112 set(modir ${CMAKE_CURRENT_BINARY_DIR}/${t}) |
4c24604efcab
cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
241
diff
changeset
|
113 set(mo ${CMAKE_CURRENT_BINARY_DIR}/${NLS_TARGET}.mo) |
4c24604efcab
cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
241
diff
changeset
|
114 endif () |
241
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
115 |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
116 if (NOT EXISTS ${po}) |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
117 message(WARNING "Missing translation ${po}") |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
118 endif () |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
119 |
244
498da86d1cd7
cmake: create a unique TARGET-po target to update translations
David Demelier <markand@malikania.fr>
parents:
243
diff
changeset
|
120 # Commands to generate .po files from the .pot. |
498da86d1cd7
cmake: create a unique TARGET-po target to update translations
David Demelier <markand@malikania.fr>
parents:
243
diff
changeset
|
121 list(APPEND commands COMMAND ${MSGMERGE_EXE} --backup=off -q -U ${po} ${pot}) |
241
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
122 |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
123 # Finally generate a .mo output from po file. |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
124 add_custom_command( |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
125 OUTPUT ${mo} |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
126 VERBATIM |
242
4c24604efcab
cmake: create build hierarchy similar to install, closes #2518 @1h
David Demelier <markand@malikania.fr>
parents:
241
diff
changeset
|
127 COMMAND ${CMAKE_COMMAND} -E make_directory ${modir} |
241
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
128 COMMAND ${MSGFMT_EXE} -o ${mo} ${po} |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
129 DEPENDS ${po} |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
130 COMMENT "Generating translation binary ${mo}" |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
131 ) |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
132 |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
133 list(APPEND outputs ${mo}) |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
134 |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
135 install( |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
136 FILES ${mo} |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
137 DESTINATION ${CMAKE_INSTALL_LOCALEDIR}/${t}/LC_MESSAGES |
244
498da86d1cd7
cmake: create a unique TARGET-po target to update translations
David Demelier <markand@malikania.fr>
parents:
243
diff
changeset
|
138 RENAME ${NLS_TARGET}.mo |
241
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
139 ) |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
140 endforeach () |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
141 |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
142 set(${NLS_OUTPUTS} ${outputs}) |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
143 source_group("mo" FILES ${outputs}) |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
144 |
244
498da86d1cd7
cmake: create a unique TARGET-po target to update translations
David Demelier <markand@malikania.fr>
parents:
243
diff
changeset
|
145 # User target to update .pot and .po files. |
241
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
146 add_custom_target( |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
147 ${NLS_TARGET}-po |
244
498da86d1cd7
cmake: create a unique TARGET-po target to update translations
David Demelier <markand@malikania.fr>
parents:
243
diff
changeset
|
148 VERBATIM |
498da86d1cd7
cmake: create a unique TARGET-po target to update translations
David Demelier <markand@malikania.fr>
parents:
243
diff
changeset
|
149 COMMENT "Generating translations for ${NLS_TARGET}" |
498da86d1cd7
cmake: create a unique TARGET-po target to update translations
David Demelier <markand@malikania.fr>
parents:
243
diff
changeset
|
150 ${commands} |
241
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
151 ) |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
152 |
244
498da86d1cd7
cmake: create a unique TARGET-po target to update translations
David Demelier <markand@malikania.fr>
parents:
243
diff
changeset
|
153 set_target_properties(${NLS_TARGET}-po PROPERTIES FOLDER nls) |
241
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
154 endmacro() |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
155 else () |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
156 function(molko_build_translations) |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
157 endfunction() |
76afe639fd72
misc: add support for NLS, closes #22510 @4h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
158 endif () |