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.
This commit is contained in:
Geert Janssens
2021-03-23 15:25:08 +01:00
parent 2be07b3e1c
commit 09ff2e5483
2 changed files with 24 additions and 39 deletions

View File

@@ -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)

View File

@@ -10,53 +10,37 @@ 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 (_LOCALE_DIR ${DATADIR_BUILD}/locale/${lingua}/LC_MESSAGES)
set (_MO_FILE ${_LOCALE_DIR}/gnucash.mo)
list (APPEND CATALOGS ${_MO_FILE})
add_custom_command(
OUTPUT ${_MO_FILE}
COMMAND ${CMAKE_COMMAND} -E env
${GETTEXT_MSGFMT_EXECUTABLE}
-o ${_MO_FILE} ${CMAKE_CURRENT_SOURCE_DIR}/${lingua}.po
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${lingua}.po
)
install (FILES ${_MO_FILE} DESTINATION ${CMAKE_INSTALL_DATADIR}/locale/${lingua}/LC_MESSAGES)
endforeach (lingua)
add_custom_target(po-gmo ALL DEPENDS ${CATALOGS})
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)
foreach(lingua ${ALL_LINGUAS})
set(_OUTPUT_FILE ${lingua}.mo)
list(APPEND CATALOGS ${_OUTPUT_FILE})
add_custom_command(
OUTPUT ${_OUTPUT_FILE}
COMMAND ${CMAKE_COMMAND} -E env
${GETTEXT_MSGFMT_EXECUTABLE}
-o ${_OUTPUT_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})
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)
function(read_file_removing_comments OUTPUT PATH)
set(RESULT "")
file(STRINGS "${PATH}" LINES_IN)