Enable build plugin without fcitx name.

This commit is contained in:
Weng Xuetian 2020-05-14 08:36:12 -07:00
parent 037524dc44
commit b7bdd8aec2
7 changed files with 29 additions and 5 deletions

View File

@ -13,6 +13,7 @@ option(ENABLE_QT4 "Enable Qt 4" On)
option(ENABLE_QT5 "Enable Qt 5" On)
option(BUILD_ONLY_PLUGIN "Build only plugin" Off)
option(BUILD_STATIC_PLUGIN "Build plugin as static" Off)
option(WITH_FCITX_PLUGIN_NAME "Enable plugin name with fcitx" On)
if (BUILD_ONLY_PLUGIN)
set(LIBRARY_TYPE STATIC)

View File

@ -12,7 +12,10 @@ set_target_properties(qtim-fcitx5 PROPERTIES
)
target_include_directories(qtim-fcitx5 PRIVATE "${PROJECT_SOURCE_DIR}/common")
if (BUILD_ONLY_PLUGIN AND BUILD_STATIC_PLUGIN)
target_compile_definitions(qtim-fcitx5 PRIVATE "-DQT_STATICPLUGIN")
target_compile_definitions(qtim-fcitx5 PRIVATE "-DQT_STATICPLUGIN")
endif()
if (WITH_FCITX_PLUGIN_NAME)
target_compile_definitions(qtim-fcitx5 PRIVATE "-DFCITX5_QT_WITH_FCITX_NAME")
endif()
target_link_libraries(qtim-fcitx5

View File

@ -16,7 +16,11 @@ bool isFcitx(const QString &key) {
} // namespace
QStringList QFcitxInputContextPlugin::keys() const {
#ifdef FCITX5_QT_WITH_FCITX_NAME
return QStringList{"fcitx5", "fcitx"};
#else
return QStringList{"fcitx5"};
#endif
}
QInputContext *QFcitxInputContextPlugin::create(const QString &key) {

View File

@ -1,5 +1,11 @@
include_directories(${Qt5Gui_PRIVATE_INCLUDE_DIRS})
set(FCITX5_QT_EXTRA_PLUGIN_NAME "")
if (WITH_FCITX_PLUGIN_NAME)
set(FCITX5_QT_EXTRA_PLUGIN_NAME "\"fcitx\",")
endif()
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/fcitx5.json.in" "${CMAKE_CURRENT_BINARY_DIR}/fcitx5.json")
set(plugin_SRCS
qfcitxplatforminputcontext.cpp
@ -22,6 +28,13 @@ if (BUILD_ONLY_PLUGIN AND BUILD_STATIC_PLUGIN)
target_compile_definitions(fcitx5platforminputcontextplugin PRIVATE "-DQT_STATICPLUGIN")
endif()
target_compile_definitions(fcitx5platforminputcontextplugin PRIVATE "-DFCITX_PLUGIN_DATA_FILE_PATH=\"${CMAKE_CURRENT_BINARY_DIR}/fcitx5.json\"")
if (WITH_FCITX_PLUGIN_NAME)
# This is not really necessary, but can trigger a cmake rebuild.
target_compile_definitions(fcitx5platforminputcontextplugin PRIVATE "-DFCITX5_QT_WITH_FCITX_NAME")
endif()
target_link_libraries(fcitx5platforminputcontextplugin
Qt5::Core
Qt5::Gui

View File

@ -1,3 +0,0 @@
{
"Keys": [ "fcitx5", "fcitx" ]
}

View File

@ -0,0 +1,6 @@
{
"Keys": [
@FCITX5_QT_EXTRA_PLUGIN_NAME@
"fcitx5"
]
}

View File

@ -16,7 +16,7 @@
class QFcitx5PlatformInputContextPlugin : public QPlatformInputContextPlugin {
Q_OBJECT
Q_PLUGIN_METADATA(IID QPlatformInputContextFactoryInterface_iid FILE
"fcitx.json")
FCITX_PLUGIN_DATA_FILE_PATH)
public:
fcitx::QFcitxPlatformInputContext *
create(const QString &system, const QStringList &paramList) override;