Warning, /frameworks/ki18n/cmake/build-pofiles.cmake is written in an unsupported language. File is not indexed.

0001 # SPDX-FileCopyrightText: 2017 Aleix Pol Gonzalez <aleixpol@kde.org>
0002 # SPDX-FileCopyrightText: 2017 Harald Sitter <sitter@kde.org>
0003 #
0004 # SPDX-License-Identifier: BSD-3-Clause
0005 
0006 file(GLOB_RECURSE pofiles RELATIVE "${PO_DIR}" "${PO_DIR}/**.po")
0007 
0008 include(ProcessorCount)
0009 ProcessorCount(numberOfProcesses)
0010 
0011 set(i 0)
0012 set(commands)
0013 
0014 function(_processCommands)
0015     if(NOT commands)
0016         return()
0017     endif()
0018 
0019     execute_process(
0020         ${commands}
0021         RESULT_VARIABLE code
0022     )
0023     if(code)
0024         message(FATAL_ERROR "failed generating ${PO_DIR}")
0025     endif()
0026 endfunction()
0027 
0028 foreach(pofile IN LISTS pofiles)
0029     get_filename_component(name ${pofile} NAME)
0030     # Regex the basename, cmake only allows stripping the longest extension, we
0031     # need the shortest or we'll screw up "org.kde.plasma.kittens.po"
0032     # https://bugs.kde.org/show_bug.cgi?id=379116
0033     string(REGEX REPLACE "^(.+)(\\.[^.]+)$" "\\1" name ${name})
0034     get_filename_component(langdir ${pofile} DIRECTORY)
0035     set(dest ${COPY_TO}/${langdir}/LC_MESSAGES)
0036     file(MAKE_DIRECTORY ${dest})
0037 
0038     if (EXISTS ${dest}/${name}.mo AND ${dest}/${name}.mo IS_NEWER_THAN ${PO_DIR}/${pofile})
0039         continue()
0040     endif()
0041 
0042     list(APPEND commands COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${dest}/${name}.mo ${PO_DIR}/${pofile})
0043     math(EXPR i "${i}+1")
0044     if(i EQUAL ${numberOfProcesses})
0045         _processCommands()
0046         set(i 0)
0047         set(commands)
0048     endif()
0049 endforeach()
0050 
0051 _processCommands()