X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/9203fdc4d9945b391cf0722334934df446938867..cebcf8db:/src/CMakeLists.txt diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 7b0210aef..bbf882a8a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,45 +1,61 @@ -macro_optional_find_package(Baloo) -set_package_properties(Baloo PROPERTIES DESCRIPTION "Baloo Core libraries" - URL "http://www.kde.org" - TYPE OPTIONAL - PURPOSE "For adding desktop-wide search and tagging support to dolphin" - ) - -macro_optional_find_package(BalooWidgets) -set_package_properties(BalooWidgets PROPERTIES DESCRIPTION "Baloos Widgets" - URL "http://www.kde.org" - TYPE OPTIONAL - ) - -macro_optional_find_package(KFileMetaData) -set_package_properties(KFileMetaData PROPERTIES - URL "https://projects.kde.org/kfilemetadata" - TYPE OPTIONAL - PURPOSE "For accessing file metadata labels" - ) - -if (Baloo_FOUND AND BalooWidgets_FOUND AND KFileMetaData_FOUND) - set(HAVE_BALOO TRUE) -endif() +include(ECMAddAppIcon) -configure_file(config-baloo.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-baloo.h ) +set(ADMIN_WORKER_PACKAGE_NAME "kio-admin") +set(FILELIGHT_PACKAGE_NAME "filelight") +configure_file(config-dolphin.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-dolphin.h) -macro_bool_to_01(X11_Xrender_FOUND HAVE_XRENDER) -configure_file(config-X11.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-X11.h ) +add_definitions( + -DTRANSLATION_DOMAIN=\"dolphin\" +) +remove_definitions( + -DQT_NO_CAST_FROM_BYTEARRAY + -DQT_NO_CAST_FROM_ASCII + -DQT_NO_CAST_TO_ASCII +) -include_directories( ${KACTIVITIES_INCLUDE_DIRS} ${CMAKE_CURRENT_BINARY_DIR} ) +########################################## -if(HAVE_BALOO) - include_directories(${BALOO_INCLUDE_DIR} ${BALOO_WIDGETS_INCLUDE_DIR} ${KFILEMETADATA_INCLUDE_DIR}) -endif() +add_library(dolphinvcs SHARED) -add_subdirectory(tests) +target_sources(dolphinvcs PRIVATE + views/versioncontrol/kversioncontrolplugin.cpp +) + +generate_export_header(dolphinvcs BASE_NAME dolphinvcs) + +target_link_libraries( + dolphinvcs PUBLIC + Qt6::Widgets +) + +set_target_properties(dolphinvcs PROPERTIES + VERSION ${DOLPHINVCS_VERSION} + SOVERSION ${DOLPHINVCS_SOVERSION} + EXPORT_NAME DolphinVcs +) + +ecm_generate_headers(dolphinvcs_LIB_HEADERS + HEADER_NAMES + KVersionControlPlugin + + RELATIVE "views/versioncontrol" + REQUIRED_HEADERS dolphinvcs_LIB_HEADERS +) +target_include_directories(dolphinvcs INTERFACE "$") + +install(TARGETS dolphinvcs EXPORT DolphinVcsTargets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) + +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/dolphinvcs_export.h DESTINATION ${KDE_INSTALL_INCLUDEDIR} COMPONENT Devel) +install(FILES ${dolphinvcs_LIB_HEADERS} DESTINATION "${KDE_INSTALL_INCLUDEDIR}/Dolphin" COMPONENT Devel) ########### next target ############### -set(dolphinprivate_LIB_SRCS +add_library(dolphinprivate SHARED) + +target_sources(dolphinprivate PRIVATE kitemviews/kfileitemlistview.cpp kitemviews/kfileitemlistwidget.cpp + kitemviews/kfileitemlisttostring.cpp kitemviews/kfileitemmodel.cpp kitemviews/kfileitemmodelrolesupdater.cpp kitemviews/kitemlistcontainer.cpp @@ -53,15 +69,12 @@ set(dolphinprivate_LIB_SRCS kitemviews/kitemlistwidget.cpp kitemviews/kitemmodelbase.cpp kitemviews/kitemset.cpp - kitemviews/kstandarditem.cpp kitemviews/kstandarditemlistgroupheader.cpp kitemviews/kstandarditemlistwidget.cpp kitemviews/kstandarditemlistview.cpp - kitemviews/kstandarditemmodel.cpp kitemviews/private/kdirectorycontentscounter.cpp kitemviews/private/kdirectorycontentscounterworker.cpp kitemviews/private/kfileitemclipboard.cpp - kitemviews/private/kfileitemmodeldirlister.cpp kitemviews/private/kfileitemmodelfilter.cpp kitemviews/private/kitemlistheaderwidget.cpp kitemviews/private/kitemlistkeyboardsearchmanager.cpp @@ -72,12 +85,13 @@ set(dolphinprivate_LIB_SRCS kitemviews/private/kitemlistsmoothscroller.cpp kitemviews/private/kitemlistviewanimation.cpp kitemviews/private/kitemlistviewlayouter.cpp + kitemviews/private/kitemviewsutils.cpp kitemviews/private/kpixmapmodifier.cpp - settings/additionalinfodialog.cpp settings/applyviewpropsjob.cpp settings/viewmodes/viewmodesettings.cpp settings/viewpropertiesdialog.cpp settings/viewpropsprogressinfo.cpp + selectionmode/actiontexthelper.cpp views/dolphinfileitemlistwidget.cpp views/dolphinitemlistview.cpp views/dolphinnewfilemenuobserver.cpp @@ -85,283 +99,543 @@ set(dolphinprivate_LIB_SRCS views/dolphinview.cpp views/dolphinviewactionhandler.cpp views/draganddrophelper.cpp - views/renamedialog.cpp - views/tooltips/filemetadatatooltip.cpp - views/tooltips/tooltipmanager.cpp views/versioncontrol/updateitemstatesthread.cpp views/versioncontrol/versioncontrolobserver.cpp views/viewmodecontroller.cpp views/viewproperties.cpp views/zoomlevelinfo.cpp dolphinremoveaction.cpp + middleclickactioneventfilter.cpp dolphinnewfilemenu.cpp + + kitemviews/kfileitemlistview.h + kitemviews/kfileitemlistwidget.h + kitemviews/kfileitemlisttostring.h + kitemviews/kfileitemmodel.h + kitemviews/kfileitemmodelrolesupdater.h + kitemviews/kitemlistcontainer.h + kitemviews/kitemlistcontroller.h + kitemviews/kitemlistgroupheader.h + kitemviews/kitemlistheader.h + kitemviews/kitemlistselectionmanager.h + kitemviews/kitemliststyleoption.h + kitemviews/kitemlistview.h + kitemviews/kitemlistviewaccessible.h + kitemviews/kitemlistwidget.h + kitemviews/kitemmodelbase.h + kitemviews/kitemset.h + kitemviews/kstandarditemlistgroupheader.h + kitemviews/kstandarditemlistwidget.h + kitemviews/kstandarditemlistview.h + kitemviews/private/kdirectorycontentscounter.h + kitemviews/private/kdirectorycontentscounterworker.h + kitemviews/private/kfileitemclipboard.h + kitemviews/private/kfileitemmodelfilter.h + kitemviews/private/kitemlistheaderwidget.h + kitemviews/private/kitemlistkeyboardsearchmanager.h + kitemviews/private/kitemlistroleeditor.h + kitemviews/private/kitemlistrubberband.h + kitemviews/private/kitemlistselectiontoggle.h + kitemviews/private/kitemlistsizehintresolver.h + kitemviews/private/kitemlistsmoothscroller.h + kitemviews/private/kitemlistviewanimation.h + kitemviews/private/kitemlistviewlayouter.h + kitemviews/private/kpixmapmodifier.h + settings/applyviewpropsjob.h + settings/viewmodes/viewmodesettings.h + settings/viewpropertiesdialog.h + settings/viewpropsprogressinfo.h + selectionmode/actiontexthelper.h + views/dolphinfileitemlistwidget.h + views/dolphinitemlistview.h + views/dolphinnewfilemenuobserver.h + views/dolphinremoteencoding.h + views/dolphinview.h + views/dolphinviewactionhandler.h + views/draganddrophelper.h + views/versioncontrol/updateitemstatesthread.h + views/versioncontrol/versioncontrolobserver.h + views/viewmodecontroller.h + views/viewproperties.h + views/zoomlevelinfo.h + dolphinremoveaction.h + middleclickactioneventfilter.h + dolphinnewfilemenu.h +) + +ecm_qt_declare_logging_category(dolphinprivate + HEADER dolphindebug.h + IDENTIFIER DolphinDebug + CATEGORY_NAME org.kde.dolphin + DESCRIPTION "dolphin" + EXPORT DOLPHIN ) if(HAVE_BALOO) - set(dolphinprivate_LIB_SRCS - ${dolphinprivate_LIB_SRCS} + target_sources(dolphinprivate PRIVATE + views/tooltips/dolphinfilemetadatawidget.cpp + views/tooltips/tooltipmanager.cpp kitemviews/private/kbaloorolesprovider.cpp + views/tooltips/dolphinfilemetadatawidget.h + views/tooltips/tooltipmanager.h + kitemviews/private/kbaloorolesprovider.h ) endif() -kde4_add_kcfg_files(dolphinprivate_LIB_SRCS +kconfig_add_kcfg_files(dolphinprivate settings/dolphin_compactmodesettings.kcfgc settings/dolphin_directoryviewpropertysettings.kcfgc settings/dolphin_detailsmodesettings.kcfgc settings/dolphin_iconsmodesettings.kcfgc + settings/dolphin_contentdisplaysettings.kcfgc settings/dolphin_generalsettings.kcfgc + settings/dolphin_contextmenusettings.kcfgc settings/dolphin_versioncontrolsettings.kcfgc + GENERATE_MOC ) -kde4_add_library(dolphinprivate SHARED ${dolphinprivate_LIB_SRCS}) +generate_export_header(dolphinprivate BASE_NAME dolphin) target_link_libraries( - dolphinprivate - ${KDE4_KFILE_LIBS} - konq - ${KDE4_KNEWSTUFF3_LIBS} + dolphinprivate PUBLIC + dolphinvcs + Qt6::Concurrent + Qt6::DBus + Qt6::Gui + KF6::I18n + KF6::GuiAddons + KF6::IconThemes + KF6::KIOCore + KF6::KIOWidgets + KF6::KIOFileWidgets + KF6::Completion + KF6::TextWidgets + KF6::ConfigCore + KF6::NewStuffWidgets # KNSWidgets::Button + KF6::Parts + KF6::WindowSystem + KF6::WidgetsAddons + KF6::Codecs + KF6::KCMUtils + + ${FTS_LIB} ) if(HAVE_BALOO) target_link_libraries( - dolphinprivate - ${BALOO_LIBRARIES} - ${BALOO_WIDGETS_LIBRARY} - ${KFILEMETADATA_LIBRARY} + dolphinprivate PUBLIC + KF6::FileMetaData + KF6::Baloo + KF6::BalooWidgets ) endif() -if(X11_Xrender_FOUND) - target_link_libraries(dolphinprivate ${X11_Xrender_LIB}) -endif(X11_Xrender_FOUND) - -target_link_libraries(dolphinprivate ${KDE4_PLASMA_LIBS}) +set_target_properties(dolphinprivate PROPERTIES + VERSION ${DOLPHINPRIVATE_VERSION} + SOVERSION ${DOLPHINPRIVATE_SOVERSION} +) -set_target_properties(dolphinprivate PROPERTIES VERSION ${GENERIC_LIB_VERSION} SOVERSION ${GENERIC_LIB_SOVERSION} ) -install(TARGETS dolphinprivate ${INSTALL_TARGETS_DEFAULT_ARGS}) +install(TARGETS dolphinprivate ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} LIBRARY NAMELINK_SKIP) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/dolphin_export.h DESTINATION ${KDE_INSTALL_INCLUDEDIR} COMPONENT Devel) ########################################## +configure_file(dolphinpart.json.in ${CMAKE_CURRENT_BINARY_DIR}/dolphinpart.json @ONLY) -set(dolphinpart_SRCS - dolphinpart.cpp -) - -# Add dolphinpart_ext.cpp conditionally, only with KDE > 4.9.1. -if (${KDE_VERSION} VERSION_GREATER "4.9.1") -set(dolphinpart_SRCS - ${dolphinpart_SRCS} - dolphinpart_ext.cpp) -endif (${KDE_VERSION} VERSION_GREATER "4.9.1") +add_library(dolphinpart MODULE) -kde4_add_plugin(dolphinpart ${dolphinpart_SRCS}) +target_sources(dolphinpart PRIVATE + dolphinpart.cpp + dolphinpart_ext.cpp + dolphindebug.cpp + dolphinpart.h + dolphinpart_ext.h + dolphindebug.h -target_link_libraries(dolphinpart dolphinprivate konq ${KDE4_KPARTS_LIBS} ${KDE4_KFILE_LIBS}) + dolphinpart.qrc +) -install(TARGETS dolphinpart DESTINATION ${PLUGIN_INSTALL_DIR}) +target_link_libraries(dolphinpart + dolphinprivate +) -install(FILES dolphinpart.rc DESTINATION ${DATA_INSTALL_DIR}/dolphinpart) -install(FILES dolphinpart.desktop DESTINATION ${SERVICES_INSTALL_DIR} ) -install(FILES views/versioncontrol/fileviewversioncontrolplugin.desktop DESTINATION ${SERVICETYPES_INSTALL_DIR}) +install(TARGETS dolphinpart DESTINATION ${KDE_INSTALL_PLUGINDIR}/kf6/parts) +install(FILES dolphinpartactions.desktop DESTINATION "${KDE_INSTALL_DATADIR}/dolphin/") ########################################## -set(dolphin_SRCS - dolphinapplication.cpp +add_library(dolphinstatic STATIC) + +target_sources(dolphinstatic PRIVATE + admin/bar.cpp + admin/workerintegration.cpp + animatedheightwidget.cpp + disabledactionnotifier.cpp + dolphinbookmarkhandler.cpp dolphindockwidget.cpp dolphinmainwindow.cpp dolphinviewcontainer.cpp dolphincontextmenu.cpp + dolphinnavigatorswidgetaction.cpp dolphintabbar.cpp + dolphinpackageinstaller.cpp + dolphinplacesmodelsingleton.cpp dolphinrecenttabsmenu.cpp dolphintabpage.cpp + dolphintabwidget.cpp + dolphinurlnavigator.cpp + dolphinurlnavigatorscontroller.cpp + trash/dolphintrash.cpp filterbar/filterbar.cpp - main.cpp - panels/information/filemetadataconfigurationdialog.cpp - panels/information/informationpanel.cpp - panels/information/informationpanelcontent.cpp - panels/information/pixmapviewer.cpp - panels/information/phononwidget.cpp + kitemviews/kfileitemlisttostring.cpp panels/places/placespanel.cpp - panels/places/placesitem.cpp - panels/places/placesitemeditdialog.cpp - panels/places/placesitemlistgroupheader.cpp - panels/places/placesitemlistwidget.cpp - panels/places/placesitemmodel.cpp - panels/places/placesitemsignalhandler.cpp - panels/places/placesview.cpp panels/panel.cpp panels/folders/foldersitemlistwidget.cpp panels/folders/treeviewcontextmenu.cpp panels/folders/folderspanel.cpp + panels/terminal/terminalpanel.cpp search/dolphinfacetswidget.cpp + search/dolphinquery.cpp search/dolphinsearchbox.cpp - settings/general/behaviorsettingspage.cpp - settings/general/configurepreviewplugindialog.cpp - settings/general/confirmationssettingspage.cpp - settings/general/generalsettingspage.cpp - settings/general/previewssettingspage.cpp - settings/general/statusbarsettingspage.cpp + selectionmode/actiontexthelper.cpp + selectionmode/actionwithwidget.cpp + selectionmode/backgroundcolorhelper.cpp + selectionmode/bottombar.cpp + selectionmode/bottombarcontentscontainer.cpp + selectionmode/topbar.cpp + settings/interface/folderstabssettingspage.cpp + settings/interface/statusandlocationbarssettingspage.cpp + settings/interface/confirmationssettingspage.cpp + settings/interface/interfacesettingspage.cpp + settings/interface/previewssettingspage.cpp settings/dolphinsettingsdialog.cpp - settings/navigation/navigationsettingspage.cpp - settings/services/servicessettingspage.cpp + settings/contextmenu/contextmenusettingspage.cpp settings/settingspagebase.cpp - settings/serviceitemdelegate.cpp settings/servicemodel.cpp - settings/startup/startupsettingspage.cpp settings/trash/trashsettingspage.cpp settings/viewmodes/dolphinfontrequester.cpp settings/viewmodes/viewsettingspage.cpp settings/viewmodes/viewmodesettings.cpp settings/viewmodes/viewsettingstab.cpp + settings/viewmodes/contentdisplaytab.cpp + settings/viewmodes/generalviewsettingspage.cpp statusbar/dolphinstatusbar.cpp statusbar/mountpointobserver.cpp statusbar/mountpointobservercache.cpp statusbar/spaceinfoobserver.cpp statusbar/statusbarspaceinfo.cpp views/zoomlevelinfo.cpp + dolphindebug.cpp + global.cpp + dolphin.qrc + + admin/bar.h + admin/workerintegration.h + animatedheightwidget.h + dolphinbookmarkhandler.h + dolphindockwidget.h + dolphinmainwindow.h + dolphinviewcontainer.h + dolphincontextmenu.h + dolphinnavigatorswidgetaction.h + dolphintabbar.h + dolphinpackageinstaller.h + dolphinplacesmodelsingleton.h + dolphinrecenttabsmenu.h + dolphintabpage.h + dolphintabwidget.h + dolphinurlnavigator.h + dolphinurlnavigatorscontroller.h + trash/dolphintrash.h + filterbar/filterbar.h + kitemviews/kfileitemlisttostring.h + panels/places/placespanel.h + panels/panel.h + panels/folders/foldersitemlistwidget.h + panels/folders/treeviewcontextmenu.h + panels/folders/folderspanel.h + panels/terminal/terminalpanel.h + search/dolphinfacetswidget.h + search/dolphinquery.h + search/dolphinsearchbox.h + selectionmode/actiontexthelper.h + selectionmode/actionwithwidget.h + selectionmode/backgroundcolorhelper.h + selectionmode/bottombar.h + selectionmode/bottombarcontentscontainer.h + selectionmode/topbar.h + settings/interface/folderstabssettingspage.h + settings/interface/statusandlocationbarssettingspage.h + settings/interface/confirmationssettingspage.h + settings/interface/interfacesettingspage.h + settings/interface/previewssettingspage.h + settings/dolphinsettingsdialog.h + settings/contextmenu/contextmenusettingspage.h + settings/settingspagebase.h + settings/servicemodel.h + settings/trash/trashsettingspage.h + settings/viewmodes/dolphinfontrequester.h + settings/viewmodes/viewsettingspage.h + settings/viewmodes/viewmodesettings.h + settings/viewmodes/viewsettingstab.h + settings/viewmodes/contentdisplaytab.h + settings/viewmodes/generalviewsettingspage.h + statusbar/dolphinstatusbar.h + statusbar/mountpointobserver.h + statusbar/mountpointobservercache.h + statusbar/spaceinfoobserver.h + statusbar/statusbarspaceinfo.h + views/zoomlevelinfo.h + dolphindebug.h + global.h ) -kde4_add_kcfg_files(dolphin_SRCS +if(HAVE_BALOO) + target_sources(dolphinstatic PRIVATE + panels/information/informationpanel.cpp + panels/information/informationpanelcontent.cpp + panels/information/pixmapviewer.cpp + panels/information/phononwidget.cpp + settings/interface/panelsettingspage.cpp + panels/information/informationpanel.h + panels/information/informationpanelcontent.h + panels/information/pixmapviewer.h + panels/information/phononwidget.h + settings/interface/panelsettingspage.h + ) + + kconfig_add_kcfg_files(dolphinstatic + panels/information/dolphin_informationpanelsettings.kcfgc + ) + +endif() + +if(HAVE_KUSERFEEDBACK) + target_sources(dolphinstatic PRIVATE + userfeedback/dolphinfeedbackprovider.cpp + userfeedback/settingsdatasource.cpp + userfeedback/placesdatasource.cpp + settings/userfeedback/userfeedbacksettingspage.cpp + userfeedback/dolphinfeedbackprovider.h + userfeedback/settingsdatasource.h + userfeedback/placesdatasource.h + settings/userfeedback/userfeedbacksettingspage.h + ) +endif() + +kconfig_add_kcfg_files(dolphinstatic panels/folders/dolphin_folderspanelsettings.kcfgc - panels/information/dolphin_informationpanelsettings.kcfgc panels/places/dolphin_placespanelsettings.kcfgc settings/dolphin_compactmodesettings.kcfgc settings/dolphin_detailsmodesettings.kcfgc - settings/dolphin_generalsettings.kcfgc + settings/dolphin_contextmenusettings.kcfgc settings/dolphin_iconsmodesettings.kcfgc + settings/dolphin_contentdisplaysettings.kcfgc search/dolphin_searchsettings.kcfgc settings/dolphin_versioncontrolsettings.kcfgc ) +kconfig_add_kcfg_files(dolphinstatic GENERATE_MOC + settings/dolphin_generalsettings.kcfgc +) -if(NOT WIN32) - set(dolphin_SRCS ${dolphin_SRCS} panels/terminal/terminalpanel.cpp) -endif(NOT WIN32) - -kde4_add_app_icon(dolphin_SRCS "${KDE4_ICON_INSTALL_DIR}/oxygen/*/apps/system-file-manager.png") +qt_generate_dbus_interface(${CMAKE_CURRENT_SOURCE_DIR}/dolphinmainwindow.h org.kde.DolphinMainWindow.xml) +qt_add_dbus_adaptor(dolphin_dbus_SRCS ${CMAKE_CURRENT_BINARY_DIR}/org.kde.DolphinMainWindow.xml dolphinmainwindow.h DolphinMainWindow) +qt_add_dbus_interface(dolphin_dbus_SRCS ${CMAKE_CURRENT_BINARY_DIR}/org.kde.DolphinMainWindow.xml dolphinmainwindowinterface) +qt_add_dbus_interface(dolphin_dbus_SRCS panels/terminal/org.kde.KIOFuse.VFS.xml kiofuse_interface) -kde4_add_kdeinit_executable(dolphin ${dolphin_SRCS}) +target_sources(dolphinstatic PRIVATE + ${dolphin_dbus_SRCS} +) -target_link_libraries(kdeinit_dolphin - ${KDE4_KDEPRINT_LIBS} - ${KDE4_KFILE_LIBS} - ${KDE4_KPARTS_LIBS} - ${KDE4_KCMUTILS_LIBRARY} - konq +target_include_directories(dolphinstatic SYSTEM PRIVATE ${PHONON_INCLUDES}) +target_link_libraries(dolphinstatic dolphinprivate - knewstuff3 - ${KDE4_SOLID_LIBS} - ${KDE4_PHONON_LIBS} + KF6::CoreAddons + KF6::GuiAddons + KF6::KCMUtils + KF6::DBusAddons + KF6::Notifications + KF6::BookmarksWidgets + Phonon::phonon4qt6 ) -if(HAVE_BALOO) - target_link_libraries(kdeinit_dolphin - ${BALOO_LIBRARIES} - ${BALOO_WIDGETS_LIBRARY} +if(HAVE_PACKAGEKIT) + target_link_libraries( + dolphinstatic + PK::packagekitqt6 ) endif() -if (KActivities_FOUND) +if (HAVE_KUSERFEEDBACK) target_link_libraries( - kdeinit_dolphin - ${KACTIVITIES_LIBRARY} + dolphinstatic + KF6::UserFeedbackCore + KF6::UserFeedbackWidgets ) -endif (KActivities_FOUND) +endif() -install(TARGETS kdeinit_dolphin ${INSTALL_TARGETS_DEFAULT_ARGS}) -install(TARGETS dolphin ${INSTALL_TARGETS_DEFAULT_ARGS}) +add_executable(dolphin) -########################################## +target_sources(dolphin PRIVATE + dbusinterface.cpp + dbusinterface.h + main.cpp +) -set(kcm_dolphinviewmodes_PART_SRCS - settings/kcm/kcmdolphinviewmodes.cpp - settings/viewmodes/dolphinfontrequester.cpp - settings/viewmodes/viewmodesettings.cpp - settings/viewmodes/viewsettingstab.cpp - views/zoomlevelinfo.cpp) +if(FLATPAK) + target_compile_definitions(dolphin PRIVATE FLATPAK) +endif() -set(kcm_dolphinnavigation_PART_SRCS - settings/kcm/kcmdolphinnavigation.cpp - settings/navigation/navigationsettingspage.cpp - settings/settingspagebase.cpp) +# Install the icons on macOS and Windows +ecm_add_app_icon(dolphin + ICONS + icons/128-apps-org.kde.dolphin.png + icons/16-apps-org.kde.dolphin.png + icons/22-apps-org.kde.dolphin.png + icons/32-apps-org.kde.dolphin.png + icons/48-apps-org.kde.dolphin.png + icons/64-apps-org.kde.dolphin.png +) -set(kcm_dolphinservices_PART_SRCS - settings/kcm/kcmdolphinservices.cpp - settings/services/servicessettingspage.cpp - settings/settingspagebase.cpp - settings/serviceitemdelegate.cpp - settings/servicemodel.cpp) - -set(kcm_dolphingeneral_PART_SRCS - settings/kcm/kcmdolphingeneral.cpp - settings/general/behaviorsettingspage.cpp - settings/general/previewssettingspage.cpp - settings/general/configurepreviewplugindialog.cpp - settings/general/confirmationssettingspage.cpp - settings/settingspagebase.cpp - settings/serviceitemdelegate.cpp - settings/servicemodel.cpp) +install(FILES icons/org.kde.dolphin.svg DESTINATION ${KDE_INSTALL_ICONDIR}/hicolor/scalable/apps) -kde4_add_kcfg_files(kcm_dolphinviewmodes_PART_SRCS - settings/dolphin_compactmodesettings.kcfgc - settings/dolphin_directoryviewpropertysettings.kcfgc - settings/dolphin_detailsmodesettings.kcfgc - settings/dolphin_iconsmodesettings.kcfgc - settings/dolphin_generalsettings.kcfgc - settings/dolphin_versioncontrolsettings.kcfgc +target_link_libraries(dolphin + PRIVATE + dolphinprivate + dolphinstatic + KF6::Crash +) + +if (HAVE_X11) + target_link_libraries(dolphin PRIVATE Qt::GuiPrivate) +endif() + +include(DbusInterfaceMacros) + +generate_and_install_dbus_interface( + dolphin + dbusinterface.h + org.freedesktop.FileManager1.xml + OPTIONS -a ) -kde4_add_kcfg_files(kcm_dolphinnavigation_PART_SRCS - settings/dolphin_generalsettings.kcfgc) +install(TARGETS dolphin ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) -kde4_add_kcfg_files(kcm_dolphinservices_PART_SRCS - settings/dolphin_generalsettings.kcfgc - settings/dolphin_versioncontrolsettings.kcfgc) +########################################## -kde4_add_kcfg_files(kcm_dolphingeneral_PART_SRCS - settings/dolphin_generalsettings.kcfgc) +if(NOT WIN32) + # The settings are still accessible from the hamburger menu + add_library(kcm_dolphinviewmodes MODULE) + add_library(kcm_dolphingeneral MODULE) + + target_sources(kcm_dolphinviewmodes PRIVATE + settings/kcm/kcmdolphinviewmodes.cpp + settings/viewmodes/dolphinfontrequester.cpp + settings/viewmodes/viewmodesettings.cpp + settings/viewmodes/viewsettingstab.cpp + settings/settingspagebase.cpp + views/zoomlevelinfo.cpp + settings/kcm/kcmdolphinviewmodes.h + settings/viewmodes/dolphinfontrequester.h + settings/viewmodes/viewmodesettings.h + settings/viewmodes/viewsettingstab.h + views/zoomlevelinfo.h) + + target_sources(kcm_dolphingeneral PRIVATE + settings/kcm/kcmdolphingeneral.cpp + settings/interface/folderstabssettingspage.cpp + settings/interface/statusandlocationbarssettingspage.cpp + settings/interface/previewssettingspage.cpp + settings/interface/confirmationssettingspage.cpp + settings/settingspagebase.cpp + settings/servicemodel.cpp + dolphin_generalsettings.cpp + dolphindebug.cpp + dolphinmainwindowinterface.cpp + views/viewproperties.cpp + dolphin_directoryviewpropertysettings.cpp + global.cpp + settings/kcm/kcmdolphingeneral.h + settings/interface/folderstabssettingspage.h + settings/interface/statusandlocationbarssettingspage.h + settings/interface/previewssettingspage.h + settings/interface/confirmationssettingspage.h + settings/settingspagebase.h + settings/servicemodel.h + dolphin_generalsettings.h + dolphindebug.h + dolphinmainwindowinterface.h + views/viewproperties.h + dolphin_directoryviewpropertysettings.h + global.h + ) -kde4_add_plugin(kcm_dolphinviewmodes ${kcm_dolphinviewmodes_PART_SRCS}) -kde4_add_plugin(kcm_dolphinnavigation ${kcm_dolphinnavigation_PART_SRCS}) -kde4_add_plugin(kcm_dolphinservices ${kcm_dolphinservices_PART_SRCS}) -kde4_add_plugin(kcm_dolphingeneral ${kcm_dolphingeneral_PART_SRCS}) + kconfig_add_kcfg_files(kcm_dolphinviewmodes + settings/dolphin_compactmodesettings.kcfgc + settings/dolphin_directoryviewpropertysettings.kcfgc + settings/dolphin_detailsmodesettings.kcfgc + settings/dolphin_iconsmodesettings.kcfgc + settings/dolphin_contentdisplaysettings.kcfgc + settings/dolphin_generalsettings.kcfgc + settings/dolphin_versioncontrolsettings.kcfgc + GENERATE_MOC + ) -target_link_libraries(kcm_dolphinviewmodes ${KDE4_KDEUI_LIBS} ${KDE4_KFILE_LIBS} dolphinprivate) -target_link_libraries(kcm_dolphinnavigation ${KDE4_KDEUI_LIBS} ${KDE4_KFILE_LIBS} dolphinprivate) -target_link_libraries(kcm_dolphinservices ${KDE4_KDEUI_LIBS} ${KDE4_KFILE_LIBS} ${KDE4_KIO_LIBS} ${KDE4_KNEWSTUFF3_LIBRARY} dolphinprivate) -target_link_libraries(kcm_dolphingeneral ${KDE4_KDEUI_LIBS} ${KDE4_KFILE_LIBS} ${KDE4_KIO_LIBS} dolphinprivate) + kconfig_add_kcfg_files(kcm_dolphingeneral + settings/dolphin_generalsettings.kcfgc + GENERATE_MOC + ) -install(TARGETS kcm_dolphinviewmodes DESTINATION ${PLUGIN_INSTALL_DIR} ) -install(TARGETS kcm_dolphinnavigation DESTINATION ${PLUGIN_INSTALL_DIR} ) -install(TARGETS kcm_dolphinservices DESTINATION ${PLUGIN_INSTALL_DIR} ) -install(TARGETS kcm_dolphingeneral DESTINATION ${PLUGIN_INSTALL_DIR} ) + target_link_libraries(kcm_dolphinviewmodes dolphinprivate) + target_link_libraries(kcm_dolphingeneral dolphinprivate) -######################################### + install( FILES org.kde.dolphin.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR} ) -set(kio_search_PART_SRCS - search/filenamesearchprotocol.cpp) -kde4_add_plugin(kio_filenamesearch ${kio_search_PART_SRCS}) -target_link_libraries(kio_filenamesearch ${KDE4_KIO_LIBS}) -install(TARGETS kio_filenamesearch DESTINATION ${PLUGIN_INSTALL_DIR}) + install(TARGETS kcm_dolphinviewmodes DESTINATION ${KDE_INSTALL_PLUGINDIR}/dolphin/kcms ) + install(TARGETS kcm_dolphingeneral DESTINATION ${KDE_INSTALL_PLUGINDIR}/dolphin/kcms ) +endif() + +if(NOT WIN32) + add_subdirectory(settings/contextmenu/servicemenuinstaller) + install( FILES settings/contextmenu/servicemenu.knsrc DESTINATION ${KDE_INSTALL_KNSRCDIR} ) +endif() ########### install files ############### -install( PROGRAMS dolphin.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} ) +install( PROGRAMS org.kde.dolphin.desktop DESTINATION ${KDE_INSTALL_APPDIR} ) + +install( DIRECTORY DESTINATION "${KDE_INSTALL_FULL_DATAROOTDIR}/kglobalaccel" ) + +install( + CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" -E create_symlink \"${KDE_INSTALL_FULL_APPDIR}/org.kde.dolphin.desktop\" \"\$ENV{DESTDIR}${KDE_INSTALL_FULL_DATAROOTDIR}/kglobalaccel/org.kde.dolphin.desktop\")" +) + install( FILES settings/dolphin_directoryviewpropertysettings.kcfg settings/dolphin_generalsettings.kcfg + settings/dolphin_contextmenusettings.kcfg settings/dolphin_compactmodesettings.kcfg settings/dolphin_iconsmodesettings.kcfg settings/dolphin_detailsmodesettings.kcfg + settings/dolphin_contentdisplaysettings.kcfg settings/dolphin_versioncontrolsettings.kcfg - DESTINATION ${KCFG_INSTALL_DIR} ) -install( FILES dolphinui.rc DESTINATION ${DATA_INSTALL_DIR}/dolphin ) -install( FILES dolphin.appdata.xml DESTINATION ${SHARE_INSTALL_PREFIX}/appdata ) -install( FILES search/filenamesearch.protocol DESTINATION ${SERVICES_INSTALL_DIR} ) -install( FILES settings/kcm/kcmdolphinviewmodes.desktop DESTINATION -${SERVICES_INSTALL_DIR} ) -install( FILES settings/kcm/kcmdolphinnavigation.desktop DESTINATION ${SERVICES_INSTALL_DIR} ) -install( FILES settings/kcm/kcmdolphinservices.desktop DESTINATION ${SERVICES_INSTALL_DIR} ) -install( FILES settings/kcm/kcmdolphingeneral.desktop DESTINATION ${SERVICES_INSTALL_DIR} ) -install( FILES settings/services/servicemenu.knsrc DESTINATION ${CONFIG_INSTALL_DIR} ) -install( PROGRAMS settings/services/servicemenuinstallation DESTINATION ${BIN_INSTALL_DIR} ) -install( PROGRAMS settings/services/servicemenudeinstallation DESTINATION ${BIN_INSTALL_DIR} ) + DESTINATION ${KDE_INSTALL_KCFGDIR} ) + +install( FILES settings/dolphin_detailsmodesettings.upd + settings/dolphin_directorysizemode.upd + settings/dolphin_directorysizemode.py + DESTINATION ${KDE_INSTALL_KCONFUPDATEDIR} ) + +if(BUILD_TESTING) + add_subdirectory(tests) +endif() + +# movetonewfolderitemaction plugin + +kcoreaddons_add_plugin(movetonewfolderitemaction + SOURCES itemactions/movetonewfolderitemaction.cpp itemactions/movetonewfolderitemaction.h + INSTALL_NAMESPACE "kf6/kfileitemaction") +target_link_libraries(movetonewfolderitemaction + KF6::I18n + KF6::KIOCore + KF6::KIOWidgets + KF6::KIOFileWidgets)