Move po generation from Make to CMake.

Fixes #902: localization build: `install`, `uninstall`, `prefixcheck
targets.  All the language-related bits will now build under CMake.
Changes include:

  * Moving all non-generated sources into the NEOVIM_SOURCES variable
    to aid in generating the .pot file.
  * Moving a couple generated sources from NEOVIM_SOURCES and into
    NEOVIM_GENERATED_SOURCES.
  * Added NEOVIM_HEADERS to the executable and the library for folks who
    are using something other than Ninja or makefiles (that way the
    headers will show up in the IDE files).
  * Now uses gettext's `--update` switch to update the .po files, rather
    than doing a fragile `mv` dance that could leave you with a broken
    working tree if you press CTRL-C at the right time.
  * Creates `update-po-${LANG}` targets for updating individual
    languages, just like the original Makefile.
  * Also adds the `update-po` target for updating all the languages.
  * Ported the `check-${LANG}` style targets.  They're
    `check-po-${LANG}` under CMake.
  * Handles all the one-off instances that were in the original
    Makefile.  Fixed up ko.UTF-8.po to include the "Original
    translation" line like other .po files to make the generation of the
    "Generate from ..." comments consistent.  Updated ko.po with the new
    text.
This commit is contained in:
John Szakmeister
2014-07-09 06:12:28 -04:00
parent 1f3fb5ffea
commit 531ded7865
9 changed files with 276 additions and 309 deletions

21
cmake/ConvertPo.cmake Normal file
View File

@@ -0,0 +1,21 @@
string(TOUPPER ${INPUT_ENC} upperInputEnc)
string(TOLOWER ${INPUT_ENC} lowerInputEnc)
get_filename_component(inputName ${INPUT_FILE} NAME)
execute_process(
COMMAND ${ICONV_PRG} -f ${INPUT_ENC} -t ${OUTPUT_ENC} ${INPUT_FILE}
OUTPUT_VARIABLE trans
ERROR_VARIABLE err
RESULT_VARIABLE res)
if(NOT res EQUAL 0)
message(FATAL_ERROR "iconv failed to run correctly: ${err}")
endif()
string(REPLACE "charset=${lowerInputEnc}" "charset=${OUTPUT_CHARSET}"
trans "${trans}")
string(REPLACE "charset=${upperInputEnc}" "charset=${OUTPUT_CHARSET}"
trans "${trans}")
string(REPLACE "# Original translations"
"# Generated from ${inputName}, DO NOT EDIT"
trans "${trans}")
file(WRITE ${OUTPUT_FILE} "${trans}")