pkg_check_modules hunspell and pinyin
This commit is contained in:
parent
c6087845a4
commit
92a475f335
|
@ -299,6 +299,16 @@ jobs:
|
||||||
set-env: "true"
|
set-env: "true"
|
||||||
tools-only: "false"
|
tools-only: "false"
|
||||||
|
|
||||||
|
- name: Install hunspell for Ubuntu
|
||||||
|
if: startsWith(matrix.config.name, 'Ubuntu')
|
||||||
|
run: |
|
||||||
|
sudo apt-get install -y libhunspell-dev
|
||||||
|
|
||||||
|
- name: Install pinyin for Ubuntu
|
||||||
|
if: startsWith(matrix.config.name, 'Ubuntu')
|
||||||
|
run: |
|
||||||
|
sudo apt-get install -y libimepinyin-dev
|
||||||
|
|
||||||
- name: Configure
|
- name: Configure
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
|
@ -310,7 +320,10 @@ jobs:
|
||||||
-G "${{ matrix.config.generators }}" \
|
-G "${{ matrix.config.generators }}" \
|
||||||
-DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} \
|
-DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} \
|
||||||
-DCMAKE_INSTALL_PREFIX:PATH=instdir \
|
-DCMAKE_INSTALL_PREFIX:PATH=instdir \
|
||||||
-D${{ matrix.config.cmake.qtdirkey }}:PATH="${{ matrix.config.cmake.qtdirvalue }}"
|
-D${{ matrix.config.cmake.qtdirkey }}:PATH="${{ matrix.config.cmake.qtdirvalue }}" \
|
||||||
|
-DENABLE_HUNSPELL:BOOL=ON \
|
||||||
|
-DENABLE_PINYIN:BOOL=ON
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
shell: bash
|
shell: bash
|
||||||
run: cmake --build . --config ${{ matrix.config.build_type }}
|
run: cmake --build . --config ${{ matrix.config.build_type }}
|
||||||
|
|
|
@ -58,6 +58,26 @@ elseif(NOT "${Qt6_DIR}" STREQUAL "")
|
||||||
set(Qt_VERSION_PATCH ${Qt6_VERSION_PATCH})
|
set(Qt_VERSION_PATCH ${Qt6_VERSION_PATCH})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# optional package hunspell
|
||||||
|
if(NOT UNIX 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)
|
||||||
|
message(WARNING "Feature 'pinyin' only available for UNIX!")
|
||||||
|
unset(ENABLE_PINYIN CACHE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_HUNSPELL)
|
||||||
|
include(cmake/QSkinnyOptionalHunspell.cmake)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_PINYIN)
|
||||||
|
include(cmake/QSkinnyOptionalPinyin.cmake)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(TRUE)
|
if(TRUE)
|
||||||
message(STATUS "\${Qt} : ${Qt}")
|
message(STATUS "\${Qt} : ${Qt}")
|
||||||
message(STATUS "\${Qt_VERSION_MAJOR}: ${Qt_VERSION_MAJOR}")
|
message(STATUS "\${Qt_VERSION_MAJOR}: ${Qt_VERSION_MAJOR}")
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
find_package(PkgConfig)
|
||||||
|
pkg_check_modules(PKG_HUNSPELL QUIET hunspell)
|
||||||
|
find_path(HUNSPELL_INCLUDE_DIRS
|
||||||
|
NAMES hunspell.hxx
|
||||||
|
PATH_SUFFIXES hunspell
|
||||||
|
HINTS ${PKG_HUNSPELL_INCLUDE_DIRS})
|
||||||
|
find_library(HUNSPELL_LIBRARIES
|
||||||
|
NAMES ${PKG_HUNSPELL_LIBRARIES} hunspell hunspell-1.8 hunspell-1.7 hunspell-1.6 libhunspell
|
||||||
|
HINTS ${PKG_HUNSPELL_LIBRARY_DIRS})
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
find_package_handle_standard_args(HUNSPELL
|
||||||
|
REQUIRED_VARS HUNSPELL_LIBRARIES HUNSPELL_INCLUDE_DIRS
|
||||||
|
VERSION_VAR PKG_HUNSPELL_VERSION)
|
||||||
|
mark_as_advanced(HUNSPELL_INCLUDE_DIRS HUNSPELL_LIBRARIES)
|
||||||
|
|
||||||
|
add_library(hunspell SHARED IMPORTED GLOBAL)
|
||||||
|
set_target_properties(hunspell PROPERTIES IMPORTED_LOCATION ${HUNSPELL_LIBRARIES})
|
||||||
|
target_include_directories(hunspell
|
||||||
|
INTERFACE
|
||||||
|
${HUNSPELL_INCLUDE_DIRS})
|
|
@ -0,0 +1,20 @@
|
||||||
|
find_package(PkgConfig)
|
||||||
|
pkg_check_modules(PKG_PINYIN QUIET pinyin)
|
||||||
|
find_path(PINYIN_INCLUDE_DIRS
|
||||||
|
NAMES pinyinime.h
|
||||||
|
PATH_SUFFIXES pinyin LibIME/libime/pinyin
|
||||||
|
HINTS ${PKG_PINYIN_INCLUDE_DIRS})
|
||||||
|
find_library(PINYIN_LIBRARIES
|
||||||
|
NAMES ${PKG_PINYIN_LIBRARIES} IMEPinyin imepinyin ime libime libimepinyin
|
||||||
|
HINTS ${PKG_PINYIN_LIBRARY_DIRS})
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
find_package_handle_standard_args(PINYIN
|
||||||
|
REQUIRED_VARS PINYIN_LIBRARIES PINYIN_INCLUDE_DIRS
|
||||||
|
VERSION_VAR PKG_PINYIN_VERSION)
|
||||||
|
mark_as_advanced(PINYIN_INCLUDE_DIRS PINYIN_LIBRARIES)
|
||||||
|
|
||||||
|
add_library(pinyin SHARED IMPORTED GLOBAL)
|
||||||
|
set_target_properties(pinyin PROPERTIES IMPORTED_LOCATION ${PINYIN_LIBRARIES})
|
||||||
|
target_include_directories(pinyin
|
||||||
|
INTERFACE
|
||||||
|
${PINYIN_INCLUDE_DIRS})
|
|
@ -49,8 +49,8 @@ option(BUILD_QSKDLL "Build qskinny as shared library" ON)
|
||||||
option(BUILD_EXAMPLES "Build qskinny examples" ON)
|
option(BUILD_EXAMPLES "Build qskinny examples" ON)
|
||||||
option(BUILD_PLAYGROUND "Build qskinny playground" ON)
|
option(BUILD_PLAYGROUND "Build qskinny playground" ON)
|
||||||
option(BUILD_SVG2QVG_STANDALONE "If 'ON' application won't be linked against qskinny library" ON)
|
option(BUILD_SVG2QVG_STANDALONE "If 'ON' application won't be linked against qskinny library" ON)
|
||||||
option(ENABLE_PINYIN "Enable romanization system for standard mandarin chinese" OFF) # TODO try find pkg-config
|
option(ENABLE_PINYIN "UNIX ONLY OPTION: Enable romanization system for standard mandarin chinese" OFF)
|
||||||
option(ENABLE_HUNSPELL "Enable spell checker" OFF) # TODO try find pkg-config
|
option(ENABLE_HUNSPELL "UNIX ONLY OPTION: Enable spell checker" OFF)
|
||||||
option(ENABLE_FONT_CONFIG "Enable font config for font caching" ON)
|
option(ENABLE_FONT_CONFIG "Enable font config for font caching" ON)
|
||||||
option(ENABLE_ENSURE_SKINS "Enabling fall back code, that inserts some skin factories manually when not finding skin factories as plugins" ON)
|
option(ENABLE_ENSURE_SKINS "Enabling fall back code, that inserts some skin factories manually when not finding skin factories as plugins" ON)
|
||||||
option(ENABLE_AUTOQVG "enable automatic qvg compilation" OFF)
|
option(ENABLE_AUTOQVG "enable automatic qvg compilation" OFF)
|
||||||
|
|
|
@ -10,31 +10,33 @@ list(APPEND TARGET_OTHER_FILES
|
||||||
metadata.json)
|
metadata.json)
|
||||||
|
|
||||||
if(ENABLE_PINYIN)
|
if(ENABLE_PINYIN)
|
||||||
if(UNIX)
|
|
||||||
# TODO CONFIG += link_pkgconfig PKGCONFIG += pinyin
|
|
||||||
list(APPEND TARGET_HEADERS
|
list(APPEND TARGET_HEADERS
|
||||||
${CMAKE_SOURCE_DIR}/src/inputpanel/QskPinyinTextPredictor.h)
|
${CMAKE_SOURCE_DIR}/src/inputpanel/QskPinyinTextPredictor.h)
|
||||||
list(APPEND TARGET_SOURCES
|
list(APPEND TARGET_SOURCES
|
||||||
${CMAKE_SOURCE_DIR}/src/inputpanel/QskPinyinTextPredictor.cpp)
|
${CMAKE_SOURCE_DIR}/src/inputpanel/QskPinyinTextPredictor.cpp)
|
||||||
else()
|
|
||||||
message(WARNING "Feature 'pinyin' currently only available for UNIX!")
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(ENABLE_HUNSPELL)
|
if(ENABLE_HUNSPELL)
|
||||||
if(UNIX)
|
|
||||||
# TODO CONFIG += link_pkgconfig PKGCONFIG += hunspell
|
|
||||||
list(APPEND TARGET_HEADERS
|
list(APPEND TARGET_HEADERS
|
||||||
${CMAKE_SOURCE_DIR}/src/inputpanel/QskHunspellTextPredictor.h)
|
${CMAKE_SOURCE_DIR}/src/inputpanel/QskHunspellTextPredictor.h)
|
||||||
list(APPEND TARGET_SOURCES
|
list(APPEND TARGET_SOURCES
|
||||||
${CMAKE_SOURCE_DIR}/src/inputpanel/QskHunspellTextPredictor.cpp)
|
${CMAKE_SOURCE_DIR}/src/inputpanel/QskHunspellTextPredictor.cpp)
|
||||||
else()
|
|
||||||
message(WARNING "Feature 'hunspell' currently only available for UNIX!")
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_library(${TARGET_NAME} SHARED ${TARGET_SOURCES} ${TARGET_HEADERS} ${TARGET_OTHER_FILES})
|
add_library(${TARGET_NAME} SHARED ${TARGET_SOURCES} ${TARGET_HEADERS} ${TARGET_OTHER_FILES})
|
||||||
|
|
||||||
|
if(ENABLE_PINYIN)
|
||||||
|
target_link_libraries(${TARGET_NAME}
|
||||||
|
PRIVATE
|
||||||
|
pinyin)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_HUNSPELL)
|
||||||
|
target_link_libraries(${TARGET_NAME}
|
||||||
|
PRIVATE
|
||||||
|
hunspell)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(BUILD_QSKDLL)
|
if(BUILD_QSKDLL)
|
||||||
target_compile_definitions(${TARGET_NAME}
|
target_compile_definitions(${TARGET_NAME}
|
||||||
PRIVATE
|
PRIVATE
|
||||||
|
|
|
@ -363,29 +363,18 @@ list(APPEND TARGET_SOURCES
|
||||||
inputpanel/QskVirtualKeyboard.cpp)
|
inputpanel/QskVirtualKeyboard.cpp)
|
||||||
|
|
||||||
if(ENABLE_PINYIN)
|
if(ENABLE_PINYIN)
|
||||||
if(UNIX)
|
|
||||||
target_compile_definitions(${TARGET_NAME} PRIVATE PINYIN) # TODO required?
|
|
||||||
# TODO CONFIG += link_pkgconfig PKGCONFIG += pinyin
|
|
||||||
list(APPEND TARGET_HEADERS
|
list(APPEND TARGET_HEADERS
|
||||||
inputpanel/QskPinyinTextPredictor.h)
|
inputpanel/QskPinyinTextPredictor.h)
|
||||||
|
|
||||||
list(APPEND TARGET_SOURCES
|
list(APPEND TARGET_SOURCES
|
||||||
inputpanel/QskPinyinTextPredictor.cpp)
|
inputpanel/QskPinyinTextPredictor.cpp)
|
||||||
else()
|
|
||||||
message(WARNING "Feature 'pinyin' currently only available for UNIX!")
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(ENABLE_HUNSPELL)
|
if(ENABLE_HUNSPELL)
|
||||||
if(UNIX)
|
|
||||||
# TODO CONFIG += link_pkgconfig PKGCONFIG += hunspell
|
|
||||||
list(APPEND TARGET_HEADERS
|
list(APPEND TARGET_HEADERS
|
||||||
inputpanel/QskHunspellTextPredictor.h)
|
inputpanel/QskHunspellTextPredictor.h)
|
||||||
list(APPEND TARGET_SOURCES
|
list(APPEND TARGET_SOURCES
|
||||||
inputpanel/QskHunspellTextPredictor.cpp)
|
inputpanel/QskHunspellTextPredictor.cpp)
|
||||||
else()
|
|
||||||
message(WARNING "Feature 'hunspell' currently only available for UNIX!")
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(TARGET_NAME qskinny)
|
set(TARGET_NAME qskinny)
|
||||||
|
@ -433,6 +422,20 @@ if (Qt_VERSION_MAJOR VERSION_GREATER "5")
|
||||||
${Qt}::OpenGLPrivate)
|
${Qt}::OpenGLPrivate)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_HUNSPELL)
|
||||||
|
target_link_libraries(${TARGET_NAME}
|
||||||
|
PRIVATE
|
||||||
|
hunspell)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_PINYIN)
|
||||||
|
target_compile_definitions(${TARGET_NAME} PRIVATE PINYIN)
|
||||||
|
|
||||||
|
target_link_libraries(${TARGET_NAME}
|
||||||
|
PRIVATE
|
||||||
|
pinyin)
|
||||||
|
endif()
|
||||||
|
|
||||||
set_target_properties(${TARGET_NAME}
|
set_target_properties(${TARGET_NAME}
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
AUTOMOC ON
|
AUTOMOC ON
|
||||||
|
|
Loading…
Reference in New Issue