| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- # This file is part of Desktop App Toolkit,
- # a set of libraries for developing nice desktop applications.
- #
- # For license and copyright information please follow this link:
- # https://github.com/desktop-app/legal/blob/master/LEGAL
- add_library(lib_spellcheck STATIC)
- add_library(desktop-app::lib_spellcheck ALIAS lib_spellcheck)
- init_target(lib_spellcheck)
- get_filename_component(src_loc . REALPATH)
- set(use_enchant 0)
- if (LINUX AND DESKTOP_APP_USE_ENCHANT)
- set(use_enchant 1)
- endif()
- set(system_spellchecker 0)
- if ((APPLE OR WIN32 OR use_enchant) AND NOT DESKTOP_APP_USE_HUNSPELL_ONLY)
- set(system_spellchecker 1)
- endif()
- if (APPLE)
- target_link_frameworks_weak(lib_spellcheck
- PUBLIC
- NaturalLanguage # Since macOS 10.14 only.
- )
- endif()
- set(use_cld3 0)
- if (LINUX OR DESKTOP_APP_USE_CLD3)
- set(use_cld3 1)
- endif()
- target_precompile_headers(lib_spellcheck PRIVATE ${src_loc}/spellcheck/spellcheck_pch.h)
- nice_target_sources(lib_spellcheck ${src_loc}
- PRIVATE
- highlighting/highlighting.qrc
- spellcheck/platform/linux/language_linux.cpp
- spellcheck/platform/linux/language_linux.h
- spellcheck/platform/linux/linux_enchant.cpp
- spellcheck/platform/linux/linux_enchant.h
- spellcheck/platform/linux/spellcheck_linux.cpp
- spellcheck/platform/linux/spellcheck_linux.h
- spellcheck/platform/mac/language_mac.h
- spellcheck/platform/mac/language_mac.mm
- spellcheck/platform/mac/spellcheck_mac.h
- spellcheck/platform/mac/spellcheck_mac.mm
- spellcheck/platform/win/language_win.cpp
- spellcheck/platform/win/language_win.h
- spellcheck/platform/win/spellcheck_win.cpp
- spellcheck/platform/win/spellcheck_win.h
- spellcheck/platform/platform_language.h
- spellcheck/platform/platform_spellcheck.h
- spellcheck/third_party/language_cld3.cpp
- spellcheck/third_party/language_cld3.h
- spellcheck/third_party/hunspell_controller.cpp
- spellcheck/third_party/hunspell_controller.h
- spellcheck/third_party/spellcheck_hunspell.cpp
- spellcheck/third_party/spellcheck_hunspell.h
- spellcheck/spellcheck_types.h
- spellcheck/spellcheck_highlight_syntax.cpp
- spellcheck/spellcheck_highlight_syntax.h
- spellcheck/spellcheck_utils.cpp
- spellcheck/spellcheck_utils.h
- spellcheck/spellcheck_value.cpp
- spellcheck/spellcheck_value.h
- spellcheck/spelling_highlighter.cpp
- spellcheck/spelling_highlighter.h
- spellcheck/spelling_highlighter_helper.cpp
- spellcheck/spelling_highlighter_helper.h
- spellcheck/spellcheck_pch.h
- )
- target_prepare_qrc(lib_spellcheck)
- if (system_spellchecker)
- remove_target_sources(lib_spellcheck ${src_loc}
- spellcheck/third_party/spellcheck_hunspell.cpp
- spellcheck/third_party/spellcheck_hunspell.h
- )
- else()
- remove_target_sources(lib_spellcheck ${src_loc}
- spellcheck/platform/linux/linux_enchant.cpp
- spellcheck/platform/linux/linux_enchant.h
- spellcheck/platform/linux/spellcheck_linux.cpp
- spellcheck/platform/linux/spellcheck_linux.h
- spellcheck/platform/mac/spellcheck_mac.h
- spellcheck/platform/mac/spellcheck_mac.mm
- spellcheck/platform/win/spellcheck_win.cpp
- spellcheck/platform/win/spellcheck_win.h
- )
- endif()
- if (use_cld3)
- target_link_libraries(lib_spellcheck PRIVATE desktop-app::external_cld3)
- remove_target_sources(lib_spellcheck ${src_loc}
- spellcheck/platform/linux/language_linux.cpp
- spellcheck/platform/linux/language_linux.h
- spellcheck/platform/mac/language_mac.h
- spellcheck/platform/mac/language_mac.mm
- spellcheck/platform/win/language_win.cpp
- spellcheck/platform/win/language_win.h
- )
- else()
- remove_target_sources(lib_spellcheck ${src_loc}
- spellcheck/third_party/language_cld3.cpp
- spellcheck/third_party/language_cld3.h
- )
- endif()
- # We should support both types of spellchecker for Windows.
- if (WIN32 OR NOT system_spellchecker)
- target_link_libraries(lib_spellcheck PRIVATE desktop-app::external_hunspell)
- else()
- remove_target_sources(lib_spellcheck ${src_loc}
- spellcheck/third_party/hunspell_controller.cpp
- spellcheck/third_party/hunspell_controller.h
- )
- endif()
- target_include_directories(lib_spellcheck
- PUBLIC
- ${src_loc}
- )
- target_link_libraries(lib_spellcheck
- PRIVATE
- desktop-app::lib_ui
- desktop-app::lib_base
- desktop-app::lib_rpl
- desktop-app::lib_crl
- desktop-app::lib_prisma
- desktop-app::external_qt
- desktop-app::external_ranges
- desktop-app::external_gsl
- desktop-app::external_xxhash
- )
- if (LINUX AND use_enchant)
- find_package(PkgConfig REQUIRED)
- pkg_search_module(ENCHANT REQUIRED enchant-2 enchant)
- target_include_directories(lib_spellcheck SYSTEM PRIVATE ${ENCHANT_INCLUDE_DIRS})
- endif()
|