From 288585f91a69100d7579aec859c9f6fe3516fa53 Mon Sep 17 00:00:00 2001 From: David Rosca Date: Fri, 2 Mar 2018 16:43:31 +0100 Subject: [PATCH] Fix installing translations When there are mixed gettext and qt translations, they get downloaded to separate po and poqm folders, so it is no longer needed to handle it manually. --- CMakeLists.txt | 3 ++ cmake/build-po-files.cmake | 46 ------------------------------ src/main/CMakeLists.txt | 58 ++------------------------------------ 3 files changed, 5 insertions(+), 102 deletions(-) delete mode 100644 cmake/build-po-files.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 9530bdb3b..72502d8b3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -83,6 +83,9 @@ if (WIN32) add_definitions(-D_WIN32_WINNT=${ver}) endif() +# Mandatory: KF5I18n (only for ki18n_install) +find_package(KF5I18n REQUIRED) + # Optional: GnomeKeyring find_package(PkgConfig) if (PKG_CONFIG_FOUND) diff --git a/cmake/build-po-files.cmake b/cmake/build-po-files.cmake deleted file mode 100644 index 03736f2ef..000000000 --- a/cmake/build-po-files.cmake +++ /dev/null @@ -1,46 +0,0 @@ -# Copyright (c) 2017 Aleix Pol Gonzalez -# Copyright (c) 2017 Harald Sitter -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. Neither the name of the University nor the names of its contributors -# may be used to endorse or promote products derived from this software -# without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. - -file(GLOB_RECURSE pofiles RELATIVE "${PO_DIR}" "${PO_DIR}/**.po") - -foreach(pofile IN LISTS pofiles) - if (NOT pofile MATCHES "_qt.po") - get_filename_component(name ${pofile} NAME_WE) - get_filename_component(langdir ${pofile} DIRECTORY) - set(dest ${COPY_TO}/${langdir}/LC_MESSAGES) - file(MAKE_DIRECTORY ${dest}) - - message(STATUS "building... ${pofile} to ${name}.mo" ) - execute_process( - COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${dest}/${name}.mo ${PO_DIR}/${pofile} - RESULT_VARIABLE code - ) - if(code) - message(FATAL_ERROR "failed at generating ${name}.mo") - endif() - endif() -endforeach() diff --git a/src/main/CMakeLists.txt b/src/main/CMakeLists.txt index 1a3add02b..e31cbc933 100644 --- a/src/main/CMakeLists.txt +++ b/src/main/CMakeLists.txt @@ -17,60 +17,6 @@ add_executable(falkon ${SRCS}) target_link_libraries(falkon FalkonPrivate) -# Same as ecm_install_po_files_as_qm, but only for *_qt.po -function(install_po_files_as_qm podir) - if (LOCALE_INSTALL_DIR) - set(locale_install_destination "${LOCALE_INSTALL_DIR}") - elseif (CMAKE_INSTALL_LOCALEDIR) - set(locale_install_destination "${CMAKE_INSTALL_LOCALEDIR}") - else() - set(locale_install_destination share/locale) - endif() - file(GLOB po_files "${podir}/*/*_qt.po") - foreach(po_file ${po_files}) - get_filename_component(po_dir ${po_file} DIRECTORY) - get_filename_component(lang ${po_dir} NAME) - ecm_process_po_files_as_qm( - ${lang} ALL - PO_FILES ${po_file} - INSTALL_DESTINATION ${locale_install_destination} - ) - endforeach() -endfunction() - -# Same as ki18n_install, but skips *_qt.po -function(install_po_files podir) - if (LOCALE_INSTALL_DIR) - set(locale_install_destination "${LOCALE_INSTALL_DIR}") - elseif (CMAKE_INSTALL_LOCALEDIR) - set(locale_install_destination "${CMAKE_INSTALL_LOCALEDIR}") - else() - set(locale_install_destination share/locale) - endif() - get_filename_component(dirname ${locale_install_destination} NAME) - get_filename_component(destname ${locale_install_destination} DIRECTORY) - - get_filename_component(absolute_podir ${podir} ABSOLUTE) - string(MD5 pathmd5 ${absolute_podir}) - - add_custom_target(pofiles-${pathmd5} ALL - COMMENT "Generating mo..." - COMMAND ${CMAKE_COMMAND} - -DGETTEXT_MSGFMT_EXECUTABLE=${GETTEXT_MSGFMT_EXECUTABLE} - -DCOPY_TO=${CMAKE_CURRENT_BINARY_DIR}/${dirname} - -DPO_DIR=${absolute_podir} - -P ${CMAKE_SOURCE_DIR}/cmake/build-po-files.cmake - ) - - if (NOT TARGET pofiles) - add_custom_target(pofiles) - endif() - add_dependencies(pofiles pofiles-${pathmd5}) - - file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${dirname}) - install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${dirname} DESTINATION ${destname}) -endfunction() - if (APPLE) set_target_properties(falkon PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/main/Info.plist) set_target_properties(falkon PROPERTIES MACOSX_BUNDLE_GUI_IDENTIFIER "org.kde.falkon") @@ -88,8 +34,8 @@ endif() if (UNIX AND NOT APPLE) install(TARGETS falkon ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) install(DIRECTORY ${CMAKE_SOURCE_DIR}/themes DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/falkon) - install_po_files_as_qm(${CMAKE_SOURCE_DIR}/po) - install_po_files(${CMAKE_SOURCE_DIR}/po) + ki18n_install(${CMAKE_SOURCE_DIR}/po) + ecm_install_po_files_as_qm(${CMAKE_SOURCE_DIR}/poqm) install(PROGRAMS ../../linux/applications/org.kde.falkon.desktop DESTINATION ${KDE_INSTALL_APPDIR})