From 09ff2e5483cfd0672a52af2be78adb73c53a8a22 Mon Sep 17 00:00:00 2001 From: Geert Janssens Date: Tue, 23 Mar 2021 15:25:08 +0100 Subject: [PATCH] Eliminate redundant mo files They were generated fist in builddir/po to then be copied to builddir/share/locale/... The intermediate in builddir/po is redundant. --- CMakeLists.txt | 1 + po/CMakeLists.txt | 50 ++++++++++++++++------------------------------- 2 files changed, 18 insertions(+), 33 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 03b955e7d4..a478b98d77 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -788,6 +788,7 @@ configure_file (${CMAKE_CURRENT_SOURCE_DIR}/common/config.h.cmake.in ${CONFIG_H} add_subdirectory (borrowed) add_subdirectory (data) add_subdirectory (doc) +# Note: po should be processed before gnucash - it provides LINGUAS, used to generate desktop and appdata files add_subdirectory (po) add_subdirectory (common) add_subdirectory (libgnucash) diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt index ec91d44034..1d72c9f4f2 100644 --- a/po/CMakeLists.txt +++ b/po/CMakeLists.txt @@ -10,52 +10,36 @@ set (GC_LINGUAS ar as az bg brx de doi el en_GB es es_NI et fi fr gu he hi hr hu set (NEW_LINGUAS) set (ALL_LINGUAS ${TP_LINGUAS} ${GC_LINGUAS} ${NEW_LINGUAS}) - -file (WRITE LINGUAS "${ALL_LINGUAS}") +# LINGUAS is used to create localized destkop and appdata files +string(REPLACE ";" " " LINGUAS "${ALL_LINGUAS}") +file(WRITE ${CMAKE_CURRENT_SOURCE_DIR}/LINGUAS "${LINGUAS}") set (CATALOGS "") -set (BUILD_CATALOGS "") +set (po_SOURCES "") -set(po_SOURCES "") -file (WRITE LINGUAS "") -foreach(lingua ${ALL_LINGUAS}) - list(APPEND po_SOURCES ${lingua}.po) - file (APPEND LINGUAS "${lingua} ") -endforeach() +foreach (lingua ${ALL_LINGUAS}) + list (APPEND po_SOURCES ${lingua}.po) -set_local_dist(po_DIST_local ${po_SOURCES} CMakeLists.txt Makevars - POTFILES.in POTFILES.skip README gnucash-pot.cmake) -set(po_DIST ${po_DIST_local} ${po_glossary_DIST} PARENT_SCOPE) + set (_LOCALE_DIR ${DATADIR_BUILD}/locale/${lingua}/LC_MESSAGES) + set (_MO_FILE ${_LOCALE_DIR}/gnucash.mo) + list (APPEND CATALOGS ${_MO_FILE}) -foreach(lingua ${ALL_LINGUAS}) - set(_OUTPUT_FILE ${lingua}.mo) - list(APPEND CATALOGS ${_OUTPUT_FILE}) add_custom_command( - OUTPUT ${_OUTPUT_FILE} + OUTPUT ${_MO_FILE} COMMAND ${CMAKE_COMMAND} -E env ${GETTEXT_MSGFMT_EXECUTABLE} - -o ${_OUTPUT_FILE} ${CMAKE_CURRENT_SOURCE_DIR}/${lingua}.po + -o ${_MO_FILE} ${CMAKE_CURRENT_SOURCE_DIR}/${lingua}.po DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${lingua}.po ) - set(_BUILD_FILE_DIR ${DATADIR_BUILD}/locale/${lingua}/LC_MESSAGES) - make_directory(${_BUILD_FILE_DIR}) - set(_BUILD_FILE ${_BUILD_FILE_DIR}/gnucash.mo) - list(APPEND BUILD_CATALOGS ${_BUILD_FILE}) - add_custom_command( - OUTPUT ${_BUILD_FILE} - COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/${lingua}.mo ${_BUILD_FILE} - DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${_OUTPUT_FILE} - #APPEND - ) -endforeach(lingua) -add_custom_target(po-gmo ALL DEPENDS ${CATALOGS}) -add_custom_target(po-gmo-build ALL DEPENDS ${BUILD_CATALOGS}) + install (FILES ${_MO_FILE} DESTINATION ${CMAKE_INSTALL_DATADIR}/locale/${lingua}/LC_MESSAGES) +endforeach (lingua) +add_custom_target(po-gmo ALL DEPENDS ${CATALOGS}) -foreach(lingua ${ALL_LINGUAS}) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${lingua}.mo RENAME gnucash.mo DESTINATION ${CMAKE_INSTALL_DATADIR}/locale/${lingua}/LC_MESSAGES) -endforeach(lingua) +set_local_dist(po_DIST_local ${po_SOURCES} CMakeLists.txt Makevars + POTFILES.in POTFILES.skip README gnucash-pot.cmake) +set(po_DIST ${po_DIST_local} ${po_glossary_DIST} PARENT_SCOPE) function(read_file_removing_comments OUTPUT PATH) set(RESULT "")