~widelands-dev/widelands/trunk

« back to all changes in this revision

Viewing changes to po/CMakeLists.txt

  • Committer: The Widelands Bunnybot
  • Date: 2024-05-17 10:04:30 UTC
  • Revision ID: bunnybot@widelands.org-20240517100430-kttzovssmqti5fzx
Replace gettext with tinygettext (CB #4772 / GH #6411)
Co-authored-by: Benedikt Straub <nordfriese@noreply.codeberg.org>
Co-committed-by: Benedikt Straub <nordfriese@noreply.codeberg.org>

(by bunnybot)
524a53c0704b48c694771ce567d42ffd9a8dbbc1

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
add_custom_target (
2
 
    lang ALL
3
 
)
4
 
 
5
 
macro(CreateLocale locale_name)
6
 
  set (commands "")
7
 
  file (GLOB_RECURSE pofiles *.po)
8
 
  foreach (pofile ${pofiles})
9
 
    get_filename_component(pofile_name ${pofile} NAME_WE)
10
 
    string(REPLACE "${CMAKE_CURRENT_SOURCE_DIR}/" "" pofile_subpath ${pofile})
11
 
    get_filename_component(pofile_path ${pofile} PATH)
12
 
    string(REPLACE "${CMAKE_CURRENT_SOURCE_DIR}/" "" template_name ${pofile_path})
13
 
    if (${pofile_name} STREQUAL ${locale_name})
14
 
      add_custom_command (
15
 
        OUTPUT ${CMAKE_BINARY_DIR}/locale/${locale_name}/LC_MESSAGES/${template_name}.mo
16
 
        COMMAND cmake -E make_directory ${CMAKE_BINARY_DIR}/locale/${locale_name}/LC_MESSAGES
17
 
        COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} -q --no-wrap ${pofile} ${CMAKE_CURRENT_SOURCE_DIR}/${template_name}/${template_name}.pot -o ${CMAKE_CURRENT_BINARY_DIR}/${locale_name}_${template_name}.tmp.po
18
 
        COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${CMAKE_BINARY_DIR}/locale/${locale_name}/LC_MESSAGES/${template_name}.mo ${CMAKE_CURRENT_BINARY_DIR}/${locale_name}_${template_name}.tmp.po
19
 
        COMMAND cmake -E remove ${CMAKE_CURRENT_BINARY_DIR}/${locale_name}_${template_name}.tmp.po
20
 
        DEPENDS ${pofile}
21
 
        COMMENT "Generating translations for locale ${locale_name} category ${template_name}"
22
 
      )
23
 
      list(APPEND commands ${CMAKE_BINARY_DIR}/locale/${locale_name}/LC_MESSAGES/${template_name}.mo)
24
 
    endif (${pofile_name} STREQUAL ${locale_name})
25
 
  endforeach (pofile ${pofiles})
26
 
  add_custom_target (
27
 
    translang_${locale_name}
28
 
    DEPENDS ${commands}
29
 
  )
30
 
  add_custom_target (
31
 
    lang_${locale_name}
32
 
    COMMAND cmake -Dlang=${locale_name} -Dpobasedir=${CMAKE_CURRENT_SOURCE_DIR} -Dlocalebasedir=${CMAKE_BINARY_DIR}/locale -P ${CMAKE_CURRENT_SOURCE_DIR}/CheckLocale.cmake
33
 
    COMMENT "Checking translations for locale ${locale_name}"
34
 
  )
35
 
  add_dependencies(lang lang_${locale_name})
36
 
  add_dependencies(lang_${locale_name} translang_${locale_name})
37
 
endmacro(CreateLocale locale_name)
38
 
 
39
 
set (languages_found "")
40
 
file (GLOB_RECURSE pofiles *.po)
41
 
foreach(pofile ${pofiles})
42
 
  get_filename_component(pofile ${pofile} NAME_WE)
43
 
  list(APPEND languages_found ${pofile})
44
 
endforeach(pofile ${pofiles})
45
 
 
46
 
list(SORT languages_found)
47
 
list(REMOVE_DUPLICATES languages_found)
48
 
 
49
 
foreach(language ${languages_found})
50
 
  CreateLocale(${language})
51
 
endforeach(language ${languages_found})