1
mirror of https://invent.kde.org/network/falkon.git synced 2024-12-19 18:26:34 +01:00

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.
This commit is contained in:
David Rosca 2018-03-02 16:43:31 +01:00
parent 3bb56fb47d
commit 288585f91a
No known key found for this signature in database
GPG Key ID: EBC3FC294452C6D8
3 changed files with 5 additions and 102 deletions

View File

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

View File

@ -1,46 +0,0 @@
# Copyright (c) 2017 Aleix Pol Gonzalez <aleixpol@kde.org>
# Copyright (c) 2017 Harald Sitter <sitter@kde.org>
#
# 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()

View File

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