Skip to content

Commit 54e5d03

Browse files
authored
Merge pull request #95 from dobey/plugin-fixups
Fix some issues with the language plugins
2 parents fd8f95d + 1fc4cce commit 54e5d03

File tree

2 files changed

+17
-11
lines changed

2 files changed

+17
-11
lines changed

CMakeLists.txt

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,7 @@ set(WESTERNSUPPORT_SOURCES
8080
plugins/westernsupport/westernlanguagesplugin.h
8181
plugins/westernsupport/westernsupport.cpp
8282
plugins/westernsupport/westernsupport.h
83-
plugins/westernsupport/westernsupport_global.h
84-
src/lib/logic/abstractlanguageplugin.cpp
85-
src/lib/logic/abstractlanguageplugin.h)
83+
plugins/westernsupport/westernsupport_global.h)
8684

8785
# TODO install logic/languageplugininterface.h and logic/abstractplugininterface.h as HEADERS
8886

@@ -207,21 +205,29 @@ target_include_directories(westernsupport PUBLIC src/lib/logic plugins/westernsu
207205
target_compile_definitions(westernsupport PRIVATE ${maliit-keyboard-definitions})
208206

209207
function(language_plugin _language _full_language _ebook)
208+
# To support layout style variations such as en@dv we need to avoid using
209+
# the @ character in variables, so split and replace it with _
210+
set(_target ${_language})
211+
if(${_language} MATCHES "^(.*)\@(.*)$")
212+
set(_target ${CMAKE_MATCH_1}_${CMAKE_MATCH_2})
213+
endif()
214+
210215
set(PLUGIN_SOURCES
211216
plugins/${_language}/src/${_full_language}plugin.h
212217
plugins/${_language}/src/${_full_language}plugin.json)
213218
if(enable-presage)
214219
add_ngram(TEXT plugins/${_language}/src/${_ebook} DATABASE database_${_language}.db)
215220
list(APPEND PLUGIN_SOURCES database_${_language}.db)
216221
endif()
217-
add_library(${_language}plugin MODULE ${PLUGIN_SOURCES})
218-
target_link_libraries(${_language}plugin westernsupport)
222+
add_library(${_target}plugin MODULE ${PLUGIN_SOURCES})
223+
set_target_properties(${_target}plugin PROPERTIES OUTPUT_NAME ${_language}plugin)
224+
target_link_libraries(${_target}plugin maliit-keyboard-common westernsupport)
219225
install(FILES plugins/${_language}/qml/Keyboard_${_language}.qml
220226
plugins/${_language}/qml/Keyboard_${_language}_email.qml
221227
plugins/${_language}/qml/Keyboard_${_language}_url.qml
222228
plugins/${_language}/qml/Keyboard_${_language}_url_search.qml
223229
DESTINATION ${MALIIT_KEYBOARD_LANGUAGES_DIR}/${_language})
224-
install(TARGETS ${_language}plugin
230+
install(TARGETS ${_target}plugin
225231
LIBRARY DESTINATION ${MALIIT_KEYBOARD_LANGUAGES_DIR}/${_language})
226232
if(enable-presage)
227233
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/database_${_language}.db
@@ -279,7 +285,8 @@ function(abstract_language_plugin _language _full_language)
279285
list(APPEND PLUGIN_SOURCES database_${_language}.db)
280286
endif()
281287
add_library(${_target}plugin MODULE ${PLUGIN_SOURCES})
282-
target_link_libraries(${_target}plugin Qt5::Core Maliit::Plugins ${abstract_language_plugin_LIBRARIES})
288+
set_target_properties(${_target}plugin PROPERTIES OUTPUT_NAME ${_language}plugin)
289+
target_link_libraries(${_target}plugin Qt5::Core Maliit::Plugins maliit-keyboard-common ${abstract_language_plugin_LIBRARIES})
283290
target_include_directories(${_target}plugin PRIVATE src/lib/logic ${abstract_language_plugin_INCLUDE_DIRS})
284291
target_compile_definitions(${_target}plugin PRIVATE ${abstract_language_plugin_DEFINITIONS})
285292
install(TARGETS ${_target}plugin
@@ -344,7 +351,7 @@ abstract_language_plugin(en@dv englishdvorak
344351
FILES src/overrides.csv
345352
LIBRARIES westernsupport)
346353
abstract_language_plugin(fr-ch french LIBRARIES westernsupport)
347-
abstract_language_plugin(th thai LIBRARIES westernsupport DIRECTORY qml/keys)
354+
abstract_language_plugin(th thai DIRECTORY qml/keys)
348355

349356
if(Anthy_FOUND)
350357
abstract_language_plugin(ja japanese ABSTRACT_LANGUAGE_PLUGIN

src/plugin/inputmethod.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -773,9 +773,8 @@ bool InputMethod::languageIsSupported(const QString plugin) {
773773
void InputMethod::onLanguageChanged(const QString &language) {
774774
Q_D(InputMethod);
775775
for (const auto& languagePath : std::as_const(d->languagesPaths)) {
776-
QPluginLoader languagePlugin(QStringLiteral("%1/%2/lib%2plugin.so").arg(languagePath, language));
777-
const auto& metaData = languagePlugin.metaData();
778-
if (metaData.value(u8"IID").toString() == QLatin1String("io.maliit.keyboard.LanguagePlugin.1")) {
776+
QFile languagePlugin(languagePath + QDir::separator() + language + QDir::separator() + QStringLiteral("lib%1plugin.so").arg(language));
777+
if (languagePlugin.exists()) {
779778
Q_EMIT languagePluginChanged(languagePlugin.fileName(), language);
780779
return;
781780
}

0 commit comments

Comments
 (0)