]> cloud.milkyroute.net Git - dolphin.git/commitdiff
KF5ify Dolphin.
authorChristophe Giboudeaux <cgiboudeaux@gmx.com>
Sat, 28 Jun 2014 22:49:11 +0000 (00:49 +0200)
committerChristophe Giboudeaux <cgiboudeaux@gmx.com>
Sat, 28 Jun 2014 23:35:37 +0000 (01:35 +0200)
CMakeLists.txt
src/CMakeLists.txt
src/config-dolphin.h.cmake [new file with mode: 0644]
src/dolphinviewcontainer.h

index ee27a24c852afc665957d28f85dea97e900b1b46..c6cf5df81cc81e21624936d0ca5e5a02e1d20a31 100644 (file)
@@ -1,2 +1,62 @@
-add_definitions(-Wno-deprecated-declarations)
+cmake_minimum_required(VERSION 2.8.12)
+
+project(Dolphin)
+
+# ECM setup
+find_package(ECM 0.0.14 CONFIG REQUIRED)
+set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
+
+set(DOLPHIN_VERSION "4.97.0")
+
+include(ECMSetupVersion)
+include(GenerateExportHeader)
+include(FeatureSummary)
+include(KDEInstallDirs)
+include(KDECMakeSettings)
+include(KDEFrameworkCompilerSettings)
+
+ecm_setup_version(${DOLPHIN_VERSION} VARIABLE_PREFIX DOLPHINPRIVATE
+                  SOVERSION 5
+)
+
+find_package(KF5 REQUIRED COMPONENTS Init KCMUtils KDELibs4Support NewStuff)
+find_package(KF5 COMPONENTS Activities)
+
+find_package(Phonon4Qt5 CONFIG REQUIRED)
+
+if ("${CMAKE_SOURCE_DIR}" STREQUAL "${Dolphin_SOURCE_DIR}")
+    find_package(KF5Konq CONFIG REQUIRED)
+else()
+    include_directories(${LibKonq_SOURCE_DIR}/src)
+endif()
+
+find_package(KF5Baloo 4.97)
+set_package_properties(KF5Baloo PROPERTIES DESCRIPTION "Baloo Core libraries"
+                       URL "http://www.kde.org"
+                       TYPE OPTIONAL
+                       PURPOSE "For adding desktop-wide search and tagging support to dolphin"
+                      )
+
+find_package(KF5BalooWidgets 4.97)
+set_package_properties(KF5BalooWidgets PROPERTIES DESCRIPTION "Baloos Widgets"
+                       URL "http://www.kde.org"
+                       TYPE OPTIONAL
+                      )
+
+find_package(KF5FileMetaData 4.97)
+set_package_properties(KF5FileMetaData PROPERTIES
+                       URL "https://projects.kde.org/kfilemetadata"
+                       TYPE OPTIONAL
+                       PURPOSE "For accessing file metadata labels"
+                      )
+
+if (KF5Baloo_FOUND AND KF5BalooWidgets_FOUND AND KF5FileMetaData_FOUND)
+    set(HAVE_BALOO TRUE)
+endif()
+
 add_subdirectory(src)
