diff --git a/addons/CMakeLists.txt b/addons/CMakeLists.txt index d6f473c9e..4fac3b53c 100644 --- a/addons/CMakeLists.txt +++ b/addons/CMakeLists.txt @@ -1,62 +1,27 @@ -find_package( - KF5 ${KF5_DEP_VERSION} - OPTIONAL_COMPONENTS - GuiAddons - IconThemes - ItemModels - NewStuff - Plasma - Service - Wallet - ThreadWeaver -) - -set_package_properties(KF5Wallet PROPERTIES PURPOSE "Required to build the katesql addon") -set_package_properties(KF5Plasma PROPERTIES PURPOSE "Required to build the sessionapplet addon") -set_package_properties(KF5Service PROPERTIES PURPOSE "Required to build the sessionapplet addon") -set_package_properties(KF5ItemModels PROPERTIES PURPOSE "Required to build the project, konsole addon") -set_package_properties(KF5ThreadWeaver PROPERTIES PURPOSE "Required to build the project addon") -set_package_properties(KF5NewStuff PROPERTIES PURPOSE "Required to build the snippets and project addons") - -ecm_optional_add_subdirectory(filetree) # document switcher -ecm_optional_add_subdirectory(search) # Search in open documents and files. -ecm_optional_add_subdirectory(tabswitcher) # ALT+Tab like tab switcher -ecm_optional_add_subdirectory(kate-ctags) # ctags -ecm_optional_add_subdirectory(backtracebrowser) # backtrace -ecm_optional_add_subdirectory(filebrowser) # file browser -ecm_optional_add_subdirectory(xmltools) # XML completion -ecm_optional_add_subdirectory(xmlcheck) # XML Validation plugin +# Most plugins will need to link against KF5TextEditor to have access to its plugin interface. +find_package(KF5TextEditor QUIET REQUIRED) + +ecm_optional_add_subdirectory(backtracebrowser) +ecm_optional_add_subdirectory(close-except-like) # Close all documents except this one (or similar). +ecm_optional_add_subdirectory(filebrowser) +ecm_optional_add_subdirectory(filetree) +ecm_optional_add_subdirectory(gdbplugin) +ecm_optional_add_subdirectory(kate-ctags) +ecm_optional_add_subdirectory(katebuild-plugin) +ecm_optional_add_subdirectory(katesql) +ecm_optional_add_subdirectory(konsole) +ecm_optional_add_subdirectory(lspclient) # Language Server Protocol (LSP) client plugin. +ecm_optional_add_subdirectory(lumen) # D completion ecm_optional_add_subdirectory(openheader) # Open header matching to current file. +ecm_optional_add_subdirectory(preview) # Live preview of sources in target format. +ecm_optional_add_subdirectory(project) # Small & smart project manager. +ecm_optional_add_subdirectory(replicode) +ecm_optional_add_subdirectory(rustcompletion) +ecm_optional_add_subdirectory(search) +ecm_optional_add_subdirectory(sessionapplet) +ecm_optional_add_subdirectory(snippets) ecm_optional_add_subdirectory(symbolviewer) # List symbols and functions in a file. -ecm_optional_add_subdirectory(replicode) # replicode integration +ecm_optional_add_subdirectory(tabswitcher) # ALT+Tab like tab switcher. ecm_optional_add_subdirectory(textfilter) # Pipe text through some external command. -ecm_optional_add_subdirectory(rustcompletion) # Rust complection plugin -ecm_optional_add_subdirectory(lumen) # D completion plugin -ecm_optional_add_subdirectory(lspclient) # Language Server Protocol (LSP) client plugin. -ecm_optional_add_subdirectory(katebuild-plugin) # build plugin -ecm_optional_add_subdirectory(close-except-like) # Close document except this one (or similar). -ecm_optional_add_subdirectory (preview) # Live preview of sources in target format. - -if(NOT WIN32) - ecm_optional_add_subdirectory(gdbplugin) # Debugger plugin. Hasn't been ported to Windows yet. -endif() - -if(KF5Wallet_FOUND) - ecm_optional_add_subdirectory(katesql) # kate sql -endif() - -if(KF5NewStuff_FOUND) - ecm_optional_add_subdirectory (snippets) # snippets -endif() - -if(KF5Service_FOUND AND NOT WIN32) - ecm_optional_add_subdirectory (konsole) # terminal tool view -endif() - -if(KF5ItemModels_FOUND AND KF5ThreadWeaver_FOUND AND KF5NewStuff_FOUND) - ecm_optional_add_subdirectory (project) # Small & smart project manager. -endif() - -if(KF5Plasma_FOUND AND KF5Service_FOUND) - ecm_optional_add_subdirectory (sessionapplet) -endif() +ecm_optional_add_subdirectory(xmlcheck) # XML Validation plugin +ecm_optional_add_subdirectory(xmltools) # XML completion diff --git a/addons/backtracebrowser/CMakeLists.txt b/addons/backtracebrowser/CMakeLists.txt index db14d5081..142fe94ae 100644 --- a/addons/backtracebrowser/CMakeLists.txt +++ b/addons/backtracebrowser/CMakeLists.txt @@ -1,30 +1,24 @@ set(katebacktracebrowserplugin_PART_SRCS katebacktracebrowser.cpp btparser.cpp btfileindexer.cpp btdatabase.cpp ) set(katebacktracebrowserplugin_PART_UI btbrowserwidget.ui btconfigwidget.ui ) ki18n_wrap_ui(katebacktracebrowserplugin_PART_SRCS ${katebacktracebrowserplugin_PART_UI}) add_library(katebacktracebrowserplugin MODULE ${katebacktracebrowserplugin_PART_SRCS}) target_compile_definitions(katebacktracebrowserplugin PRIVATE TRANSLATION_DOMAIN="katebacktracebrowserplugin") - -target_link_libraries( - katebacktracebrowserplugin - PRIVATE - KF5::TextEditor - KF5::I18n -) +target_link_libraries(katebacktracebrowserplugin PRIVATE KF5::TextEditor) kcoreaddons_desktop_to_json(katebacktracebrowserplugin katebacktracebrowserplugin.desktop) install(TARGETS katebacktracebrowserplugin DESTINATION ${PLUGIN_INSTALL_DIR}/ktexteditor) if(BUILD_TESTING) add_subdirectory(autotests) endif() diff --git a/addons/backtracebrowser/autotests/CMakeLists.txt b/addons/backtracebrowser/autotests/CMakeLists.txt index 3b360d8fe..72f239dcd 100644 --- a/addons/backtracebrowser/autotests/CMakeLists.txt +++ b/addons/backtracebrowser/autotests/CMakeLists.txt @@ -1,19 +1,20 @@ include(ECMMarkAsTest) add_executable(btbrowser_test "") target_include_directories(btbrowser_test PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/..) +find_package(Qt5Test QUIET REQUIRED) target_link_libraries( btbrowser_test PRIVATE kdeinit_kate Qt5::Test ) target_sources(btbrowser_test PRIVATE btbrowsertest.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../btparser.cpp ) add_test(NAME plugin-btbrowser_test COMMAND btbrowser_test) ecm_mark_as_test(btbrowser_test) diff --git a/addons/close-except-like/.kateconfig b/addons/close-except-like/.kateconfig deleted file mode 100644 index 6049b6ed9..000000000 --- a/addons/close-except-like/.kateconfig +++ /dev/null @@ -1 +0,0 @@ -kate: space-indent on; tab-width 4; indent-width 4; replace-tabs on; hl C++/Qt4; diff --git a/addons/close-except-like/CMakeLists.txt b/addons/close-except-like/CMakeLists.txt index 4b155ea20..31ee7fae6 100644 --- a/addons/close-except-like/CMakeLists.txt +++ b/addons/close-except-like/CMakeLists.txt @@ -1,24 +1,29 @@ +find_package(KF5IconThemes QUIET) +set_package_properties(KF5IconThemes PROPERTIES PURPOSE "Required to build the close-except-like addon") + +if(NOT KF5IconThemes_FOUND) + return() +endif() + set(KATE_CLOSE_EXCEPT_PLUGIN_SOURCES close_confirm_dialog.cpp close_except_plugin.cpp plugin.qrc ) set(KATE_CLOSE_EXCEPT_PLUGIN_UI close_confirm_dialog.ui) ki18n_wrap_ui(KATE_CLOSE_EXCEPT_PLUGIN_SOURCES ${KATE_CLOSE_EXCEPT_PLUGIN_UI}) add_library(katecloseexceptplugin MODULE ${KATE_CLOSE_EXCEPT_PLUGIN_SOURCES}) target_compile_definitions(katecloseexceptplugin PRIVATE TRANSLATION_DOMAIN="katecloseexceptplugin") target_link_libraries( katecloseexceptplugin PRIVATE KF5::TextEditor - KF5::Parts - KF5::I18n KF5::IconThemes ) kcoreaddons_desktop_to_json(katecloseexceptplugin katecloseexceptplugin.desktop) install(TARGETS katecloseexceptplugin DESTINATION ${PLUGIN_INSTALL_DIR}/ktexteditor) diff --git a/addons/filebrowser/CMakeLists.txt b/addons/filebrowser/CMakeLists.txt index f96411e99..102b45f92 100644 --- a/addons/filebrowser/CMakeLists.txt +++ b/addons/filebrowser/CMakeLists.txt @@ -1,22 +1,26 @@ +find_package(KF5KIO QUIET) +set_package_properties(KF5KIO PROPERTIES PURPOSE "Required to build the filebrowser addon") + +if(NOT KF5KIO_FOUND) + return() +endif() + set(katefilebrowserplugin_PART_SRCS katefilebrowserplugin.cpp katefilebrowserconfig.cpp katefilebrowser.cpp katebookmarkhandler.cpp ) add_library(katefilebrowserplugin MODULE ${katefilebrowserplugin_PART_SRCS}) target_compile_definitions(katefilebrowserplugin PRIVATE TRANSLATION_DOMAIN="katefilebrowserplugin") target_link_libraries( katefilebrowserplugin PRIVATE KF5::TextEditor - KF5::KIOCore - KF5::KIOFileWidgets - KF5::KIOWidgets - KF5::I18n + KF5::KIOFileWidgets ) kcoreaddons_desktop_to_json(katefilebrowserplugin katefilebrowserplugin.desktop) install(TARGETS katefilebrowserplugin DESTINATION ${PLUGIN_INSTALL_DIR}/ktexteditor) diff --git a/addons/filetree/CMakeLists.txt b/addons/filetree/CMakeLists.txt index f646f7c36..1e3b8c50b 100644 --- a/addons/filetree/CMakeLists.txt +++ b/addons/filetree/CMakeLists.txt @@ -1,42 +1,47 @@ +find_package(KF5GuiAddons QUIET) +set_package_properties(KF5GuiAddons PROPERTIES PURPOSE "Required to build the katefiletree addon") + +if(NOT KF5GuiAddons_FOUND) + return() +endif() + add_library(katefiletree STATIC "") set_target_properties(katefiletree PROPERTIES POSITION_INDEPENDENT_CODE TRUE) -# PUBLIC so that katefiletreeplugin inherits these usage requirements. +# PUBLIC so that `katefiletreeplugin` inherits these usage requirements. target_compile_definitions(katefiletree PUBLIC TRANSLATION_DOMAIN="katefiletree") target_link_libraries( katefiletree PUBLIC KF5::TextEditor - KF5::I18n KF5::GuiAddons - KF5::IconThemes ) target_sources( katefiletree PRIVATE katefiletree.cpp katefiletreemodel.cpp katefiletreeproxymodel.cpp plugin.qrc ) add_library(katefiletreeplugin MODULE "") target_link_libraries(katefiletreeplugin PRIVATE katefiletree) target_sources( katefiletreeplugin PRIVATE katefiletreeplugin.cpp katefiletreeconfigpage.cpp katefiletreepluginsettings.cpp plugin.qrc ) kcoreaddons_desktop_to_json(katefiletreeplugin katefiletreeplugin.desktop) install(TARGETS katefiletreeplugin DESTINATION ${PLUGIN_INSTALL_DIR}/ktexteditor) if(BUILD_TESTING) add_subdirectory(autotests) endif() diff --git a/addons/filetree/autotests/CMakeLists.txt b/addons/filetree/autotests/CMakeLists.txt index 52a115a1d..a5fa6212b 100644 --- a/addons/filetree/autotests/CMakeLists.txt +++ b/addons/filetree/autotests/CMakeLists.txt @@ -1,20 +1,21 @@ include(ECMMarkAsTest) add_executable(filetree_model_test "") +find_package(Qt5Test QUIET REQUIRED) target_link_libraries( filetree_model_test PRIVATE katefiletree Qt5::Test ) target_sources( filetree_model_test PRIVATE filetree_model_test.cpp document_dummy.cpp ) add_test(NAME kateapp-filetree_model_test COMMAND filetree_model_test) ecm_mark_as_test(filetree_model_test) diff --git a/addons/gdbplugin/CMakeLists.txt b/addons/gdbplugin/CMakeLists.txt index d58386f4f..d9bed0c52 100644 --- a/addons/gdbplugin/CMakeLists.txt +++ b/addons/gdbplugin/CMakeLists.txt @@ -1,25 +1,23 @@ +# Hasn't been ported to Windows yet. +if(WIN32) + return() +endif() + set(kategdbplugin_PART_SRCS plugin_kategdb.cpp debugview.cpp configview.cpp ioview.cpp localsview.cpp advanced_settings.cpp plugin.qrc ) ki18n_wrap_ui(kategdbplugin_PART_SRCS advanced_settings.ui) add_library(kategdbplugin MODULE ${kategdbplugin_PART_SRCS}) target_compile_definitions(kategdbplugin PRIVATE TRANSLATION_DOMAIN="kategdbplugin") - -target_link_libraries( - kategdbplugin - PRIVATE - KF5::TextEditor - KF5::I18n - KF5::IconThemes -) +target_link_libraries(kategdbplugin PRIVATE KF5::TextEditor) kcoreaddons_desktop_to_json(kategdbplugin kategdbplugin.desktop) install(TARGETS kategdbplugin DESTINATION ${PLUGIN_INSTALL_DIR}/ktexteditor) diff --git a/addons/kate-ctags/CMakeLists.txt b/addons/kate-ctags/CMakeLists.txt index 58f5adf33..48a0a4536 100644 --- a/addons/kate-ctags/CMakeLists.txt +++ b/addons/kate-ctags/CMakeLists.txt @@ -1,33 +1,26 @@ include(ECMQtDeclareLoggingCategory) set(ctagsplugin_SRC readtags.c tags.cpp ctagskinds.cpp kate_ctags_view.cpp kate_ctags_plugin.cpp plugin.qrc ) ecm_qt_declare_logging_category( ctagsplugin_SRC HEADER kate_ctags_debug.h IDENTIFIER KTECTAGS CATEGORY_NAME "katectagsplugin" ) ki18n_wrap_ui(ctagsplugin_SRC kate_ctags.ui CTagsGlobalConfig.ui) add_library(katectagsplugin MODULE ${ctagsplugin_SRC}) target_compile_definitions(katectagsplugin PRIVATE TRANSLATION_DOMAIN="kate-ctags-plugin") - -target_link_libraries( - katectagsplugin - PRIVATE - KF5::TextEditor - KF5::I18n - KF5::IconThemes -) +target_link_libraries(katectagsplugin PRIVATE KF5::TextEditor) kcoreaddons_desktop_to_json(katectagsplugin katectagsplugin.desktop) install(TARGETS katectagsplugin DESTINATION ${PLUGIN_INSTALL_DIR}/ktexteditor) diff --git a/addons/katebuild-plugin/CMakeLists.txt b/addons/katebuild-plugin/CMakeLists.txt index 2a7ffedf0..a6d70c830 100644 --- a/addons/katebuild-plugin/CMakeLists.txt +++ b/addons/katebuild-plugin/CMakeLists.txt @@ -1,25 +1,18 @@ set(katebuild_SRCS plugin_katebuild.cpp targets.cpp TargetHtmlDelegate.cpp TargetModel.cpp UrlInserter.cpp SelectTargetView.cpp plugin.qrc ) ki18n_wrap_ui(katebuild_SRCS build.ui SelectTargetUi.ui) add_library(katebuildplugin MODULE ${katebuild_SRCS}) target_compile_definitions(katebuildplugin PRIVATE TRANSLATION_DOMAIN="katebuild-plugin") - -target_link_libraries( - katebuildplugin - PRIVATE - KF5::TextEditor - KF5::I18n - KF5::IconThemes -) +target_link_libraries(katebuildplugin PRIVATE KF5::TextEditor) kcoreaddons_desktop_to_json (katebuildplugin katebuildplugin.desktop) install(TARGETS katebuildplugin DESTINATION ${PLUGIN_INSTALL_DIR}/ktexteditor) diff --git a/addons/katesql/CMakeLists.txt b/addons/katesql/CMakeLists.txt index e3bde3702..a548130df 100644 --- a/addons/katesql/CMakeLists.txt +++ b/addons/katesql/CMakeLists.txt @@ -1,37 +1,45 @@ -set(katesql_SRCS - katesqlplugin.cpp - katesqlview.cpp - connectionmodel.cpp - sqlmanager.cpp - cachedsqlquerymodel.cpp - dataoutputmodel.cpp - dataoutputview.cpp - dataoutputwidget.cpp - textoutputwidget.cpp - schemawidget.cpp - schemabrowserwidget.cpp - connectionwizard.cpp - katesqlconfigpage.cpp - exportwizard.cpp - outputstylewidget.cpp - outputwidget.cpp - plugin.qrc -) +find_package(KF5Wallet QUIET) +set_package_properties(KF5Wallet PROPERTIES PURPOSE "Required to build the katesql addon") + +find_package(Qt5Sql QUIET) +set_package_properties(Qt5Sql PROPERTIES PURPOSE "Required to build the katesql addon") + +if(NOT KF5Wallet_FOUND OR NOT Qt5Sql_FOUND) + return() +endif() -add_library(katesqlplugin MODULE ${katesql_SRCS}) +add_library(katesqlplugin MODULE "") target_compile_definitions(katesqlplugin PRIVATE TRANSLATION_DOMAIN="katesql") target_link_libraries( katesqlplugin PRIVATE - Qt5::Sql KF5::TextEditor - KF5::Parts - KF5::I18n KF5::Wallet - KF5::ItemViews - KF5::IconThemes + Qt5::Sql +) + +target_sources( + katesqlplugin + PRIVATE + katesqlplugin.cpp + katesqlview.cpp + connectionmodel.cpp + sqlmanager.cpp + cachedsqlquerymodel.cpp + dataoutputmodel.cpp + dataoutputview.cpp + dataoutputwidget.cpp + textoutputwidget.cpp + schemawidget.cpp + schemabrowserwidget.cpp + connectionwizard.cpp + katesqlconfigpage.cpp + exportwizard.cpp + outputstylewidget.cpp + outputwidget.cpp + plugin.qrc ) kcoreaddons_desktop_to_json(katesqlplugin katesql.desktop) -install(TARGETS katesqlplugin DESTINATION ${PLUGIN_INSTALL_DIR}/ktexteditor ) +install(TARGETS katesqlplugin DESTINATION ${PLUGIN_INSTALL_DIR}/ktexteditor) diff --git a/addons/konsole/CMakeLists.txt b/addons/konsole/CMakeLists.txt index 450f72ed3..7dc6a8ecb 100644 --- a/addons/konsole/CMakeLists.txt +++ b/addons/konsole/CMakeLists.txt @@ -1,22 +1,17 @@ +if(WIN32) + return() +endif() + add_library(katekonsoleplugin MODULE "") target_compile_definitions(katekonsoleplugin PRIVATE TRANSLATION_DOMAIN="katekonsoleplugin") - -target_link_libraries( - katekonsoleplugin - PRIVATE - KF5::TextEditor - KF5::Parts - KF5::IconThemes - KF5::I18n - KF5::Service -) +target_link_libraries(katekonsoleplugin PRIVATE KF5::TextEditor) target_sources( katekonsoleplugin PRIVATE kateconsole.cpp plugin.qrc ) kcoreaddons_desktop_to_json(katekonsoleplugin katekonsoleplugin.desktop) install(TARGETS katekonsoleplugin DESTINATION ${PLUGIN_INSTALL_DIR}/ktexteditor) diff --git a/addons/lspclient/CMakeLists.txt b/addons/lspclient/CMakeLists.txt index e2897dc08..58aa2a21f 100644 --- a/addons/lspclient/CMakeLists.txt +++ b/addons/lspclient/CMakeLists.txt @@ -1,39 +1,43 @@ -include(ECMQtDeclareLoggingCategory) +find_package(KF5ItemModels QUIET) +set_package_properties(KF5ItemModels PROPERTIES PURPOSE "Required to build the lspclient addon") + +if(NOT KF5ItemModels_FOUND) + return() +endif() set(lspclientplugin_SRCS lspclientcompletion.cpp lspclientconfigpage.cpp lspclienthover.cpp lspclientplugin.cpp lspclientpluginview.cpp lspclientserver.cpp lspclientservermanager.cpp lspclientsymbolview.cpp plugin.qrc ) +include(ECMQtDeclareLoggingCategory) ecm_qt_declare_logging_category( lspclientplugin_debug_SRCS HEADER lspclient_debug.h IDENTIFIER LSPCLIENT CATEGORY_NAME "katelspclientplugin" ) add_library(lspclientplugin MODULE ${lspclientplugin_SRCS} ${lspclientplugin_debug_SRCS}) target_compile_definitions(lspclientplugin PRIVATE TRANSLATION_DOMAIN="lspclient") target_link_libraries( lspclientplugin - PRIVATE - KF5::TextEditor - KF5::XmlGui - KF5::ItemViews + PRIVATE KF5::ItemModels + KF5::TextEditor ) kcoreaddons_desktop_to_json(lspclientplugin lspclientplugin.desktop) install(TARGETS lspclientplugin DESTINATION ${PLUGIN_INSTALL_DIR}/ktexteditor) if(BUILD_TESTING) add_subdirectory(tests) endif() diff --git a/addons/lspclient/tests/CMakeLists.txt b/addons/lspclient/tests/CMakeLists.txt index f0e6a334d..8f57e6051 100644 --- a/addons/lspclient/tests/CMakeLists.txt +++ b/addons/lspclient/tests/CMakeLists.txt @@ -1,17 +1,11 @@ add_executable(lsptestapp "") target_include_directories(lsptestapp PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/..) - -target_link_libraries( - lsptestapp - PRIVATE - KF5::TextEditor - Qt5::Core -) +target_link_libraries(lsptestapp PRIVATE KF5::TextEditor) target_sources( lsptestapp PRIVATE lsptestapp.cpp ../lspclientserver.cpp ${lspclientplugin_debug_SRCS} ) diff --git a/addons/lumen/CMakeLists.txt b/addons/lumen/CMakeLists.txt index 9d73b2ca6..b6614c029 100644 --- a/addons/lumen/CMakeLists.txt +++ b/addons/lumen/CMakeLists.txt @@ -1,18 +1,14 @@ add_library(ktexteditor_lumen MODULE "") target_compile_definitions(ktexteditor_lumen PRIVATE TRANSLATION_DOMAIN="ktexteditor_lumen") - -target_link_libraries( - ktexteditor_lumen - PRIVATE KF5::TextEditor -) +target_link_libraries(ktexteditor_lumen PRIVATE KF5::TextEditor) target_sources( ktexteditor_lumen PRIVATE lumen.cpp dcd.cpp completion.cpp ) kcoreaddons_desktop_to_json(ktexteditor_lumen ktexteditor_lumen.desktop) install(TARGETS ktexteditor_lumen DESTINATION ${PLUGIN_INSTALL_DIR}/ktexteditor) diff --git a/addons/openheader/CMakeLists.txt b/addons/openheader/CMakeLists.txt index e8d5b8ef5..badfe43fc 100644 --- a/addons/openheader/CMakeLists.txt +++ b/addons/openheader/CMakeLists.txt @@ -1,20 +1,13 @@ add_library(kateopenheaderplugin MODULE "") target_compile_definitions(kateopenheaderplugin PRIVATE TRANSLATION_DOMAIN="kateopenheader") - -target_link_libraries( - kateopenheaderplugin - PRIVATE - KF5::TextEditor - KF5::I18n - KF5::Parts -) +target_link_libraries(kateopenheaderplugin PRIVATE KF5::TextEditor) target_sources( kateopenheaderplugin PRIVATE plugin_kateopenheader.cpp plugin.qrc ) kcoreaddons_desktop_to_json(kateopenheaderplugin kateopenheaderplugin.desktop) install(TARGETS kateopenheaderplugin DESTINATION ${PLUGIN_INSTALL_DIR}/ktexteditor) diff --git a/addons/preview/CMakeLists.txt b/addons/preview/CMakeLists.txt index f5fbb1e17..e4066decf 100644 --- a/addons/preview/CMakeLists.txt +++ b/addons/preview/CMakeLists.txt @@ -1,27 +1,21 @@ include(ECMQtDeclareLoggingCategory) set(ktexteditorpreviewplugin_SRCS ktexteditorpreviewplugin.cpp ktexteditorpreviewview.cpp previewwidget.cpp kpartview.cpp ) ecm_qt_declare_logging_category( ktexteditorpreviewplugin_SRCS HEADER ktexteditorpreview_debug.h IDENTIFIER KTEPREVIEW CATEGORY_NAME "ktexteditorpreviewplugin" ) add_library(ktexteditorpreviewplugin MODULE ${ktexteditorpreviewplugin_SRCS}) target_compile_definitions(ktexteditorpreviewplugin PRIVATE TRANSLATION_DOMAIN="ktexteditorpreviewplugin") - -target_link_libraries( - ktexteditorpreviewplugin - PRIVATE - KF5::TextEditor - KF5::I18n -) +target_link_libraries(ktexteditorpreviewplugin PRIVATE KF5::TextEditor) install(TARGETS ktexteditorpreviewplugin DESTINATION ${KDE_INSTALL_PLUGINDIR}/ktexteditor) diff --git a/addons/project/CMakeLists.txt b/addons/project/CMakeLists.txt index 425420d0a..cdc9f6946 100644 --- a/addons/project/CMakeLists.txt +++ b/addons/project/CMakeLists.txt @@ -1,59 +1,71 @@ -find_package(KF5NewStuff ${KF5_DEP_VERSION} REQUIRED) # For KMoreTools +find_package( + KF5 + QUIET + COMPONENTS + GuiAddons + NewStuff + ThreadWeaver +) + +set_package_properties(KFGuiAddons PROPERTIES PURPOSE "Required to build the project addon") +set_package_properties(KF5NewStuff PROPERTIES PURPOSE "Required to build the project addon") +set_package_properties(KF5ThreadWeaver PROPERTIES PURPOSE "Required to build the project addon") + +if(NOT KF5_FOUND) + return() +endif() add_library(kateprojectplugin MODULE "") target_compile_definitions(kateprojectplugin PRIVATE TRANSLATION_DOMAIN="kateproject") target_link_libraries( kateprojectplugin PRIVATE - KF5::TextEditor - KF5::Parts - KF5::I18n KF5::GuiAddons - KF5::ItemViews - KF5::ItemModels - KF5::IconThemes - KF5::ThreadWeaver KF5::NewStuff + KF5::TextEditor + KF5::ThreadWeaver ) +include(CheckFunctionExists) check_function_exists(ctermid HAVE_CTERMID) + if(HAVE_CTERMID) target_compile_definitions(kateprojectplugin PRIVATE HAVE_CTERMID) endif() target_sources( kateprojectplugin PRIVATE fileutil.cpp kateprojectplugin.cpp kateprojectpluginview.cpp kateproject.cpp kateprojectworker.cpp kateprojectitem.cpp kateprojectview.cpp kateprojectviewtree.cpp kateprojecttreeviewcontextmenu.cpp kateprojectinfoview.cpp kateprojectcompletion.cpp kateprojectindex.cpp kateprojectinfoviewindex.cpp kateprojectinfoviewterminal.cpp kateprojectinfoviewcodeanalysis.cpp kateprojectinfoviewnotes.cpp kateprojectconfigpage.cpp kateprojectcodeanalysistool.cpp tools/kateprojectcodeanalysistoolcppcheck.cpp tools/kateprojectcodeanalysistoolflake8.cpp tools/kateprojectcodeanalysistoolshellcheck.cpp tools/kateprojectcodeanalysisselector.cpp plugin.qrc ) kcoreaddons_desktop_to_json(kateprojectplugin kateprojectplugin.desktop) install(TARGETS kateprojectplugin DESTINATION ${PLUGIN_INSTALL_DIR}/ktexteditor) install(FILES kateproject.example DESTINATION ${DATA_INSTALL_DIR}/kateproject) if(BUILD_TESTING) add_subdirectory(autotests) endif() diff --git a/addons/project/autotests/CMakeLists.txt b/addons/project/autotests/CMakeLists.txt index a9d8bc04e..71cf1f2db 100644 --- a/addons/project/autotests/CMakeLists.txt +++ b/addons/project/autotests/CMakeLists.txt @@ -1,23 +1,24 @@ include(ECMMarkAsTest) add_executable(projectplugin_test "") target_include_directories(projectplugin_test PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/..) +find_package(Qt5Test QUIET REQUIRED) target_link_libraries( projectplugin_test PRIVATE kdeinit_kate Qt5::Test ) target_sources( projectplugin_test PRIVATE test1.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../fileutil.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../kateprojectcodeanalysistool.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../tools/kateprojectcodeanalysistoolshellcheck.cpp ) add_test(NAME plugin-project_test COMMAND projectplugin_test) ecm_mark_as_test(projectplugin_test) diff --git a/addons/replicode/CMakeLists.txt b/addons/replicode/CMakeLists.txt index ec8f84382..6345f6dc9 100644 --- a/addons/replicode/CMakeLists.txt +++ b/addons/replicode/CMakeLists.txt @@ -1,24 +1,30 @@ +find_package(KF5IconThemes QUIET) +set_package_properties(KF5IconThemes PROPERTIES PURPOSE "Required to build the replicode addon") + +if(NOT KF5IconThemes_FOUND) + return() +endif() + set(katereplicode_SRCS replicodeplugin.cpp replicodeconfigpage.cpp replicodeconfig.cpp replicodesettings.cpp replicodeview.cpp plugin.qrc ) ki18n_wrap_ui(katereplicode_SRCS config.ui) add_library(katereplicodeplugin MODULE ${katereplicode_SRCS}) target_compile_definitions(katereplicodeplugin PRIVATE TRANSLATION_DOMAIN="kate-replicode-plugin") target_link_libraries( katereplicodeplugin PRIVATE KF5::TextEditor KF5::IconThemes - KF5::I18n ) kcoreaddons_desktop_to_json(katereplicodeplugin katereplicodeplugin.desktop) install(TARGETS katereplicodeplugin DESTINATION ${PLUGIN_INSTALL_DIR}/ktexteditor) diff --git a/addons/rustcompletion/CMakeLists.txt b/addons/rustcompletion/CMakeLists.txt index 18df1f9de..2176bca51 100644 --- a/addons/rustcompletion/CMakeLists.txt +++ b/addons/rustcompletion/CMakeLists.txt @@ -1,22 +1,16 @@ add_library(kterustcompletionplugin MODULE ${kterustcompletion_SRCS}) target_compile_definitions(kterustcompletionplugin PRIVATE TRANSLATION_DOMAIN="kterustcompletion") - -target_link_libraries( - kterustcompletionplugin - PRIVATE - KF5::TextEditor - KF5::XmlGui -) +target_link_libraries(kterustcompletionplugin PRIVATE KF5::TextEditor) target_sources( kterustcompletionplugin PRIVATE kterustcompletion.cpp kterustcompletionconfigpage.cpp kterustcompletionplugin.cpp kterustcompletionpluginview.cpp plugin.qrc ) kcoreaddons_desktop_to_json(kterustcompletionplugin kterustcompletionplugin.desktop) install(TARGETS kterustcompletionplugin DESTINATION ${PLUGIN_INSTALL_DIR}/ktexteditor) diff --git a/addons/search/CMakeLists.txt b/addons/search/CMakeLists.txt index 86f45646c..bcc281882 100644 --- a/addons/search/CMakeLists.txt +++ b/addons/search/CMakeLists.txt @@ -1,25 +1,31 @@ +find_package(KF5ItemViews QUIET) +set_package_properties(KF5ItemViews PROPERTIES PURPOSE "Required to build the search addon") + +if(NOT KF5ItemViews_FOUND) + return() +endif() + set(katesearchplugin_PART_SRCS plugin_search.cpp search_open_files.cpp SearchDiskFiles.cpp FolderFilesList.cpp replace_matches.cpp htmldelegate.cpp plugin.qrc ) ki18n_wrap_ui(katesearchplugin_PART_SRCS search.ui results.ui) add_library(katesearchplugin MODULE ${katesearchplugin_PART_SRCS}) target_compile_definitions(katesearchplugin PRIVATE TRANSLATION_DOMAIN="katesearch") target_link_libraries( katesearchplugin PRIVATE - KF5::TextEditor - KF5::Parts KF5::I18n KF5::IconThemes KF5::ItemViews + KF5::TextEditor ) kcoreaddons_desktop_to_json(katesearchplugin katesearch.desktop) install(TARGETS katesearchplugin DESTINATION ${PLUGIN_INSTALL_DIR}/ktexteditor) diff --git a/addons/sessionapplet/CMakeLists.txt b/addons/sessionapplet/CMakeLists.txt index 480a6fbc0..b3db5ec98 100644 --- a/addons/sessionapplet/CMakeLists.txt +++ b/addons/sessionapplet/CMakeLists.txt @@ -1,2 +1,36 @@ +find_package(KF5Plasma QUIET) +set_package_properties(KF5Plasma PROPERTIES PURPOSE "Required to build the sessionapplet addon") + +find_package(Qt5Widgets QUIET) +set_package_properties(Qt5Widgets PROPERTIES PURPOSE "Required to build the sessionapplet addon") + +if(NOT KF5Plasma_FOUND OR NOT Qt5Widgets_FOUND) + return() +endif() + +add_library(plasma_engine_katesessions MODULE ${plasma_engine_katesessions_SRCS}) +target_compile_definitions(plasma_engine_katesessions PRIVATE TRANSLATION_DOMAIN="plasma_applet_org.kde.plasma.katesessions") + +target_link_libraries( + plasma_engine_katesessions + PRIVATE + KF5::I18n + KF5::Plasma + Qt5::Widgets +) + +target_sources( + plasma_engine_katesessions + PRIVATE + katesessionsengine.cpp + katesessionsmodel.cpp + katesessionsjob.cpp + katesessionsservice.cpp +) + plasma_install_package(applet org.kde.plasma.katesessions) -add_subdirectory(engine) +kcoreaddons_desktop_to_json(plasma_engine_katesessions plasma-dataengine-katesessions.desktop) +install(TARGETS plasma_engine_katesessions DESTINATION ${PLUGIN_INSTALL_DIR}/plasma/dataengine) +install(FILES plasma-dataengine-katesessions.desktop DESTINATION ${SERVICES_INSTALL_DIR}) +install(FILES org.kde.plasma.katesessions.operations DESTINATION ${PLASMA_DATA_INSTALL_DIR}/services) + diff --git a/addons/sessionapplet/engine/CMakeLists.txt b/addons/sessionapplet/engine/CMakeLists.txt deleted file mode 100644 index c3c96c0e0..000000000 --- a/addons/sessionapplet/engine/CMakeLists.txt +++ /dev/null @@ -1,27 +0,0 @@ -add_library(plasma_engine_katesessions MODULE ${plasma_engine_katesessions_SRCS}) -target_compile_definitions(plasma_engine_katesessions PRIVATE TRANSLATION_DOMAIN="plasma_applet_org.kde.plasma.katesessions") - -target_link_libraries( - plasma_engine_katesessions - PRIVATE - Qt5::Widgets # QAction - KF5::IconThemes - KF5::Plasma - KF5::Service - KF5::I18n -) - -target_sources( - plasma_engine_katesessions - PRIVATE - katesessionsengine.cpp - katesessionsmodel.cpp - katesessionsjob.cpp - katesessionsservice.cpp -) - -kcoreaddons_desktop_to_json(plasma_engine_katesessions plasma-dataengine-katesessions.desktop) -install(TARGETS plasma_engine_katesessions DESTINATION ${PLUGIN_INSTALL_DIR}/plasma/dataengine) -install(FILES plasma-dataengine-katesessions.desktop DESTINATION ${SERVICES_INSTALL_DIR}) -install(FILES org.kde.plasma.katesessions.operations DESTINATION ${PLASMA_DATA_INSTALL_DIR}/services) - diff --git a/addons/sessionapplet/engine/katesessionsengine.cpp b/addons/sessionapplet/katesessionsengine.cpp similarity index 100% rename from addons/sessionapplet/engine/katesessionsengine.cpp rename to addons/sessionapplet/katesessionsengine.cpp diff --git a/addons/sessionapplet/engine/katesessionsengine.h b/addons/sessionapplet/katesessionsengine.h similarity index 100% rename from addons/sessionapplet/engine/katesessionsengine.h rename to addons/sessionapplet/katesessionsengine.h diff --git a/addons/sessionapplet/engine/katesessionsjob.cpp b/addons/sessionapplet/katesessionsjob.cpp similarity index 100% rename from addons/sessionapplet/engine/katesessionsjob.cpp rename to addons/sessionapplet/katesessionsjob.cpp diff --git a/addons/sessionapplet/engine/katesessionsjob.h b/addons/sessionapplet/katesessionsjob.h similarity index 100% rename from addons/sessionapplet/engine/katesessionsjob.h rename to addons/sessionapplet/katesessionsjob.h diff --git a/addons/sessionapplet/engine/katesessionsmodel.cpp b/addons/sessionapplet/katesessionsmodel.cpp similarity index 100% rename from addons/sessionapplet/engine/katesessionsmodel.cpp rename to addons/sessionapplet/katesessionsmodel.cpp diff --git a/addons/sessionapplet/engine/katesessionsmodel.h b/addons/sessionapplet/katesessionsmodel.h similarity index 100% rename from addons/sessionapplet/engine/katesessionsmodel.h rename to addons/sessionapplet/katesessionsmodel.h diff --git a/addons/sessionapplet/engine/katesessionsservice.cpp b/addons/sessionapplet/katesessionsservice.cpp similarity index 100% rename from addons/sessionapplet/engine/katesessionsservice.cpp rename to addons/sessionapplet/katesessionsservice.cpp diff --git a/addons/sessionapplet/engine/katesessionsservice.h b/addons/sessionapplet/katesessionsservice.h similarity index 100% rename from addons/sessionapplet/engine/katesessionsservice.h rename to addons/sessionapplet/katesessionsservice.h diff --git a/addons/sessionapplet/engine/org.kde.plasma.katesessions.operations b/addons/sessionapplet/org.kde.plasma.katesessions.operations similarity index 100% rename from addons/sessionapplet/engine/org.kde.plasma.katesessions.operations rename to addons/sessionapplet/org.kde.plasma.katesessions.operations diff --git a/addons/sessionapplet/engine/plasma-dataengine-katesessions.desktop b/addons/sessionapplet/plasma-dataengine-katesessions.desktop similarity index 100% rename from addons/sessionapplet/engine/plasma-dataengine-katesessions.desktop rename to addons/sessionapplet/plasma-dataengine-katesessions.desktop diff --git a/addons/snippets/CMakeLists.txt b/addons/snippets/CMakeLists.txt index 03337a1c0..d58c07d8c 100644 --- a/addons/snippets/CMakeLists.txt +++ b/addons/snippets/CMakeLists.txt @@ -1,32 +1,35 @@ +find_package(KF5NewStuff QUIET) +set_package_properties(KF5NewStuff PROPERTIES PURPOSE "Required to build the snippets addon") + +if(NOT KF5NewStuff_FOUND) + return() +endif() + set(katesnippetsplugin_PART_SRCS katesnippets.cpp katesnippetglobal.cpp snippetview.cpp snippetstore.cpp snippetrepository.cpp snippetcompletionmodel.cpp snippetcompletionitem.cpp snippet.cpp editrepository.cpp editsnippet.cpp plugin.qrc ) ki18n_wrap_ui(katesnippetsplugin_PART_SRCS snippetview.ui editrepository.ui editsnippet.ui) add_library(katesnippetsplugin MODULE ${katesnippetsplugin_PART_SRCS}) target_compile_definitions(katesnippetsplugin PRIVATE TRANSLATION_DOMAIN="katesnippetsplugin") target_link_libraries( katesnippetsplugin PRIVATE - KF5::TextEditor - KF5::Parts - KF5::I18n KF5::NewStuff - KF5::ItemViews - KF5::IconThemes + KF5::TextEditor ) kcoreaddons_desktop_to_json(katesnippetsplugin katesnippetsplugin.desktop) install(TARGETS katesnippetsplugin DESTINATION ${PLUGIN_INSTALL_DIR}/ktexteditor) diff --git a/addons/symbolviewer/CMakeLists.txt b/addons/symbolviewer/CMakeLists.txt index c23c190e9..c6c016f0b 100644 --- a/addons/symbolviewer/CMakeLists.txt +++ b/addons/symbolviewer/CMakeLists.txt @@ -1,30 +1,24 @@ add_library(katesymbolviewerplugin MODULE "") target_compile_definitions(katesymbolviewerplugin PRIVATE TRANSLATION_DOMAIN="katesymbolviewer") - -target_link_libraries( - katesymbolviewerplugin - PRIVATE - KF5::TextEditor - KF5::I18n KF5::IconThemes -) +target_link_libraries(katesymbolviewerplugin PRIVATE KF5::TextEditor) target_sources( katesymbolviewerplugin PRIVATE cpp_parser.cpp tcl_parser.cpp fortran_parser.cpp perl_parser.cpp php_parser.cpp xslt_parser.cpp xml_parser.cpp ruby_parser.cpp python_parser.cpp bash_parser.cpp ecma_parser.cpp plugin_katesymbolviewer.cpp plugin.qrc ) -kcoreaddons_desktop_to_json (katesymbolviewerplugin katesymbolviewerplugin.desktop) +kcoreaddons_desktop_to_json(katesymbolviewerplugin katesymbolviewerplugin.desktop) install(TARGETS katesymbolviewerplugin DESTINATION ${PLUGIN_INSTALL_DIR}/ktexteditor) diff --git a/addons/tabswitcher/CMakeLists.txt b/addons/tabswitcher/CMakeLists.txt index 7d9428e2f..aa7328b1b 100644 --- a/addons/tabswitcher/CMakeLists.txt +++ b/addons/tabswitcher/CMakeLists.txt @@ -1,28 +1,20 @@ add_library (tabswitcherplugin MODULE "") target_compile_definitions(tabswitcherplugin PRIVATE TRANSLATION_DOMAIN="tabswitcherplugin") - -target_link_libraries( - tabswitcherplugin - PRIVATE - KF5::TextEditor - KF5::IconThemes - KF5::I18n - KF5::Service -) +target_link_libraries(tabswitcherplugin PRIVATE KF5::TextEditor) target_sources( tabswitcherplugin PRIVATE tabswitcher.cpp tabswitcherfilesmodel.cpp tabswitchertreeview.cpp plugin.qrc ) kcoreaddons_desktop_to_json(tabswitcherplugin tabswitcherplugin.desktop) install(TARGETS tabswitcherplugin DESTINATION ${PLUGIN_INSTALL_DIR}/ktexteditor) if(BUILD_TESTING) add_subdirectory(autotests) add_subdirectory(tests) endif() diff --git a/addons/tabswitcher/autotests/CMakeLists.txt b/addons/tabswitcher/autotests/CMakeLists.txt index b1fa58c32..6cdf5dd8a 100644 --- a/addons/tabswitcher/autotests/CMakeLists.txt +++ b/addons/tabswitcher/autotests/CMakeLists.txt @@ -1,21 +1,22 @@ include(ECMMarkAsTest) add_executable(tabswitcher_test "") target_include_directories(tabswitcher_test PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/..) +find_package(Qt5Test QUIET REQUIRED) target_link_libraries( tabswitcher_test PRIVATE kdeinit_kate Qt5::Test ) target_sources( tabswitcher_test PRIVATE tabswitchertest.cpp ../tabswitcherfilesmodel.cpp ) add_test(NAME plugin-tabswitcher_test COMMAND tabswitcher_test) ecm_mark_as_test(tabswitcher_test) diff --git a/addons/textfilter/CMakeLists.txt b/addons/textfilter/CMakeLists.txt index 6c3478d39..78c414220 100644 --- a/addons/textfilter/CMakeLists.txt +++ b/addons/textfilter/CMakeLists.txt @@ -1,21 +1,13 @@ set(textfilterplugin_PART_SRCS plugin_katetextfilter.cpp plugin.qrc ) ki18n_wrap_ui(textfilterplugin_PART_SRCS textfilterwidget.ui) add_library(textfilterplugin MODULE ${textfilterplugin_PART_SRCS}) target_compile_definitions(textfilterplugin PRIVATE TRANSLATION_DOMAIN="katetextfilter") - -target_link_libraries( - textfilterplugin - PRIVATE - KF5::TextEditor - KF5::IconThemes - KF5::I18n - KF5::Service -) +target_link_libraries(textfilterplugin PRIVATE KF5::TextEditor) kcoreaddons_desktop_to_json(textfilterplugin textfilterplugin.desktop) install(TARGETS textfilterplugin DESTINATION ${PLUGIN_INSTALL_DIR}/ktexteditor) diff --git a/addons/xmlcheck/CMakeLists.txt b/addons/xmlcheck/CMakeLists.txt index 929316ad9..98bc467f7 100644 --- a/addons/xmlcheck/CMakeLists.txt +++ b/addons/xmlcheck/CMakeLists.txt @@ -1,27 +1,18 @@ remove_definitions(-DQT_NO_CAST_TO_ASCII) remove_definitions(-DQT_NO_CAST_FROM_ASCII) remove_definitions(-DQT_NO_URL_CAST_FROM_STRING) remove_definitions(-DQT_NO_CAST_FROM_BYTEARRAY) add_library(katexmlcheckplugin MODULE ${katexmlcheckplugin_PART_SRCS}) target_compile_definitions(katexmlcheckplugin PRIVATE TRANSLATION_DOMAIN="katexmlcheck") - -target_link_libraries( - katexmlcheckplugin - PRIVATE - KF5::TextEditor - KF5::Parts - KF5::IconThemes - KF5::I18n - KF5::Service -) +target_link_libraries(katexmlcheckplugin PRIVATE KF5::TextEditor) target_sources( katexmlcheckplugin PRIVATE plugin_katexmlcheck.cpp plugin.qrc ) kcoreaddons_desktop_to_json(katexmlcheckplugin katexmlcheck.desktop) install(TARGETS katexmlcheckplugin DESTINATION ${PLUGIN_INSTALL_DIR}/ktexteditor) diff --git a/addons/xmltools/CMakeLists.txt b/addons/xmltools/CMakeLists.txt index 27d224814..b0c6f8d18 100644 --- a/addons/xmltools/CMakeLists.txt +++ b/addons/xmltools/CMakeLists.txt @@ -1,45 +1,36 @@ remove_definitions(-DQT_NO_CAST_TO_ASCII) remove_definitions(-DQT_NO_CAST_FROM_ASCII) remove_definitions(-DQT_NO_URL_CAST_FROM_STRING) remove_definitions(-DQT_NO_CAST_FROM_BYTEARRAY) add_library(katexmltoolsplugin MODULE ${katexmltoolsplugin_PART_SRCS}) target_compile_definitions(katexmltoolsplugin PRIVATE TRANSLATION_DOMAIN="katexmltools") - -target_link_libraries( - katexmltoolsplugin - PRIVATE - KF5::TextEditor - KF5::Parts - KF5::IconThemes - KF5::I18n - KF5::Service -) +target_link_libraries(katexmltoolsplugin PRIVATE KF5::TextEditor) target_sources( katexmltoolsplugin PRIVATE pseudo_dtd.cpp plugin_katexmltools.cpp plugin.qrc ) kcoreaddons_desktop_to_json(katexmltoolsplugin katexmltools.desktop) install(TARGETS katexmltoolsplugin DESTINATION ${PLUGIN_INSTALL_DIR}/ktexteditor) install( FILES html4-loose.dtd.xml html4-strict.dtd.xml kde-docbook.dtd.xml simplify_dtd.xsl xhtml1-frameset.dtd.xml xhtml1-strict.dtd.xml xhtml1-transitional.dtd.xml xslt-1.0.dtd.xml testcases.xml language.dtd.xml kpartgui.dtd.xml kcfg.dtd.xml DESTINATION ${DATA_INSTALL_DIR}/katexmltools )