X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/3e1cb2c7fb41d20f19bb039c77714e8128bf5e00..3abc4cfcd49df45c856e1b5f01da8de8f970ccb2:/src/CMakeLists.txt diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index eabe80f61..651f021e6 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -8,23 +8,25 @@ configure_file(config-packagekit.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-pack configure_file(config-terminal.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-terminal.h) +configure_file(config-kuserfeedback.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kuserfeedback.h) + add_definitions( -DTRANSLATION_DOMAIN=\"dolphin\" ) remove_definitions( -DQT_NO_CAST_FROM_BYTEARRAY - -DQT_NO_SIGNALS_SLOTS_KEYWORDS -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII ) ########################################## -set(dolphinvcs_LIB_SRCS +add_library(dolphinvcs SHARED) + +target_sources(dolphinvcs PRIVATE views/versioncontrol/kversioncontrolplugin.cpp ) -add_library(dolphinvcs ${dolphinvcs_LIB_SRCS}) generate_export_header(dolphinvcs BASE_NAME dolphinvcs) target_link_libraries( @@ -33,7 +35,7 @@ target_link_libraries( ) set_target_properties(dolphinvcs PROPERTIES - VERSION ${DOLPHINVCS_VERSION_STRING} + VERSION ${DOLPHINVCS_VERSION} SOVERSION ${DOLPHINVCS_SOVERSION} EXPORT_NAME DolphinVcs ) @@ -54,7 +56,9 @@ install(FILES ${dolphinvcs_LIB_HEADERS} DESTINATION "${KDE_INSTALL_INCLUDEDIR}/D ########### next target ############### -set(dolphinprivate_LIB_SRCS +add_library(dolphinprivate SHARED) + +target_sources(dolphinprivate PRIVATE kitemviews/kfileitemlistview.cpp kitemviews/kfileitemlistwidget.cpp kitemviews/kfileitemmodel.cpp @@ -78,7 +82,6 @@ set(dolphinprivate_LIB_SRCS 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 @@ -90,6 +93,8 @@ set(dolphinprivate_LIB_SRCS kitemviews/private/kitemlistviewanimation.cpp kitemviews/private/kitemlistviewlayouter.cpp kitemviews/private/kpixmapmodifier.cpp + kitemviews/private/ktwofingerswipe.cpp + kitemviews/private/ktwofingertap.cpp settings/applyviewpropsjob.cpp settings/viewmodes/viewmodesettings.cpp settings/viewpropertiesdialog.cpp @@ -111,27 +116,32 @@ set(dolphinprivate_LIB_SRCS dolphinnewfilemenu.cpp ) -ecm_qt_declare_logging_category(dolphinprivate_LIB_SRCS HEADER dolphindebug.h IDENTIFIER DolphinDebug CATEGORY_NAME org.kde.dolphin) +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 ) endif() -kconfig_add_kcfg_files(dolphinprivate_LIB_SRCS GENERATE_MOC +kconfig_add_kcfg_files(dolphinprivate settings/dolphin_compactmodesettings.kcfgc settings/dolphin_directoryviewpropertysettings.kcfgc settings/dolphin_detailsmodesettings.kcfgc settings/dolphin_iconsmodesettings.kcfgc settings/dolphin_generalsettings.kcfgc + settings/dolphin_contextmenusettings.kcfgc settings/dolphin_versioncontrolsettings.kcfgc ) -add_library(dolphinprivate ${dolphinprivate_LIB_SRCS}) generate_export_header(dolphinprivate BASE_NAME dolphin) target_link_libraries( @@ -162,7 +172,7 @@ if(HAVE_BALOO) endif() set_target_properties(dolphinprivate PROPERTIES - VERSION ${DOLPHINPRIVATE_VERSION_STRING} + VERSION ${DOLPHINPRIVATE_VERSION} SOVERSION ${DOLPHINPRIVATE_SOVERSION} ) @@ -170,38 +180,46 @@ install(TARGETS dolphinprivate ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} LIBRARY NAMEL install(FILES ${CMAKE_CURRENT_BINARY_DIR}/dolphin_export.h DESTINATION ${KDE_INSTALL_INCLUDEDIR} COMPONENT Devel) ########################################## +configure_file(dolphinpart.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/dolphinpart.desktop @ONLY) -set(dolphinpart_SRCS - dolphinpart.cpp - dolphinpart_ext.cpp - dolphindebug.cpp -) +add_library(dolphinpart MODULE) + +target_sources(dolphinpart PRIVATE + dolphinpart.cpp + dolphinpart_ext.cpp + dolphindebug.cpp -qt5_add_resources(dolphinpart_SRCS dolphinpart.qrc) + dolphinpart.qrc +) -add_library(dolphinpart MODULE ${dolphinpart_SRCS}) +kcoreaddons_desktop_to_json(dolphinpart ${CMAKE_CURRENT_BINARY_DIR}/dolphinpart.desktop) target_link_libraries(dolphinpart dolphinprivate ) -install(TARGETS dolphinpart DESTINATION ${KDE_INSTALL_PLUGINDIR}) +install(TARGETS dolphinpart DESTINATION ${KDE_INSTALL_PLUGINDIR}/kf5/parts) -install(FILES dolphinpart.desktop DESTINATION ${KDE_INSTALL_KSERVICES5DIR}) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/dolphinpart.desktop DESTINATION ${KDE_INSTALL_KSERVICES5DIR}) ########################################## -set(dolphinstatic_SRCS +add_library(dolphinstatic STATIC) + +target_sources(dolphinstatic PRIVATE dolphinbookmarkhandler.cpp dolphindockwidget.cpp dolphinmainwindow.cpp dolphinviewcontainer.cpp dolphincontextmenu.cpp + dolphinnavigatorswidgetaction.cpp dolphintabbar.cpp dolphinplacesmodelsingleton.cpp dolphinrecenttabsmenu.cpp dolphintabpage.cpp dolphintabwidget.cpp + dolphinurlnavigator.cpp + dolphinurlnavigatorscontroller.cpp trash/dolphintrash.cpp filterbar/filterbar.cpp panels/places/placespanel.cpp @@ -227,7 +245,7 @@ set(dolphinstatic_SRCS settings/general/statusbarsettingspage.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 @@ -245,11 +263,11 @@ set(dolphinstatic_SRCS views/zoomlevelinfo.cpp dolphindebug.cpp global.cpp + dolphin.qrc ) if(HAVE_BALOO) - set(dolphinstatic_SRCS - ${dolphinstatic_SRCS} + target_sources(dolphinstatic PRIVATE panels/information/informationpanel.cpp panels/information/informationpanelcontent.cpp panels/information/pixmapviewer.cpp @@ -257,26 +275,38 @@ if(HAVE_BALOO) ) endif() -kconfig_add_kcfg_files(dolphinstatic_SRCS GENERATE_MOC +if(HAVE_KUSERFEEDBACK) + target_sources(dolphinstatic PRIVATE + userfeedback/dolphinfeedbackprovider.cpp + userfeedback/settingsdatasource.cpp + userfeedback/placesdatasource.cpp + settings/userfeedback/userfeedbacksettingspage.cpp + ) +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 search/dolphin_searchsettings.kcfgc settings/dolphin_versioncontrolsettings.kcfgc ) - -qt5_add_resources(dolphinstatic_SRCS dolphin.qrc) +kconfig_add_kcfg_files(dolphinstatic GENERATE_MOC + settings/dolphin_generalsettings.kcfgc +) qt5_generate_dbus_interface(${CMAKE_CURRENT_SOURCE_DIR}/dolphinmainwindow.h org.kde.DolphinMainWindow.xml) -qt5_add_dbus_adaptor(dolphinstatic_SRCS ${CMAKE_CURRENT_BINARY_DIR}/org.kde.DolphinMainWindow.xml dolphinmainwindow.h DolphinMainWindow) -qt5_add_dbus_interface(dolphinstatic_SRCS ${CMAKE_CURRENT_BINARY_DIR}/org.kde.DolphinMainWindow.xml dolphinmainwindowinterface) -qt5_add_dbus_interface(dolphinstatic_SRCS panels/terminal/org.kde.KIOFuse.VFS.xml kiofuse_interface) +qt5_add_dbus_adaptor(dolphin_dbus_SRCS ${CMAKE_CURRENT_BINARY_DIR}/org.kde.DolphinMainWindow.xml dolphinmainwindow.h DolphinMainWindow) +qt5_add_dbus_interface(dolphin_dbus_SRCS ${CMAKE_CURRENT_BINARY_DIR}/org.kde.DolphinMainWindow.xml dolphinmainwindowinterface) +qt5_add_dbus_interface(dolphin_dbus_SRCS panels/terminal/org.kde.KIOFuse.VFS.xml kiofuse_interface) -add_library(dolphinstatic STATIC ${dolphinstatic_SRCS}) +target_sources(dolphinstatic PRIVATE + ${dolphin_dbus_SRCS} +) target_include_directories(dolphinstatic SYSTEM PRIVATE ${PHONON_INCLUDES}) target_link_libraries(dolphinstatic @@ -295,21 +325,36 @@ if (HAVE_KACTIVITIES) ) endif() -set(dolphin_SRCS +if (HAVE_KUSERFEEDBACK) + target_link_libraries( + dolphinstatic + KUserFeedbackCore + KUserFeedbackWidgets + ) +endif() + +add_executable(dolphin) + +target_sources(dolphin PRIVATE dbusinterface.cpp main.cpp ) +if(FLATPAK) + target_compile_definitions(dolphin PRIVATE FLATPAK) +endif() + # Sets the icon on Windows and OSX file(GLOB ICONS_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/icons/*system-file-manager.png") -ecm_add_app_icon(dolphin_SRCS ICONS ${ICONS_SRCS}) - -kf5_add_kdeinit_executable(dolphin ${dolphin_SRCS}) - +ecm_add_app_icon(dolphin_APPICON_SRCS ICONS ${ICONS_SRCS}) +# ecm_add_app_icon 5.83 will take target as arg, use that once it is min req. +target_sources(dolphin PRIVATE + ${dolphin_APPICON_SRCS} +) -target_link_libraries(kdeinit_dolphin PUBLIC - dolphinprivate +target_link_libraries(dolphin PRIVATE + dolphinprivate dolphinstatic KF5::Crash ) @@ -317,81 +362,80 @@ target_link_libraries(kdeinit_dolphin PUBLIC include(DbusInterfaceMacros) generate_and_install_dbus_interface( - kdeinit_dolphin + dolphin dbusinterface.h org.freedesktop.FileManager1.xml OPTIONS -a ) -install(TARGETS kdeinit_dolphin ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) install(TARGETS dolphin ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) ########################################## -set(kcm_dolphinviewmodes_PART_SRCS - settings/kcm/kcmdolphinviewmodes.cpp - settings/viewmodes/dolphinfontrequester.cpp - settings/viewmodes/viewmodesettings.cpp - settings/viewmodes/viewsettingstab.cpp - views/zoomlevelinfo.cpp) - -set(kcm_dolphinnavigation_PART_SRCS - settings/kcm/kcmdolphinnavigation.cpp - settings/navigation/navigationsettingspage.cpp - settings/settingspagebase.cpp) - -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) - -kconfig_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 -) +if(NOT WIN32) + # The settings are still accessible from the hamburger menu + add_library(kcm_dolphinviewmodes) + kcoreaddons_desktop_to_json(kcm_dolphinviewmodes settings/kcm/kcmdolphinviewmodes.desktop) + add_library(kcm_dolphinnavigation) + kcoreaddons_desktop_to_json(kcm_dolphinnavigation settings/kcm/kcmdolphinnavigation.desktop) + add_library(kcm_dolphingeneral) + kcoreaddons_desktop_to_json(kcm_dolphingeneral settings/kcm/kcmdolphingeneral.desktop) + + target_sources(kcm_dolphinviewmodes PRIVATE + settings/kcm/kcmdolphinviewmodes.cpp + settings/viewmodes/dolphinfontrequester.cpp + settings/viewmodes/viewmodesettings.cpp + settings/viewmodes/viewsettingstab.cpp + views/zoomlevelinfo.cpp) + + target_sources(kcm_dolphinnavigation PRIVATE + settings/kcm/kcmdolphinnavigation.cpp + settings/navigation/navigationsettingspage.cpp + settings/settingspagebase.cpp) + + target_sources(kcm_dolphingeneral PRIVATE + 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) + + kconfig_add_kcfg_files(kcm_dolphinviewmodes + settings/dolphin_compactmodesettings.kcfgc + settings/dolphin_directoryviewpropertysettings.kcfgc + settings/dolphin_detailsmodesettings.kcfgc + settings/dolphin_iconsmodesettings.kcfgc + settings/dolphin_generalsettings.kcfgc + settings/dolphin_versioncontrolsettings.kcfgc + ) -kconfig_add_kcfg_files(kcm_dolphinnavigation_PART_SRCS - settings/dolphin_generalsettings.kcfgc) + kconfig_add_kcfg_files(kcm_dolphinnavigation + settings/dolphin_generalsettings.kcfgc) -kconfig_add_kcfg_files(kcm_dolphinservices_PART_SRCS - settings/dolphin_generalsettings.kcfgc - settings/dolphin_versioncontrolsettings.kcfgc) + kconfig_add_kcfg_files(kcm_dolphingeneral + settings/dolphin_generalsettings.kcfgc) -kconfig_add_kcfg_files(kcm_dolphingeneral_PART_SRCS - settings/dolphin_generalsettings.kcfgc) + target_link_libraries(kcm_dolphinviewmodes dolphinprivate) + target_link_libraries(kcm_dolphinnavigation dolphinprivate) + target_link_libraries(kcm_dolphingeneral dolphinprivate) -add_library(kcm_dolphinviewmodes MODULE ${kcm_dolphinviewmodes_PART_SRCS}) -add_library(kcm_dolphinnavigation MODULE ${kcm_dolphinnavigation_PART_SRCS}) -add_library(kcm_dolphinservices MODULE ${kcm_dolphinservices_PART_SRCS}) -add_library(kcm_dolphingeneral MODULE ${kcm_dolphingeneral_PART_SRCS}) + install( FILES org.kde.dolphin.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR} ) + install( FILES settings/kcm/kcmdolphinviewmodes.desktop DESTINATION ${KDE_INSTALL_KSERVICES5DIR} ) + install( FILES settings/kcm/kcmdolphinnavigation.desktop DESTINATION ${KDE_INSTALL_KSERVICES5DIR} ) + install( FILES settings/kcm/kcmdolphingeneral.desktop DESTINATION ${KDE_INSTALL_KSERVICES5DIR} ) -target_link_libraries(kcm_dolphinviewmodes dolphinprivate) -target_link_libraries(kcm_dolphinnavigation dolphinprivate) -target_link_libraries(kcm_dolphinservices dolphinprivate) -target_link_libraries(kcm_dolphingeneral dolphinprivate) - -install(TARGETS kcm_dolphinviewmodes DESTINATION ${KDE_INSTALL_PLUGINDIR} ) -install(TARGETS kcm_dolphinnavigation DESTINATION ${KDE_INSTALL_PLUGINDIR} ) -install(TARGETS kcm_dolphinservices DESTINATION ${KDE_INSTALL_PLUGINDIR} ) -install(TARGETS kcm_dolphingeneral DESTINATION ${KDE_INSTALL_PLUGINDIR} ) + install(TARGETS kcm_dolphinviewmodes DESTINATION ${KDE_INSTALL_PLUGINDIR}/dolphin/kcms ) + install(TARGETS kcm_dolphinnavigation DESTINATION ${KDE_INSTALL_PLUGINDIR}/dolphin/kcms ) + install(TARGETS kcm_dolphingeneral DESTINATION ${KDE_INSTALL_PLUGINDIR}/dolphin/kcms ) +endif() -add_subdirectory(settings/services/servicemenuinstaller) +if(NOT WIN32) + add_subdirectory(settings/contextmenu/servicemenuinstaller) + install( FILES settings/contextmenu/servicemenu.knsrc DESTINATION ${KDE_INSTALL_KNSRCDIR} ) +endif() ########### install files ############### @@ -405,17 +449,12 @@ install( 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_versioncontrolsettings.kcfg DESTINATION ${KDE_INSTALL_KCFGDIR} ) -install( FILES org.kde.dolphin.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR} ) -install( FILES settings/kcm/kcmdolphinviewmodes.desktop DESTINATION ${KDE_INSTALL_KSERVICES5DIR} ) -install( FILES settings/kcm/kcmdolphinnavigation.desktop DESTINATION ${KDE_INSTALL_KSERVICES5DIR} ) -install( FILES settings/kcm/kcmdolphinservices.desktop DESTINATION ${KDE_INSTALL_KSERVICES5DIR} ) -install( FILES settings/kcm/kcmdolphingeneral.desktop DESTINATION ${KDE_INSTALL_KSERVICES5DIR} ) -install( FILES settings/services/servicemenu.knsrc DESTINATION ${KDE_INSTALL_CONFDIR} ) if(BUILD_TESTING) find_package(Qt5Test ${QT_MIN_VERSION} CONFIG REQUIRED)