+
+# TODO Remove the if/endif lines if Dolphin is split.
+if ("${CMAKE_SOURCE_DIR}" STREQUAL "${Dolphin_SOURCE_DIR}")
+  feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
+endif()
index dbce551f3287b3d000b09376cb9cef01336e2854..b46182cd43219111ec35f3ce6c25f363dfd446fb 100644 (file)
@@ -1,49 +1,20 @@
-add_definitions(-DTRANSLATION_DOMAIN=\"dolphin\")
-
-ecm_setup_version(${KDE_BASEAPPS_VERSION} VARIABLE_PREFIX DOLPHINPRIVATE
-                       SOVERSION 5
-)
-
-find_package(KF5Baloo 4.97)
-set_package_properties(KF5Baloo PROPERTIES DESCRIPTION "Baloo Core libraries"
-                       URL "http://www.kde.org"
-                       TYPE OPTIONAL
-                       PURPOSE "For adding desktop-wide search and tagging support to dolphin"
-                      )
-
-find_package(KF5BalooWidgets 4.97)
-set_package_properties(KF5BalooWidgets PROPERTIES DESCRIPTION "Baloos Widgets"
-                       URL "http://www.kde.org"
-                       TYPE OPTIONAL
-                      )
-
-find_package(KF5FileMetaData 4.97)
-set_package_properties(KF5FileMetaData PROPERTIES
-                       URL "https://projects.kde.org/kfilemetadata"
-                       TYPE OPTIONAL
-                       PURPOSE "For accessing file metadata labels"
-                      )
-
-if (KF5Baloo_FOUND AND KF5BalooWidgets_FOUND AND KF5FileMetaData_FOUND)
-    set(HAVE_BALOO TRUE)
-endif()
-
-find_package(KF5NewStuff CONFIG REQUIRED)
-find_package(KF5KCMUtils CONFIG REQUIRED)
-find_package(Phonon4Qt5 CONFIG REQUIRED)
 
-configure_file(config-baloo.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-baloo.h )
+configure_file(config-baloo.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-baloo.h)
 
-macro_bool_to_01(X11_Xrender_FOUND HAVE_XRENDER)
-configure_file(config-X11.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-X11.h )
+configure_file(config-dolphin.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-dolphin.h)
 
-include_directories( ${KACTIVITIES_INCLUDE_DIRS} ${CMAKE_CURRENT_BINARY_DIR} )
+add_definitions(-DTRANSLATION_DOMAIN=\"dolphin\")
+add_definitions(-Wno-deprecated-declarations)
+remove_definitions(-DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_URL_CAST_FROM_STRING)
 
-if(HAVE_BALOO)
-  include_directories(${BALOO_INCLUDE_DIR} ${BALOO_WIDGETS_INCLUDE_DIR} ${KFILEMETADATA_INCLUDE_DIR})
+if(X11_Xrender_FOUND)
+    set(HAVE_XRENDER TRUE)
 endif()
 
-add_subdirectory(tests)
+configure_file(config-X11.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-X11.h)
+
+# TODO Reenable
+#add_subdirectory(tests)
 
 ########### next target ###############
 
@@ -114,7 +85,7 @@ if(HAVE_BALOO)
     )
 endif()
 
-kde4_add_kcfg_files(dolphinprivate_LIB_SRCS
+kconfig_add_kcfg_files(dolphinprivate_LIB_SRCS
     settings/dolphin_compactmodesettings.kcfgc
     settings/dolphin_directoryviewpropertysettings.kcfgc
     settings/dolphin_detailsmodesettings.kcfgc
@@ -123,13 +94,13 @@ kde4_add_kcfg_files(dolphinprivate_LIB_SRCS
     settings/dolphin_versioncontrolsettings.kcfgc
 )
 
-kde4_add_library(dolphinprivate SHARED ${dolphinprivate_LIB_SRCS})
+add_library(dolphinprivate ${dolphinprivate_LIB_SRCS})
 
 target_link_libraries(
     dolphinprivate PUBLIC
+    KF5::KDELibs4Support
     KF5::Konq
     KF5::NewStuff
-    KF5::KDELibs4Support
 )
 
 if(HAVE_BALOO)
@@ -146,8 +117,12 @@ if(X11_Xrender_FOUND)
     target_link_libraries(dolphinprivate ${X11_Xrender_LIB})
 endif(X11_Xrender_FOUND)
 
-set_target_properties(dolphinprivate PROPERTIES VERSION ${DOLPHINPRIVATE_VERSION_STRING} SOVERSION ${DOLPHINPRIVATE_SOVERSION} )
-install(TARGETS dolphinprivate  ${INSTALL_TARGETS_DEFAULT_ARGS})
+set_target_properties(dolphinprivate PROPERTIES
+    VERSION ${DOLPHINPRIVATE_VERSION_STRING}
+    SOVERSION ${DOLPHINPRIVATE_SOVERSION}
+)
+
+install(TARGETS dolphinprivate ${KF5_INSTALL_TARGETS_DEFAULT_ARGS})
 
 ##########################################
 
@@ -156,14 +131,18 @@ set(dolphinpart_SRCS
    dolphinpart_ext.cpp
 )
 
-kde4_add_plugin(dolphinpart ${dolphinpart_SRCS})
+add_library(dolphinpart MODULE ${dolphinpart_SRCS})
 
-target_link_libraries(dolphinpart dolphinprivate KF5::Konq ${KDE4_KPARTS_LIBS} ${KDE4_KFILE_LIBS})
+target_link_libraries(dolphinpart
+    dolphinprivate
+    KF5::Konq
+    KF5::KDELibs4Support
+)
 
 install(TARGETS dolphinpart DESTINATION ${PLUGIN_INSTALL_DIR})
 
 install(FILES dolphinpart.rc DESTINATION ${DATA_INSTALL_DIR}/dolphinpart)
-install(FILES dolphinpart.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
+install(FILES dolphinpart.desktop DESTINATION ${SERVICES_INSTALL_DIR})
 install(FILES views/versioncontrol/fileviewversioncontrolplugin.desktop DESTINATION ${SERVICETYPES_INSTALL_DIR})
 
 ##########################################
@@ -221,7 +200,7 @@ set(dolphin_SRCS
     views/zoomlevelinfo.cpp
 )
 
-kde4_add_kcfg_files(dolphin_SRCS
+kconfig_add_kcfg_files(dolphin_SRCS
     panels/folders/dolphin_folderspanelsettings.kcfgc
     panels/information/dolphin_informationpanelsettings.kcfgc
     panels/places/dolphin_placespanelsettings.kcfgc
@@ -235,11 +214,12 @@ kde4_add_kcfg_files(dolphin_SRCS
 
 if(NOT WIN32)
    set(dolphin_SRCS ${dolphin_SRCS} panels/terminal/terminalpanel.cpp)
-endif(NOT WIN32)
+endif()
 
-kde4_add_app_icon(dolphin_SRCS "${KDE4_ICON_INSTALL_DIR}/oxygen/*/apps/system-file-manager.png")
+# TODO Does anything replace kde4_add_app_icon ?
+#kde4_add_app_icon(dolphin_SRCS "${KDE4_ICON_INSTALL_DIR}/oxygen/*/apps/system-file-manager.png")
 
-kde4_add_kdeinit_executable(dolphin ${dolphin_SRCS})
+kf5_add_kdeinit_executable(dolphin ${dolphin_SRCS})
 
 target_include_directories(kdeinit_dolphin PRIVATE ${PHONON_INCLUDES})
 
@@ -261,8 +241,8 @@ if (KF5Activities_FOUND)
     )
 endif()
 
-install(TARGETS kdeinit_dolphin ${INSTALL_TARGETS_DEFAULT_ARGS})
-install(TARGETS dolphin ${INSTALL_TARGETS_DEFAULT_ARGS})
+install(TARGETS kdeinit_dolphin ${KF5_INSTALL_TARGETS_DEFAULT_ARGS})
+install(TARGETS dolphin ${KF5_INSTALL_TARGETS_DEFAULT_ARGS})
 
 ##########################################
 
@@ -295,7 +275,7 @@ set(kcm_dolphingeneral_PART_SRCS
     settings/serviceitemdelegate.cpp
     settings/servicemodel.cpp)
 
-kde4_add_kcfg_files(kcm_dolphinviewmodes_PART_SRCS
+kconfig_add_kcfg_files(kcm_dolphinviewmodes_PART_SRCS
     settings/dolphin_compactmodesettings.kcfgc
     settings/dolphin_directoryviewpropertysettings.kcfgc
     settings/dolphin_detailsmodesettings.kcfgc
@@ -304,25 +284,25 @@ kde4_add_kcfg_files(kcm_dolphinviewmodes_PART_SRCS
     settings/dolphin_versioncontrolsettings.kcfgc
 )
 
-kde4_add_kcfg_files(kcm_dolphinnavigation_PART_SRCS
+kconfig_add_kcfg_files(kcm_dolphinnavigation_PART_SRCS
     settings/dolphin_generalsettings.kcfgc)
 
-kde4_add_kcfg_files(kcm_dolphinservices_PART_SRCS
+kconfig_add_kcfg_files(kcm_dolphinservices_PART_SRCS
     settings/dolphin_generalsettings.kcfgc
     settings/dolphin_versioncontrolsettings.kcfgc)
 
-kde4_add_kcfg_files(kcm_dolphingeneral_PART_SRCS
+kconfig_add_kcfg_files(kcm_dolphingeneral_PART_SRCS
     settings/dolphin_generalsettings.kcfgc)
 
-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})
+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})
 
-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)
+target_link_libraries(kcm_dolphinviewmodes KF5::KDELibs4Support dolphinprivate)
+target_link_libraries(kcm_dolphinnavigation KF5::KDELibs4Support dolphinprivate)
+target_link_libraries(kcm_dolphinservices KF5::KDELibs4Support dolphinprivate)
+target_link_libraries(kcm_dolphingeneral KF5::KDELibs4Support dolphinprivate)
 
 install(TARGETS kcm_dolphinviewmodes DESTINATION ${PLUGIN_INSTALL_DIR} )
 install(TARGETS kcm_dolphinnavigation DESTINATION ${PLUGIN_INSTALL_DIR} )
@@ -333,8 +313,11 @@ install(TARGETS kcm_dolphingeneral DESTINATION ${PLUGIN_INSTALL_DIR} )
 
 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})
+
+add_library(kio_filenamesearch MODULE ${kio_search_PART_SRCS})
+
+target_link_libraries(kio_filenamesearch KF5::KDELibs4Support)
+
 install(TARGETS kio_filenamesearch DESTINATION ${PLUGIN_INSTALL_DIR})
 
 ########### install files ###############
@@ -357,4 +340,3 @@ install( FILES settings/kcm/kcmdolphingeneral.desktop DESTINATION ${SERVICES_INS
 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} )
-
diff --git a/src/config-dolphin.h.cmake b/src/config-dolphin.h.cmake
new file mode 100644 (file)
index 0000000..45e7208
--- /dev/null
@@ -0,0 +1,4 @@
+
+/* Define to 1 if you have the KActivities library. */
+#cmakedefine KF5Activities_FOUND 1
+
index a7a9969c3426c43793f5e2ea846ada8c6142db8d..4ca76961c546806786f4c35b45320521d8a62e85 100644 (file)
@@ -31,9 +31,9 @@
 #include <QWidget>
 
 #include <views/dolphinview.h>
-#include <config-apps.h>
+#include <config-dolphin.h>
 
-#ifdef KActivities_FOUND
+#ifdef KF5Activities_FOUND
 namespace KActivities {
     class ResourceInstance;
 }
@@ -345,7 +345,7 @@ private:
     KUrl m_dropDestination;
     QScopedPointer<QDropEvent> m_dropEvent;
 
-#ifdef KActivities_FOUND
+#ifdef KF5Activities_FOUND
 private:
     KActivities::ResourceInstance * m_activityResourceInstance;
 #endif