mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-01-23 14:48:15 +00:00
feat(app): use make to rebuild languages when a .cpp is altered
This commit is contained in:
parent
c75b1befd2
commit
cb53ece64a
3 changed files with 50 additions and 18 deletions
|
|
@ -47,33 +47,37 @@ set(QRC_RESOURCES
|
|||
)
|
||||
|
||||
set(LANGUAGES_DIRECTORY languages)
|
||||
set(I18N_FILENAME i18n.qrc)
|
||||
set(LANGUAGES en fr)
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
|
||||
function (PREPEND list prefix)
|
||||
set(new_list "")
|
||||
|
||||
foreach (elem ${${list}})
|
||||
list(APPEND new_list "${prefix}${elem}")
|
||||
endforeach ()
|
||||
|
||||
set(${list} ${new_list} PARENT_SCOPE)
|
||||
endfunction ()
|
||||
|
||||
# Force absolute paths.
|
||||
PREPEND(SOURCES "${CMAKE_SOURCE_DIR}/")
|
||||
PREPEND(HEADERS "${CMAKE_SOURCE_DIR}/")
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
|
||||
find_package(Qt5 COMPONENTS ${QT5_PACKAGES})
|
||||
|
||||
# Build languages resource file.
|
||||
set(TS_FILES)
|
||||
set(I18N_CONTENT "<!DOCTYPE RCC>\n<RCC version=\"1.0\">\n <qresource prefix=\"/\">\n")
|
||||
foreach (lang ${LANGUAGES})
|
||||
list(APPEND TS_FILES "${LANGUAGES_DIRECTORY}/${lang}.ts")
|
||||
|
||||
# Note: the below `languages/` path is not the same as the `${LANGUAGES_DIRECTORY}` value.
|
||||
# It's the symbolic path used by the linphone binary in the qrc model.
|
||||
set(I18N_CONTENT "${I18N_CONTENT} <file alias=\"languages/${lang}\">${lang}.qm</file>\n")
|
||||
endforeach ()
|
||||
set(I18N_CONTENT "${I18N_CONTENT} </qresource>\n</RCC>\n")
|
||||
|
||||
set(I18N_RESOURCE i18n.qrc)
|
||||
file(WRITE "${CMAKE_BINARY_DIR}/${I18N_RESOURCE}" "${I18N_CONTENT}")
|
||||
|
||||
# Create `qm` files from `ts` files.
|
||||
qt5_create_translation(QM_FILES ${TS_FILES} src ui)
|
||||
# Add languages support.
|
||||
add_subdirectory(${LANGUAGES_DIRECTORY})
|
||||
list(APPEND QRC_RESOURCES "${CMAKE_BINARY_DIR}/${LANGUAGES_DIRECTORY}/${I18N_FILENAME}")
|
||||
|
||||
# Add qrc. (images, qml, translations...)
|
||||
qt5_add_resources(RESOURCES ${QRC_RESOURCES} "${CMAKE_BINARY_DIR}/${I18N_RESOURCE}")
|
||||
qt5_add_resources(RESOURCES ${QRC_RESOURCES})
|
||||
|
||||
# Build.
|
||||
add_executable(${LINPHONE_EXEC} ${SOURCES} ${HEADERS} ${RESOURCES})
|
||||
add_dependencies(${LINPHONE_EXEC} update_translations)
|
||||
target_link_libraries(${LINPHONE_EXEC} ${LIBS})
|
||||
|
|
|
|||
27
tests/languages/CMakeLists.txt
Normal file
27
tests/languages/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
# Build languages resource file.
|
||||
set(TS_FILES)
|
||||
set(I18N_CONTENT "<!DOCTYPE RCC>\n<RCC version=\"1.0\">\n <qresource prefix=\"/\">\n")
|
||||
foreach (lang ${LANGUAGES})
|
||||
list(APPEND TS_FILES "${CMAKE_SOURCE_DIR}/${LANGUAGES_DIRECTORY}/${lang}.ts")
|
||||
|
||||
# Note: the below `languages/` path is not the same as the `${LANGUAGES_DIRECTORY}` value.
|
||||
# It's the symbolic path used by the linphone binary in the qrc model.
|
||||
# This path is used in `app.cpp`.
|
||||
set(I18N_CONTENT "${I18N_CONTENT} <file alias=\"languages/${lang}\">${lang}.qm</file>\n")
|
||||
endforeach ()
|
||||
set(I18N_CONTENT "${I18N_CONTENT} </qresource>\n</RCC>\n")
|
||||
|
||||
file(WRITE "${CMAKE_BINARY_DIR}/${LANGUAGES_DIRECTORY}/${I18N_FILENAME}" "${I18N_CONTENT}")
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
|
||||
# Prevent `.ts` files deletion.
|
||||
# See: https://bugreports.qt.io/browse/QTBUG-31860
|
||||
#
|
||||
# On October 17, 2016, this issue is marked `invalid` but it's a
|
||||
# bullshit. It's not tolerated to remove sources files.
|
||||
set_directory_properties(PROPERTIES CLEAN_NO_CUSTOM true)
|
||||
|
||||
# Create `qm` files from `ts` files.
|
||||
qt5_create_translation(QM_FILES ${TS_FILES} ${SOURCES} ${HEADERS})
|
||||
add_custom_target(update_translations DEPENDS ${QM_FILES})
|
||||
|
|
@ -207,6 +207,7 @@ ApplicationWindow {
|
|||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: 80
|
||||
color: '#EAEAEA'
|
||||
//a: qsTr("ooo")
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue