diff options
25 files changed, 126 insertions, 115 deletions
diff --git a/3rdparty/kuserfeedback b/3rdparty/kuserfeedback -Subproject 80cdb0c4659a9e764ef0b909b956d1429a43bc6 +Subproject 1eb7217db8c755177858ef68038cbf669e32f61 diff --git a/CMakeLists.txt b/CMakeLists.txt index b32558b..054f4ff 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,79 +1,81 @@ cmake_minimum_required(VERSION 3.10) project(plugin-telemetry) +find_package(Qt6 COMPONENTS Core Widgets QuickWidgets REQUIRED) -include(ExternalProject) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) +set(CMAKE_CXX_STANDARD 17) -list(APPEND CMAKE_PREFIX_PATH - ${CMAKE_CURRENT_BINARY_DIR}/extra-cmake-modules - ${CMAKE_CURRENT_BINARY_DIR}/kuserfeedback) -string(REPLACE ";" "$<SEMICOLON>" CMAKE_PREFIX_PATH_MASKED_SEMICOLON "${CMAKE_PREFIX_PATH}") -if(CMAKE_OSX_ARCHITECTURES) - string(REPLACE ";" "$<SEMICOLON>" CMAKE_OSX_ARCHITECTURES_MASKED_SEMICOLON "-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}") +# pre-configure and install extra-cmake-modules (ECM) to ensure module availability for +# kuserfeedback configuration +# with ExternalProject_Add it would install it during build, which is too late +set(ECM_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/extra-cmake-modules") +set(ECM_BUILD_DIR "${CMAKE_BINARY_DIR}/ecm_build") +set(ECM_INSTALL_DIR "${CMAKE_BINARY_DIR}/ecm_install") + +if(NOT EXISTS "${ECM_BUILD_DIR}/ECMConfig.cmake") + file(MAKE_DIRECTORY ${ECM_BUILD_DIR}) + execute_process( + COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" -DBUILD_HTML_DOCS=OFF -DBUILD_MAN_DOCS=OFF -DBUILD_QTHELP_DOCS=OFF -DCMAKE_INSTALL_PREFIX:PATH=${ECM_INSTALL_DIR} ${ECM_SOURCE_DIR} + WORKING_DIRECTORY ${ECM_BUILD_DIR} + RESULT_VARIABLE result + ) + if(result EQUAL "0") + execute_process( + COMMAND ${CMAKE_COMMAND} --build . --target install + WORKING_DIRECTORY ${ECM_BUILD_DIR} + RESULT_VARIABLE result + ) + endif() endif() -ExternalProject_Add(extra-cmake-modules - PREFIX extra-cmake-modules - SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/extra-cmake-modules" - CMAKE_ARGS - -DBUILD_HTML_DOCS=OFF - -DBUILD_MAN_DOCS=OFF - -DBUILD_QTHELP_DOCS=OFF - -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/extra-cmake-modules - "${CMAKE_OSX_ARCHITECTURES_MASKED_SEMICOLON}" -) +list(APPEND CMAKE_PREFIX_PATH ${ECM_INSTALL_DIR}) +set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared libraries" FORCE) +set(BUILD_TESTING OFF CACHE BOOL "Build tests" FORCE) +set(ENABLE_SURVEY_TARGET_EXPRESSIONS OFF CACHE BOOL "Enable survey target expressions" FORCE) +set(ENABLE_PHP OFF CACHE BOOL "Enable PHP" FORCE) +set(ENABLE_PHP_UNIT OFF CACHE BOOL "Enable PHP unit" FORCE) +set(ENABLE_DOCS OFF CACHE BOOL "Enable documentation" FORCE) +set(ENABLE_CONSOLE OFF CACHE BOOL "Enable console" FORCE) +set(ENABLE_CLI OFF CACHE BOOL "Enable CLI" FORCE) +set(ENABLE_QML OFF CACHE BOOL "Enable QML plugin" FORCE) +set(KDE_INSTALL_LIBDIR lib CACHE STRING "Lib install dir" FORCE) -set(KUSERFEEDBACK_COMPONENTS - -DBUILD_SHARED_LIBS=OFF - -DBUILD_TESTING=OFF - -DENABLE_SURVEY_TARGET_EXPRESSIONS=OFF - -DENABLE_PHP=OFF - -DENABLE_PHP_UNIT=OFF - -DENABLE_DOCS=OFF - -DENABLE_CONSOLE=OFF - -DENABLE_CLI=OFF - -DBUILD_SHARED_LIBS=OFF -) +#avoid install pollution +get_filename_component(CURRENT_BUILD_DIR_NAME ${CMAKE_CURRENT_BINARY_DIR} NAME) +get_filename_component(KDE_TEMP_INSTALL_DIR "${CMAKE_BINARY_DIR}/../${CURRENT_BUILD_DIR_NAME}_temp_kde_install" REALPATH) +set(KDE_INSTALL_LIBDIR "${KDE_TEMP_INSTALL_DIR}/lib") +set(KDE_INSTALL_BINDIR "${KDE_TEMP_INSTALL_DIR}/bin") +set(KDE_INSTALL_INCLUDEDIR "${KDE_TEMP_INSTALL_DIR}/include") +set(KDE_INSTALL_LOGGINGCATEGORIESDIR "${KDE_TEMP_INSTALL_DIR}/qlogging-categories5") -ExternalProject_Add(kuserfeedback - PREFIX kuserfeedback - SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/kuserfeedback" - LIST_SEPARATOR | - CMAKE_ARGS - ${KUSERFEEDBACK_DEFINES} - ${KUSERFEEDBACK_COMPONENTS} - -DKDE_INSTALL_LIBDIR=lib - -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} - -DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH_MASKED_SEMICOLON} - -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/kuserfeedback - "${CMAKE_OSX_ARCHITECTURES_MASKED_SEMICOLON}" - DEPENDS extra-cmake-modules -) +#overwrite internal used variable to not get the unnecessary mkspecs/modules content +set(ECM_MKSPECS_INSTALL_DIR "${KDE_TEMP_INSTALL_DIR}/mkspecs/modules" CACHE PATH "Custom mkspecs install directory" FORCE) -if(NOT DEFINED USP_SERVER_URL OR NOT DEFINED USP_AUTH_KEY) - message(WARNING "Collected data won't be sent -Define both USP_SERVER_URL and USP_AUTH_KEY to enable data submission") -endif() +# we do not install it so we can not use #include <KUserFeedback/*> +# if we want to keep that includes we would need similar approach like ECMConfig +add_subdirectory(3rdparty/kuserfeedback) -find_package(QtCreator COMPONENTS Core Debugger ProjectExplorer QtSupport QUIET) +target_include_directories(KUserFeedbackCore PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/kuserfeedback + ${CMAKE_CURRENT_BINARY_DIR}/3rdparty/kuserfeedback +) + +target_include_directories(KUserFeedbackCommon PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/kuserfeedback + ${CMAKE_CURRENT_BINARY_DIR}/3rdparty/kuserfeedback +) -if(BUILD_DESIGNSTUDIO) - set(CMAKE_INSTALL_PREFIX ${QtCreator_BINARY_DIR}) +# TODO: should we fix this in kuserfeedback? +if(MSVC) + target_compile_options(KUserFeedbackCommon PRIVATE /wd4267 /wd4996) + target_compile_options(KUserFeedbackCore PRIVATE /wd4267) +else() + target_compile_options(KUserFeedbackCommon PRIVATE -Wno-sign-conversion -Wno-deprecated-declarations -Wno-unused-parameter -Wno-unused-variable -Wno-unused-but-set-variable -Wno-unused-function) + target_compile_options(KUserFeedbackCore PRIVATE -Wno-sign-conversion) endif() -ExternalProject_Add(plugin - PREFIX plugin - SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src" - LIST_SEPARATOR | - CMAKE_ARGS - -DUSP_AUTH_KEY=${USP_AUTH_KEY} - -DUSP_SERVER_URL=${USP_SERVER_URL} - -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} - -DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH_MASKED_SEMICOLON} - -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} - -DQtCreator_BINARY_DIR:PATH=${QtCreator_BINARY_DIR} - -DQTC_MERGE_BINARY_DIR:BOOL=${QTC_MERGE_BINARY_DIR} - "${CMAKE_OSX_ARCHITECTURES_MASKED_SEMICOLON}" - DEPENDS kuserfeedback QtCreator::Core QtCreator::Debugger QtCreator::ProjectExplorer QtCreator::QtSupport - BUILD_ALWAYS ON -) +find_package(QtCreator REQUIRED) +add_subdirectory(src) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4d81f2f..3ccc58a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,16 +1,3 @@ -cmake_minimum_required(VERSION 3.9) - -project(UsageStatistic) - -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTORCC ON) -set(CMAKE_AUTOUIC ON) -set(CMAKE_CXX_STANDARD 17) - -find_package(Qt6 COMPONENTS Widgets QuickWidgets REQUIRED) -find_package(QtCreator COMPONENTS Core TextEditor ProjectExplorer VcsBase REQUIRED) -find_package(KUserFeedback REQUIRED) - add_qtc_plugin(UsageStatistic PLUGIN_DEPENDS QtCreator::Core QtCreator::Debugger QtCreator::ProjectExplorer QtCreator::QtSupport diff --git a/src/common/scopedsettingsgroupsetter.cpp b/src/common/scopedsettingsgroupsetter.cpp index 472b6fd..4b18d0e 100644 --- a/src/common/scopedsettingsgroupsetter.cpp +++ b/src/common/scopedsettingsgroupsetter.cpp @@ -26,7 +26,8 @@ #include <QSettings> -#include <KUserFeedback/AbstractDataSource> +//KUserFeedback +#include <AbstractDataSource> #include "usagestatisticconstants.h" diff --git a/src/datasources/applicationsource.h b/src/datasources/applicationsource.h index 5dc08bb..c1beebd 100644 --- a/src/datasources/applicationsource.h +++ b/src/datasources/applicationsource.h @@ -5,8 +5,9 @@ #include <QtCore/QVariantMap> -#include <KUserFeedback/AbstractDataSource> -#include <KUserFeedback/Provider> +//KUserFeedback +#include <AbstractDataSource> +#include <Provider> namespace UsageStatistic { namespace Internal { diff --git a/src/datasources/buildcountsource.cpp b/src/datasources/buildcountsource.cpp index 1a42305..51ca83c 100644 --- a/src/datasources/buildcountsource.cpp +++ b/src/datasources/buildcountsource.cpp @@ -30,7 +30,8 @@ #include <projectexplorer/buildmanager.h> -#include <KUserFeedback/Provider> +//KUserFeedback +#include <Provider> namespace UsageStatistic { namespace Internal { diff --git a/src/datasources/buildcountsource.h b/src/datasources/buildcountsource.h index 0cee9c4..5d47f92 100644 --- a/src/datasources/buildcountsource.h +++ b/src/datasources/buildcountsource.h @@ -26,7 +26,8 @@ #include <QCoreApplication> -#include <KUserFeedback/AbstractDataSource> +//KUserFeedback +#include <AbstractDataSource> namespace UsageStatistic { namespace Internal { diff --git a/src/datasources/buildsystemsource.cpp b/src/datasources/buildsystemsource.cpp index f04978b..485765b 100644 --- a/src/datasources/buildsystemsource.cpp +++ b/src/datasources/buildsystemsource.cpp @@ -32,7 +32,8 @@ #include <projectexplorer/project.h> #include <projectexplorer/projectmanager.h> -#include <KUserFeedback/Provider> +//KUserFeedback +#include <Provider> #include "common/scopedsettingsgroupsetter.h" diff --git a/src/datasources/buildsystemsource.h b/src/datasources/buildsystemsource.h index a6ab03c..52478db 100644 --- a/src/datasources/buildsystemsource.h +++ b/src/datasources/buildsystemsource.h @@ -29,7 +29,8 @@ #include <QCoreApplication> #include <QSet> -#include <KUserFeedback/AbstractDataSource> +//KUserFeedback +#include <AbstractDataSource> namespace UsageStatistic { namespace Internal { diff --git a/src/datasources/examplesdatasource.h b/src/datasources/examplesdatasource.h index be48a6b..92203c5 100644 --- a/src/datasources/examplesdatasource.h +++ b/src/datasources/examplesdatasource.h @@ -26,7 +26,8 @@ #include <QtCore/QSet> -#include <KUserFeedback/AbstractDataSource> +//KUserFeedback +#include <AbstractDataSource> namespace UsageStatistic { namespace Internal { diff --git a/src/datasources/kitsource.h b/src/datasources/kitsource.h index 23e2edf..30545dc 100644 --- a/src/datasources/kitsource.h +++ b/src/datasources/kitsource.h @@ -26,7 +26,8 @@ #include <QVariantMap> -#include <KUserFeedback/AbstractDataSource> +//KUserFeedback +#include <AbstractDataSource> namespace UsageStatistic { namespace Internal { diff --git a/src/datasources/modeusagetimesource.cpp b/src/datasources/modeusagetimesource.cpp index 6d18cd4..8618b67 100644 --- a/src/datasources/modeusagetimesource.cpp +++ b/src/datasources/modeusagetimesource.cpp @@ -29,7 +29,8 @@ #include <coreplugin/editormanager/editormanager.h> #include <coreplugin/modemanager.h> -#include <KUserFeedback/Provider> +//KUserFeedback +#include <Provider> #include "common/scopedsettingsgroupsetter.h" diff --git a/src/datasources/modeusagetimesource.h b/src/datasources/modeusagetimesource.h index e3ebd88..e4584b3 100644 --- a/src/datasources/modeusagetimesource.h +++ b/src/datasources/modeusagetimesource.h @@ -30,7 +30,8 @@ #include <utils/id.h> -#include <KUserFeedback/AbstractDataSource> +//KUserFeedback +#include <AbstractDataSource> namespace UsageStatistic { namespace Internal { diff --git a/src/datasources/qmldesignerusageeventsource.cpp b/src/datasources/qmldesignerusageeventsource.cpp index 3a2d571..e096715 100644 --- a/src/datasources/qmldesignerusageeventsource.cpp +++ b/src/datasources/qmldesignerusageeventsource.cpp @@ -32,7 +32,8 @@ #include <extensionsystem/pluginspec.h> #include <QtQuick/QQuickItem> -#include <KUserFeedback/Provider> +//KUserFeedback +#include <Provider> namespace UsageStatistic { namespace Internal { diff --git a/src/datasources/qmldesignerusageeventsource.h b/src/datasources/qmldesignerusageeventsource.h index 99c5db3..8e7c79e 100644 --- a/src/datasources/qmldesignerusageeventsource.h +++ b/src/datasources/qmldesignerusageeventsource.h @@ -24,7 +24,8 @@ ****************************************************************************/ #pragma once -#include <KUserFeedback/AbstractDataSource> +//KUserFeedback +#include <AbstractDataSource> #include <QHash> #include <QMap> diff --git a/src/datasources/qtclicensesource.cpp b/src/datasources/qtclicensesource.cpp index bee2c8c..696d914 100644 --- a/src/datasources/qtclicensesource.cpp +++ b/src/datasources/qtclicensesource.cpp @@ -29,7 +29,8 @@ #include <extensionsystem/pluginmanager.h> #include <extensionsystem/pluginspec.h> -#include <KUserFeedback/Provider> +//KUserFeedback +#include <Provider> namespace UsageStatistic { namespace Internal { diff --git a/src/datasources/qtclicensesource.h b/src/datasources/qtclicensesource.h index 80630d2..c7b5c2e 100644 --- a/src/datasources/qtclicensesource.h +++ b/src/datasources/qtclicensesource.h @@ -26,7 +26,8 @@ #include <QCoreApplication> -#include <KUserFeedback/AbstractDataSource> +//KUserFeedback +#include <AbstractDataSource> namespace UsageStatistic { namespace Internal { diff --git a/src/datasources/servicesource.h b/src/datasources/servicesource.h index 707c407..bee26e0 100644 --- a/src/datasources/servicesource.h +++ b/src/datasources/servicesource.h @@ -29,8 +29,9 @@ #include <QtCore/QVariantMap> #include <QtCore/QUuid> -#include <KUserFeedback/AbstractDataSource> -#include <KUserFeedback/Provider> +//KUserFeedback +#include <AbstractDataSource> +#include <Provider> namespace UsageStatistic { namespace Internal { diff --git a/src/datasources/timeusagesourcebase.cpp b/src/datasources/timeusagesourcebase.cpp index ab4c1e1..387838a 100644 --- a/src/datasources/timeusagesourcebase.cpp +++ b/src/datasources/timeusagesourcebase.cpp @@ -27,7 +27,8 @@ #include <QtCore/QVariant> #include <QtCore/QSettings> -#include <KUserFeedback/Provider> +//KUserFeedback +#include <Provider> #include <common/scopedsettingsgroupsetter.h> diff --git a/src/datasources/timeusagesourcebase.h b/src/datasources/timeusagesourcebase.h index e3d3730..55e0ac5 100644 --- a/src/datasources/timeusagesourcebase.h +++ b/src/datasources/timeusagesourcebase.h @@ -27,7 +27,8 @@ #include <QtCore/QObject> #include <QtCore/QElapsedTimer> -#include <KUserFeedback/AbstractDataSource> +//KUserFeedback +#include <AbstractDataSource> namespace UsageStatistic { namespace Internal { diff --git a/src/services/datasubmitter.h b/src/services/datasubmitter.h index 1ae66ac..b1b411e 100644 --- a/src/services/datasubmitter.h +++ b/src/services/datasubmitter.h @@ -24,7 +24,8 @@ ****************************************************************************/ #pragma once -#include <KUserFeedback/AbstractJsonDataSubmitter> +//KUserFeedback +#include <AbstractJsonDataSubmitter> namespace UsageStatistic { namespace Internal { diff --git a/src/ui/usagestatisticpage.cpp b/src/ui/usagestatisticpage.cpp index d86fddf..aa734bf 100644 --- a/src/ui/usagestatisticpage.cpp +++ b/src/ui/usagestatisticpage.cpp @@ -24,7 +24,8 @@ ****************************************************************************/ #include "usagestatisticpage.h" -#include <KUserFeedback/AbstractDataSource> +//KUserFeedback +#include <AbstractDataSource> #include "usagestatisticwidget.h" #include "usagestatisticconstants.h" diff --git a/src/ui/usagestatisticwidget.cpp b/src/ui/usagestatisticwidget.cpp index c13821c..fe99bb7 100644 --- a/src/ui/usagestatisticwidget.cpp +++ b/src/ui/usagestatisticwidget.cpp @@ -29,8 +29,9 @@ #include <QtCore/QJsonArray> #include <QtCore/QJsonDocument> -#include <KUserFeedback/FeedbackConfigUiController> -#include <KUserFeedback/AbstractDataSource> +//KUserFeedback +#include <FeedbackConfigUiController> +#include <AbstractDataSource> #include "usagestatisticconstants.h" diff --git a/src/ui/usagestatisticwidget.h b/src/ui/usagestatisticwidget.h index fb3341a..edbe9aa 100644 --- a/src/ui/usagestatisticwidget.h +++ b/src/ui/usagestatisticwidget.h @@ -29,7 +29,8 @@ #include <QtWidgets/QWidget> #include <QtCore/QHash> -#include <KUserFeedback/Provider> +//KUserFeedback +#include <Provider> namespace KUserFeedback { class FeedbackConfigUiController; } diff --git a/src/usagestatisticplugin.cpp b/src/usagestatisticplugin.cpp index e34e851..e539da7 100644 --- a/src/usagestatisticplugin.cpp +++ b/src/usagestatisticplugin.cpp @@ -33,19 +33,20 @@ #include <coreplugin/coreconstants.h> #include <utils/infobar.h> -#include <KUserFeedback/Provider> -#include <KUserFeedback/ApplicationVersionSource> -#include <KUserFeedback/CompilerInfoSource> -#include <KUserFeedback/CpuInfoSource> -#include <KUserFeedback/LocaleInfoSource> -#include <KUserFeedback/OpenGLInfoSource> -#include <KUserFeedback/PlatformInfoSource> -#include <KUserFeedback/QPAInfoSource> -#include <KUserFeedback/QtVersionSource> -#include <KUserFeedback/ScreenInfoSource> -#include <KUserFeedback/StartCountSource> -#include <KUserFeedback/UsageTimeSource> -#include <KUserFeedback/StyleInfoSource> +//KUserFeedback +#include <Provider> +#include <ApplicationVersionSource> +#include <CompilerInfoSource> +#include <CpuInfoSource> +#include <LocaleInfoSource> +#include <OpenGLInfoSource> +#include <PlatformInfoSource> +#include <QPAInfoSource> +#include <QtVersionSource> +#include <ScreenInfoSource> +#include <StartCountSource> +#include <UsageTimeSource> +#include <StyleInfoSource> #include "datasources/applicationsource.h" #include "datasources/buildcountsource.h" |