From c21542aa4dc21219c24d7d7c72bce237205ad43e Mon Sep 17 00:00:00 2001 From: Petross404 Date: Tue, 7 Nov 2017 18:12:20 +0200 Subject: [PATCH 1/7] Slowly fixing cmakelists.txt --- CMakeLists.txt | 55 +++++++++++++++++++++++++++++++++----------- icons/CMakeLists.txt | 3 +-- 2 files changed, 42 insertions(+), 16 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b6eea00..84ca057 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,12 +1,32 @@ +cmake_minimum_required(VERSION 3.0.0) + project(kdevkernel) +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") -find_package(KDE4 4.7.0 REQUIRED) -find_package(KDevPlatform 1.2.60 REQUIRED) +#find_package(KDE4 4.7.0 REQUIRED) +find_package(ECM REQUIRED NO_MODULE) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") +set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH}) + +set(MIN_KDEV_VERSION "5.1.80") +set(MIN_QT_VER "5.5.0") +set(MIN_KF_VER "5.15.0") + +find_package(KDevelop ${MIN_KDEV_VERSION} REQUIRED) + +include(KDECompilerSettings NO_POLICY_SCOPE) +include(ECMAddTests) +include(KDEInstallDirs) +include(KDECMakeSettings) +include(FeatureSummary) + +find_package(Qt5 ${MIN_QT_VER} CONFIG REQUIRED Core Gui Widgets Test) +find_package(KF5 ${MIN_KF_VER} REQUIRED COMPONENTS ItemModels TextEditor) +find_package(KDevPlatform ${MIN_KDEV_VERSION} REQUIRED CONFIG) +#message(STATUS "${KDEVPLATFORM_INCLUDE_DIR}") include_directories( - ${KDE4_INCLUDES} + ${KF5_INCLUDES} ${KDEVPLATFORM_INCLUDE_DIR} ${KDEVPLATFORM_INCLUDE_DIR}/../kdevelop ${CMAKE_CURRENT_BINARY_DIR} @@ -14,18 +34,19 @@ include_directories( ${CMAKE_SOURCE_DIR} ${CMAKE_PREFIX_PATH}/include/kdevelop ) - +#message(STATUS ${KDEVPLATFORM_INCLUDE_DIR}) set(kdevkernel_plugin_SRCS kdevkernelplugin.cpp ) -kde4_add_plugin(kdevkernel +#kde4_add_plugin(kdevkernel +kdevplatform_add_plugin(kdevkernel SOURCES ${kdevkernel_plugin_SRCS}) target_link_libraries(kdevkernel - ${KDEVPLATFORM_PROJECT_LIBRARIES} - ${KDEVPLATFORM_INTERFACES_LIBRARIES} - ${KDEVPLATFORM_UTIL_LIBRARIES} - ${KDEVPLATFORM_OUTPUTVIEW_LIBRARIES} + KDev::Interfaces + KDev::Project + KDev::OutputView + KDev::Util ) set (kdevkernel_kcm_SRCS @@ -33,10 +54,15 @@ set (kdevkernel_kcm_SRCS kdevkernelconfigwidget.cpp ) -kde4_add_ui_files(kdevkernel_kcm_SRCS kdevkernelconfigwidget.ui) -kde4_add_kcfg_files(kdevkernel_kcm_SRCS kcfg_kdevkernelconfig.kcfgc) -kde4_add_plugin(kcm_kdevkernel ${kdevkernel_kcm_SRCS}) -target_link_libraries(kcm_kdevkernel ${KDE4_KIO_LIBS} ${KDEVPLATFORM_INTERFACES_LIBRARIES} ${KDEVPLATFORM_LANGUAGE_LIBRARIES} ${KDEVPLATFORM_PROJECT_LIBRARIES} ${KDEVPLATFORM_UTIL_LIBRARIES}) +ki18n_wrap_ui(kdevkernel_kcm_SRCS kdevkernelconfigwidget.ui) +kconfig_add_kcfg_files(kdevkernel_kcm_SRCS kcfg_kdevkernelconfig.kcfgc) +kdevplatform_add_plugin(kcm_kdevkernel SOURCES ${kdevkernel_kcm_SRCS}) +target_link_libraries(kcm_kdevkernel KF5::KIOCore + KDev::Interfaces + KDev::Project + KDev::Language + KDev::Util + ) install( TARGETS kdevkernel @@ -51,3 +77,4 @@ install( ) add_subdirectory(icons) +feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) \ No newline at end of file diff --git a/icons/CMakeLists.txt b/icons/CMakeLists.txt index 1cc0772..81eaeab 100644 --- a/icons/CMakeLists.txt +++ b/icons/CMakeLists.txt @@ -1,2 +1 @@ -kde4_install_icons(${ICON_INSTALL_DIR}) - +#ecm_install_icons(${ICON_INSTALL_DIR}) \ No newline at end of file From cf25f7948733f9c3bc9ecf85ac5356b1603fc97a Mon Sep 17 00:00:00 2001 From: Petross404 Date: Tue, 7 Nov 2017 18:25:50 +0200 Subject: [PATCH 2/7] Slowly getting somewhere --- CMakeLists.txt | 1 + kdevkernelplugin.cpp | 1 + kdevkernelplugin.h | 1 + 3 files changed, 3 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 84ca057..751a088 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -29,6 +29,7 @@ include_directories( ${KF5_INCLUDES} ${KDEVPLATFORM_INCLUDE_DIR} ${KDEVPLATFORM_INCLUDE_DIR}/../kdevelop + ${KDEVELOP_INCLUDE_DIR/makebuilder} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR} diff --git a/kdevkernelplugin.cpp b/kdevkernelplugin.cpp index e693f14..6d55062 100644 --- a/kdevkernelplugin.cpp +++ b/kdevkernelplugin.cpp @@ -18,6 +18,7 @@ #include "kdevkernelplugin.h" #include "kdevkernelconfig.h" +#include #include #include #include diff --git a/kdevkernelplugin.h b/kdevkernelplugin.h index bc8f9a9..c3f0805 100644 --- a/kdevkernelplugin.h +++ b/kdevkernelplugin.h @@ -18,6 +18,7 @@ #ifndef KDEVKERNELPLUGIN_H #define KDEVKERNELPLUGIN_H +#include #include #include #include From e9ed188adee932c6ffb4b933ddb5d5f6852039f9 Mon Sep 17 00:00:00 2001 From: Petross404 Date: Tue, 7 Nov 2017 20:46:57 +0200 Subject: [PATCH 3/7] Setting include dirs in CMakeLists.txt --- CMakeLists.txt | 26 +++++++++++++++----------- kdevkernelplugin.cpp | 5 ++--- kdevkernelplugin.h | 4 ++-- 3 files changed, 19 insertions(+), 16 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 751a088..55bfb60 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,16 +3,22 @@ cmake_minimum_required(VERSION 3.0.0) project(kdevkernel) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") -#find_package(KDE4 4.7.0 REQUIRED) find_package(ECM REQUIRED NO_MODULE) - set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH}) set(MIN_KDEV_VERSION "5.1.80") set(MIN_QT_VER "5.5.0") set(MIN_KF_VER "5.15.0") -find_package(KDevelop ${MIN_KDEV_VERSION} REQUIRED) +#Find what is the prefix of the KDevelop installation +set(KDevelop_Include_DIR "include/kdevelop") +find_path(KDevelop_PREFIX ${KDevelop_Include_DIR}) +set(KDevelop_Include_Full_DIR ${KDevelop_PREFIX}/${KDevelop_Include_DIR}) +message(STATUS "KDevelop headers : " ${KDevelop_Include_Full_DIR}) + +set(KDevPlatform_Include_DIR "include/kdevplatform") +set(KDevPlatform_Include_Full_DIR ${KDevelop_PREFIX}/${KDevPlatform_Include_DIR}) +message(STATUS "KDevPlatform headers : " ${KDevPlatform_Include_Full_DIR}) include(KDECompilerSettings NO_POLICY_SCOPE) include(ECMAddTests) @@ -22,25 +28,23 @@ include(FeatureSummary) find_package(Qt5 ${MIN_QT_VER} CONFIG REQUIRED Core Gui Widgets Test) find_package(KF5 ${MIN_KF_VER} REQUIRED COMPONENTS ItemModels TextEditor) +find_package(KDevelop ${MIN_KDEV_VERSION} REQUIRED) find_package(KDevPlatform ${MIN_KDEV_VERSION} REQUIRED CONFIG) -#message(STATUS "${KDEVPLATFORM_INCLUDE_DIR}") include_directories( - ${KF5_INCLUDES} - ${KDEVPLATFORM_INCLUDE_DIR} - ${KDEVPLATFORM_INCLUDE_DIR}/../kdevelop - ${KDEVELOP_INCLUDE_DIR/makebuilder} + ${KDevPlatform_Include_Full_DIR} + ${KDevelop_Include_Full_DIR} + ${KDevPlatform_DIR} + ${KDevelop_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR} - ${CMAKE_PREFIX_PATH}/include/kdevelop ) -#message(STATUS ${KDEVPLATFORM_INCLUDE_DIR}) + set(kdevkernel_plugin_SRCS kdevkernelplugin.cpp ) -#kde4_add_plugin(kdevkernel kdevplatform_add_plugin(kdevkernel SOURCES ${kdevkernel_plugin_SRCS}) target_link_libraries(kdevkernel diff --git a/kdevkernelplugin.cpp b/kdevkernelplugin.cpp index 6d55062..89404a2 100644 --- a/kdevkernelplugin.cpp +++ b/kdevkernelplugin.cpp @@ -18,7 +18,6 @@ #include "kdevkernelplugin.h" #include "kdevkernelconfig.h" -#include #include #include #include @@ -50,7 +49,7 @@ K_EXPORT_PLUGIN(KernelProjectFactory( )) KDevKernelPlugin::KDevKernelPlugin(QObject *parent, const QVariantList &args) - : KDevelop::AbstractFileManagerPlugin(KernelProjectFactory::componentData(), parent) + : KDevelop::AbstractFileManagerPlugin( componentName(), parent) { Q_UNUSED(args); KDEV_USE_EXTENSION_INTERFACE(KDevelop::IBuildSystemManager) @@ -79,7 +78,7 @@ KDevelop::Path::List KDevKernelPlugin::includeDirectories(KDevelop::ProjectBaseI KUrl::List KDevKernelPlugin::includeDirectories(KDevelop::IProject *project) const { KUrl::List ret; - KUrl projectRoot = project->folder(); + KUrl projectRoot = project->sender(); KConfigGroup config(project->projectConfiguration()->group(KERN_KGROUP)); KUrl bDir(KUrl(config.readEntry(KERN_BDIR, projectRoot))); bDir.adjustPath(KUrl::AddTrailingSlash); diff --git a/kdevkernelplugin.h b/kdevkernelplugin.h index c3f0805..ed08994 100644 --- a/kdevkernelplugin.h +++ b/kdevkernelplugin.h @@ -18,16 +18,16 @@ #ifndef KDEVKERNELPLUGIN_H #define KDEVKERNELPLUGIN_H -#include #include #include #include -#include +#include #include #include #include #include #include +#include class KJob; class IMakeBuilder; From 2b60c4cd41be08d958eb55ddd8fa7057dae2fce1 Mon Sep 17 00:00:00 2001 From: Petross404 Date: Tue, 7 Nov 2017 21:12:45 +0200 Subject: [PATCH 4/7] How to move on from here? --- CMakeLists.txt | 1 + kcm_kdevkernel.h | 3 ++- kdevkernelconfigwidget.cpp | 27 +++++++++++++++------------ 3 files changed, 18 insertions(+), 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 55bfb60..e1d1783 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,6 +2,7 @@ cmake_minimum_required(VERSION 3.0.0) project(kdevkernel) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") +set(AUTOMOC ON) find_package(ECM REQUIRED NO_MODULE) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH}) diff --git a/kcm_kdevkernel.h b/kcm_kdevkernel.h index b7dc545..6b843f3 100644 --- a/kcm_kdevkernel.h +++ b/kcm_kdevkernel.h @@ -18,7 +18,8 @@ #ifndef KCM_KDEVKERNEL_H #define KCM_KDEVKERNEL_H -#include +// Probably this got removed +//#include #include "kdevkernelplugin.h" class KDevKernelConfig; diff --git a/kdevkernelconfigwidget.cpp b/kdevkernelconfigwidget.cpp index 54aed9e..dc8ca40 100644 --- a/kdevkernelconfigwidget.cpp +++ b/kdevkernelconfigwidget.cpp @@ -26,6 +26,7 @@ #include #include #include +#include KDevKernelConfigWidget::KDevKernelConfigWidget(QWidget *parent, const QString &projectRoot) : QWidget(parent), _projectRoot(projectRoot) { @@ -47,9 +48,11 @@ void KDevKernelConfigWidget::loadFrom(KConfig *config) KConfigGroup group(config->group(KERN_KGROUP)); // Fill in the arch values - KUrl pRoot(_projectRoot); - pRoot.adjustPath(KUrl::AddTrailingSlash); - QDir archDir(KUrl(pRoot, "arch").toLocalFile()); + //QUrl pRoot(_projectRoot); + QUrl pRoot(_projectRoot); + pRoot.adjustPath(QUrl::StripTrailingSlash ); + //QDir archDir(QUrl(pRoot, "arch").toLocalFile()); + QDir archDir(QUrl(pRoot, "arch").toLocalFile()); archDir.setFilter(QDir::Dirs); foreach (const QString &archEntry, archDir.entryList()) { if (archEntry.startsWith('.')) continue; @@ -57,7 +60,7 @@ void KDevKernelConfigWidget::loadFrom(KConfig *config) } if (group.hasKey(KERN_BDIR)) { - buildDir->setUrl(group.readEntry(KERN_BDIR, KUrl())); + buildDir->setUrl(group.readEntry(KERN_BDIR, QUrl())); } else { buildDir->setStartDir(pRoot); } @@ -71,9 +74,9 @@ void KDevKernelConfigWidget::loadFrom(KConfig *config) } if (group.hasKey(KERN_CROSS)) { - crossCompiler->setUrl(KUrl(group.readEntry(KERN_CROSS, "") + "gcc")); + crossCompiler->setUrl(QUrl(group.readEntry(KERN_CROSS, "") + "gcc")); } else { - crossCompiler->setStartDir(KUrl("/usr/bin/")); + crossCompiler->setStartDir(QUrl("/usr/bin/")); } } @@ -102,9 +105,9 @@ void KDevKernelConfigWidget::saveTo(KConfig *config, KDevelop::IProject *project // Remove the .config file if configuration changed. This will trigger // the corresponding make rule from the plugin the next time we parse. if (defconfig->currentText() != group.readEntry(KERN_DEFCONFIG, "")) { - KUrl buildDir(group.readEntry(KERN_BDIR, _projectRoot)); - buildDir.adjustPath(KUrl::AddTrailingSlash); - QFile dotConfig(KUrl(buildDir, ".config").toLocalFile()); + QUrl buildDir(group.readEntry(KERN_BDIR, _projectRoot)); + buildDir.adjustPath(QUrl::AddTrailingSlash); + QFile dotConfig(QUrl(buildDir, ".config").toLocalFile()); if (dotConfig.exists()) dotConfig.remove(); } @@ -125,9 +128,9 @@ void KDevKernelConfigWidget::archChanged (const QString &arch) defconfig->clear(); // Fill in the configs values - KUrl pRoot(_projectRoot); - pRoot.adjustPath(KUrl::AddTrailingSlash); - QDir configDirs(KUrl(pRoot, QString("arch/%1/configs").arg(arch)).toLocalFile()); + QUrl pRoot(_projectRoot); + pRoot.adjustPath(QUrl::AddTrailingSlash); + QDir configDirs(QUrl(pRoot, QString("arch/%1/configs").arg(arch)).toLocalFile()); foreach (const QString &configFile, configDirs.entryList()) { if (configFile.startsWith('.')) continue; defconfig->addItem(configFile.left(configFile.size() - QString("_defconfig").size())); From 67c275271b245e542faa72f8acdb596670564682 Mon Sep 17 00:00:00 2001 From: Petross404 Date: Tue, 7 Nov 2017 21:17:18 +0200 Subject: [PATCH 5/7] Remove absolute header path. Cmake is configured to include header dirs or kdevelop in the project --- kdevkernelplugin.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kdevkernelplugin.h b/kdevkernelplugin.h index ed08994..217d88e 100644 --- a/kdevkernelplugin.h +++ b/kdevkernelplugin.h @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include #include #include From 7274904d85678e146cc47bc8548f19712317d3ef Mon Sep 17 00:00:00 2001 From: Petross404 Date: Wed, 8 Nov 2017 11:45:42 +0200 Subject: [PATCH 6/7] kcm module needs to be written again. kdevplatform seems to not have the needed headers --- CMakeLists.txt | 36 ++++++++++++++++++------------------ kcm_kdevkernel.h | 2 ++ kdevkernelconfigwidget.cpp | 3 ++- 3 files changed, 22 insertions(+), 19 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e1d1783..bdc397c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -55,26 +55,26 @@ target_link_libraries(kdevkernel KDev::Util ) -set (kdevkernel_kcm_SRCS - kcm_kdevkernel.cpp - kdevkernelconfigwidget.cpp -) +#set (kdevkernel_kcm_SRCS +# kcm_kdevkernel.cpp +# kdevkernelconfigwidget.cpp +#) -ki18n_wrap_ui(kdevkernel_kcm_SRCS kdevkernelconfigwidget.ui) -kconfig_add_kcfg_files(kdevkernel_kcm_SRCS kcfg_kdevkernelconfig.kcfgc) -kdevplatform_add_plugin(kcm_kdevkernel SOURCES ${kdevkernel_kcm_SRCS}) -target_link_libraries(kcm_kdevkernel KF5::KIOCore - KDev::Interfaces - KDev::Project - KDev::Language - KDev::Util - ) +#ki18n_wrap_ui(kdevkernel_kcm_SRCS kdevkernelconfigwidget.ui) +#kconfig_add_kcfg_files(kdevkernel_kcm_SRCS kcfg_kdevkernelconfig.kcfgc) +#kdevplatform_add_plugin(kcm_kdevkernel SOURCES ${kdevkernel_kcm_SRCS}) +#target_link_libraries(kcm_kdevkernel KF5::KIOCore +# KDev::Interfaces +# KDev::Project +# KDev::Language +# KDev::Util +# ) -install( - TARGETS kdevkernel - kcm_kdevkernel - DESTINATION ${PLUGIN_INSTALL_DIR} -) +#install( +# TARGETS kdevkernel +# kcm_kdevkernel +# DESTINATION ${PLUGIN_INSTALL_DIR} +#) install( FILES kdevkernel.desktop diff --git a/kcm_kdevkernel.h b/kcm_kdevkernel.h index 6b843f3..1fcd224 100644 --- a/kcm_kdevkernel.h +++ b/kcm_kdevkernel.h @@ -21,10 +21,12 @@ // Probably this got removed //#include #include "kdevkernelplugin.h" +#include class KDevKernelConfig; class KDevKernelKCModule : public ProjectKCModule +//class KDevKernelKCModule : public Pro { Q_OBJECT public: diff --git a/kdevkernelconfigwidget.cpp b/kdevkernelconfigwidget.cpp index dc8ca40..0d00bc1 100644 --- a/kdevkernelconfigwidget.cpp +++ b/kdevkernelconfigwidget.cpp @@ -27,6 +27,7 @@ #include #include #include +#include KDevKernelConfigWidget::KDevKernelConfigWidget(QWidget *parent, const QString &projectRoot) : QWidget(parent), _projectRoot(projectRoot) { @@ -52,7 +53,7 @@ void KDevKernelConfigWidget::loadFrom(KConfig *config) QUrl pRoot(_projectRoot); pRoot.adjustPath(QUrl::StripTrailingSlash ); //QDir archDir(QUrl(pRoot, "arch").toLocalFile()); - QDir archDir(QUrl(pRoot, "arch").toLocalFile()); + QDir archDir(KUrl(pRoot, "arch").toLocalFile()); archDir.setFilter(QDir::Dirs); foreach (const QString &archEntry, archDir.entryList()) { if (archEntry.startsWith('.')) continue; From a1c0789d8ad64ae8bfd0e5993f4d3bd31893ad1d Mon Sep 17 00:00:00 2001 From: Petross404 Date: Wed, 8 Nov 2017 11:54:49 +0200 Subject: [PATCH 7/7] fix header inclution --- kcm_kdevkernel.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kcm_kdevkernel.h b/kcm_kdevkernel.h index 1fcd224..4d486ae 100644 --- a/kcm_kdevkernel.h +++ b/kcm_kdevkernel.h @@ -21,7 +21,7 @@ // Probably this got removed //#include #include "kdevkernelplugin.h" -#include +//#include class KDevKernelConfig;