diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt --- a/data/CMakeLists.txt +++ b/data/CMakeLists.txt @@ -20,18 +20,3 @@ else() add_executable(KF5::parsetrigrams ALIAS parsetrigrams) endif() - -function(create_trigrams_map _target_name _in_DIR _out_FILE) - add_custom_target(trigrams_${_target_name} ALL) - add_custom_command(TARGET trigrams_${_target_name} - COMMAND $ "${_in_DIR}" > "${_out_FILE}" - ) - - add_dependencies(trigrams_${_target_name} parsetrigrams) -endfunction(create_trigrams_map) - -create_trigrams_map(sonnet - ${CMAKE_SOURCE_DIR}/data/trigrams - ${CMAKE_CURRENT_BINARY_DIR}/trigrams.map - ) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/trigrams.map DESTINATION ${KDE_INSTALL_DATADIR_KF5}/sonnet/) diff --git a/data/trigrams.qrc.in b/data/trigrams.qrc.in new file mode 100644 --- /dev/null +++ b/data/trigrams.qrc.in @@ -0,0 +1,6 @@ + + + +@CMAKE_BINARY_DIR@/data/trigrams.map + + diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -13,6 +13,13 @@ languagefilter.cpp ) +# create trigrams file + add trigrams resource +add_custom_command(OUTPUT "${CMAKE_BINARY_DIR}/data/trigrams.map" + DEPENDS parsetrigrams + COMMAND $ "${CMAKE_SOURCE_DIR}/data/trigrams" > "${CMAKE_BINARY_DIR}/data/trigrams.map") +configure_file(${CMAKE_SOURCE_DIR}/data/trigrams.qrc.in ${CMAKE_BINARY_DIR}/data/trigrams.qrc @ONLY) +qt5_add_resources(sonnetcore_SRCS "${CMAKE_BINARY_DIR}/data/trigrams.qrc") + ecm_qt_declare_logging_category(sonnetcore_SRCS HEADER core_debug.h IDENTIFIER SONNET_LOG_CORE CATEGORY_NAME sonnet.core) # Dear packagers, this is just used as an extra search paths for plugins. Don't get your panties in a twist. diff --git a/src/core/guesslanguage.cpp b/src/core/guesslanguage.cpp --- a/src/core/guesslanguage.cpp +++ b/src/core/guesslanguage.cpp @@ -624,19 +624,8 @@ void GuessLanguagePrivate::loadModels() { - QString triMapFile - = QStandardPaths::locate(QStandardPaths::GenericDataLocation, QStringLiteral( - "kf5/sonnet/trigrams.map")); - - if (triMapFile.isEmpty()) { -#ifdef Q_OS_WIN - triMapFile = QStringLiteral("%1/data/kf5/sonnet/trigrams.map").arg( - QCoreApplication::applicationDirPath()); -#else - triMapFile = QStringLiteral("%1/../share/kf5/sonnet/trigrams.map").arg( - QCoreApplication::applicationDirPath()); -#endif - } + // use trigrams from resource file, easy to deploy on all platforms + const QString triMapFile = QStringLiteral(":/org.kde.sonnet/trigrams.map"); qCDebug(SONNET_LOG_CORE) << "Loading trigrams from" << triMapFile; QFile sin(triMapFile);