1
0
Fork 0
cmake_helpers/external/sonnet/CMakeLists.txt
2022-11-23 22:57:44 +01:00

110 lines
2.7 KiB
CMake

# 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
if (DESKTOP_APP_USE_PACKAGED AND QT_VERSION_MAJOR EQUAL 5)
add_library(external_sonnet INTERFACE IMPORTED GLOBAL)
add_library(desktop-app::external_sonnet ALIAS external_sonnet)
find_package(KF5Sonnet)
if (KF5Sonnet_FOUND)
target_link_libraries(external_sonnet INTERFACE KF5::SonnetCore)
return()
endif()
endif()
add_library(external_sonnet STATIC)
add_library(desktop-app::external_sonnet ALIAS external_sonnet)
init_target(external_sonnet "(external)")
set(sonnet_loc ${third_party_loc}/sonnet)
set(sonnet_data_loc ${sonnet_loc}/data)
set(sonnet_core_src ${sonnet_loc}/src/core)
set(sonnet_plugins_src ${sonnet_loc}/src/plugins)
set_target_properties(external_sonnet PROPERTIES AUTOMOC ON)
configure_file(${sonnet_data_loc}/trigrams.qrc.in ${CMAKE_CURRENT_BINARY_DIR}/trigrams.qrc @ONLY)
target_sources(external_sonnet PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/trigrams.qrc)
nice_target_sources(external_sonnet ${sonnet_core_src}
PRIVATE
client.cpp
client_p.h
guesslanguage.cpp
guesslanguage.h
loader.cpp
loader_p.h
settings.cpp
settings.h
settingsimpl.cpp
settingsimpl_p.h
speller.cpp
speller.h
spellerplugin.cpp
spellerplugin_p.h
textbreaks.cpp
textbreaks_p.h
tokenizer.cpp
tokenizer_p.h
)
nice_target_sources(external_sonnet ${sonnet_plugins_src}/hunspell
PRIVATE
hunspellclient.cpp
hunspellclient.h
hunspelldict.cpp
hunspelldict.h
)
if (APPLE)
nice_target_sources(external_sonnet ${sonnet_plugins_src}/nsspellchecker
PRIVATE
nsspellcheckerclient.cpp
nsspellcheckerclient.h
nsspellcheckerdict.cpp
nsspellcheckerdict.h
)
endif()
target_compile_definitions(external_sonnet
PUBLIC
SONNETCORE_EXPORT=
SONNET_STATIC
PRIVATE
QT_USE_QSTRINGBUILDER
)
target_include_directories(external_sonnet SYSTEM
PUBLIC
${sonnet_core_src}
${CMAKE_CURRENT_SOURCE_DIR}/headers/public
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/headers/private
)
target_link_libraries(external_sonnet
PRIVATE
desktop-app::external_qt
desktop-app::external_hunspell
)
target_prepare_qrc(external_sonnet)
add_executable(external_sonnet_parsetrigrams)
init_target(external_sonnet_parsetrigrams "(external)")
nice_target_sources(external_sonnet_parsetrigrams ${sonnet_data_loc}
PRIVATE
parsetrigrams.cpp
)
target_link_libraries(external_sonnet_parsetrigrams
PRIVATE
desktop-app::external_qt
)
include(generate_trigrams.cmake)
generate_trigrams(external_sonnet ${sonnet_data_loc}/trigrams)