From 0842e9506ad839ad0689747d379e1a00645cf03a Mon Sep 17 00:00:00 2001 From: Rick Vogel Date: Fri, 4 Nov 2022 14:19:30 +0100 Subject: [PATCH] advance pinyin integration --- CMakeLists.txt | 8 ++++++-- README.md | 4 ++++ cmake/QSkinnyOptionalPinyin.cmake | 7 +++++-- inputcontext/CMakeLists.txt | 3 ++- src/CMakeLists.txt | 17 ++++++++++------- 5 files changed, 27 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 80b552b5..ec020358 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,6 +8,8 @@ set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) +include(${CMAKE_SOURCE_DIR}/features/qskconfig.cmake) + if("${Qt5_DIR}" STREQUAL "" AND "${Qt6_DIR}" STREQUAL "") message(FATAL_ERROR "Neither Qt5_DIR nor Qt6_DIR defined!") else() @@ -59,13 +61,13 @@ elseif(NOT "${Qt6_DIR}" STREQUAL "") endif() # optional package hunspell -if(NOT UNIX AND ENABLE_HUNSPELL) +if(NOT LINUX AND ENABLE_HUNSPELL) message(WARNING "Feature 'hunspell' only available for UNIX!") unset(ENABLE_HUNSPELL CACHE) endif() # optional package pinyin -if(NOT UNIX AND ENABLE_PINYIN) +if(NOT LINUX AND ENABLE_PINYIN) message(WARNING "Feature 'pinyin' only available for UNIX!") unset(ENABLE_PINYIN CACHE) endif() @@ -160,6 +162,8 @@ install( FILES cmake/${PACKAGE_NAME}Config.cmake cmake/${PACKAGE_NAME}Macros.cmake + cmake/${PACKAGE_NAME}OptionalHunspell.cmake + cmake/${PACKAGE_NAME}OptionalPinyin.cmake ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/${PACKAGE_NAME}ConfigVersion.cmake DESTINATION ${PACKAGE_LOCATION} diff --git a/README.md b/README.md index 553d8778..be56ed6e 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,10 @@ On debian bullseye these packages need to be installed: `build-essential qt-qmake qtbase5-dev qtbase5-private-dev qtdeclarative5-dev qtdeclarative5-private-dev libqt5svg5-dev`. +> Optional: When enabling the `hunspell` feature the following package needs to be installed: `libhunspell-dev` + +> Optional: When enabling the `pinyin` feature the following package needs to be installed: `libimepinyin-dev` + If you want to know more about QSkinny - or even like to give it a specific direction - please contact support@qskinny.org. diff --git a/cmake/QSkinnyOptionalPinyin.cmake b/cmake/QSkinnyOptionalPinyin.cmake index 1192d517..73eacd14 100644 --- a/cmake/QSkinnyOptionalPinyin.cmake +++ b/cmake/QSkinnyOptionalPinyin.cmake @@ -2,7 +2,7 @@ find_package(PkgConfig) pkg_check_modules(PKG_PINYIN QUIET pinyin) find_path(PINYIN_INCLUDE_DIRS NAMES pinyinime.h - PATH_SUFFIXES pinyin LibIME/libime/pinyin + PATH_SUFFIXES pinyin LibIME LibIME/libime/pinyin HINTS ${PKG_PINYIN_INCLUDE_DIRS}) find_library(PINYIN_LIBRARIES NAMES ${PKG_PINYIN_LIBRARIES} IMEPinyin imepinyin ime libime libimepinyin @@ -17,4 +17,7 @@ add_library(pinyin SHARED IMPORTED GLOBAL) set_target_properties(pinyin PROPERTIES IMPORTED_LOCATION ${PINYIN_LIBRARIES}) target_include_directories(pinyin INTERFACE - ${PINYIN_INCLUDE_DIRS}) \ No newline at end of file + ${PINYIN_INCLUDE_DIRS}) + +find_package(LibIMEPinyin REQUIRED) +find_package(Fcitx5Utils REQUIRED) \ No newline at end of file diff --git a/inputcontext/CMakeLists.txt b/inputcontext/CMakeLists.txt index 88e25f15..ba093f9b 100644 --- a/inputcontext/CMakeLists.txt +++ b/inputcontext/CMakeLists.txt @@ -28,7 +28,8 @@ add_library(${TARGET_NAME} SHARED ${TARGET_SOURCES} ${TARGET_HEADERS} ${TARGET_O if(ENABLE_PINYIN) target_link_libraries(${TARGET_NAME} PRIVATE - pinyin) + pinyin + Fcitx5::Utils) endif() if(ENABLE_HUNSPELL) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 978d62a0..01faf6ba 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,4 +1,3 @@ -include(${CMAKE_SOURCE_DIR}/features/qskconfig.cmake) include(${CMAKE_SOURCE_DIR}/cmake/QSkinnyMacros.cmake) list(APPEND TARGET_HEADERS @@ -396,13 +395,12 @@ endif() target_include_directories(${TARGET_NAME} PUBLIC $ - $ - $ - $ $ - $ $ - $) + $ + $ + $ + $) target_include_directories(${TARGET_NAME} INTERFACE @@ -433,7 +431,12 @@ if(ENABLE_PINYIN) target_link_libraries(${TARGET_NAME} PRIVATE - pinyin) + pinyin + Fcitx5::Utils) + + target_include_directories(${TARGET_NAME} + PUBLIC + $) endif() set_target_properties(${TARGET_NAME}