1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
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
fcitx4watcher.cpp
fcitx4inputcontextproxy.cpp
fcitx4inputcontextproxyimpl.cpp
fcitx4inputmethodproxy.cpp
hybridinputcontext.cpp
qfcitxplatforminputcontext.cpp
fcitxcandidatewindow.cpp
fcitxtheme.cpp
font.cpp
qtkey.cpp
main.cpp
)
if (BUILD_ONLY_PLUGIN AND BUILD_STATIC_PLUGIN)
set(plugin_SRCS ${plugin_SRCS} $<TARGET_OBJECTS:Fcitx5Qt6DBusAddons>)
endif()
add_library(fcitx5platforminputcontextplugin-qt6 ${PLUGIN_LIBRARY_TYPE} ${plugin_SRCS})
set_target_properties(fcitx5platforminputcontextplugin-qt6 PROPERTIES
OUTPUT_NAME fcitx5platforminputcontextplugin
AUTOMOC TRUE
)
target_include_directories(fcitx5platforminputcontextplugin-qt6 PRIVATE "${PROJECT_SOURCE_DIR}/common")
if (BUILD_ONLY_PLUGIN AND BUILD_STATIC_PLUGIN)
target_compile_definitions(fcitx5platforminputcontextplugin-qt6 PRIVATE "-DQT_STATICPLUGIN")
endif()
target_compile_definitions(fcitx5platforminputcontextplugin-qt6 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-qt6 PRIVATE "-DFCITX5_QT_WITH_FCITX_NAME")
endif()
target_link_libraries(fcitx5platforminputcontextplugin-qt6
Qt6::Core
Qt6::Gui
Qt6::GuiPrivate
Qt6::DBus
Qt6::Widgets
Fcitx5Qt6::DBusAddons
XKBCommon::XKBCommon
)
if (ENABLE_X11)
target_link_libraries(fcitx5platforminputcontextplugin-qt6 XCB::XCB)
target_compile_definitions(fcitx5platforminputcontextplugin-qt6 PRIVATE "-DENABLE_X11")
endif()
if (ENABLE_QT6_WAYLAND_WORKAROUND)
target_compile_definitions(fcitx5platforminputcontextplugin-qt6 PRIVATE "-DFCITX_ENABLE_QT6_WAYLAND_WORKAROUND")
target_link_libraries(fcitx5platforminputcontextplugin-qt6
Qt6::GuiPrivate
Qt6::WaylandGlobalPrivate
Qt6::WaylandClient
Qt6::WaylandClientPrivate)
endif()
get_target_property(_QT6_QMAKE_EXECUTABLE Qt6::qmake LOCATION)
execute_process(
COMMAND ${_QT6_QMAKE_EXECUTABLE} -query "QT_INSTALL_PLUGINS"
RESULT_VARIABLE return_code
OUTPUT_VARIABLE _QT6PLUGINDIR
)
if(return_code EQUAL 0)
string(STRIP "${_QT6PLUGINDIR}" _QT6PLUGINDIR)
else()
message(FATAL_ERROR "QMake Qt6 call failed: ${return_code}")
endif()
set(CMAKE_INSTALL_QT6PLUGINDIR ${_QT6PLUGINDIR} CACHE PATH "Qt6 plugin dir")
install(TARGETS fcitx5platforminputcontextplugin-qt6 DESTINATION ${CMAKE_INSTALL_QT6PLUGINDIR}/platforminputcontexts)
|