aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKai Koehne <kai.koehne@qt.io>2019-10-29 09:03:51 +0100
committerKai Koehne <kai.koehne@qt.io>2019-11-26 08:09:11 +0000
commitb88faae99e37d68aea4b1fd0956ad9e669d60d32 (patch)
tree5208f2f789fd5ee13bdb6947c50ef73e3fc2c218
parent03f2d7ae72b71f7320eedcdf3c2611de82be4f83 (diff)
Support building with CMakev4.11.0-rc1
Adds a meta-build that builds & installs extra-cmake-modules and kuserfeedback, and finally src. Note that the meta-build uses ExternalProject_Add, which means that any CMake variables have to be passed explicitly to the sub-projects. The new git submodule extra-cmake-modules allow us to use an unchanged version of kuserfeedback/CMakeLists.txt A typical call might look like this: export CMAKE_PREFIX_PATH=$QTDIR;$CREATOR_BUILD_DR cmake -DUSP_AUTH_KEY="..." -DUSP_SERVER_URL="..." -DCMAKE_INSTALL_PREFIX=$CREATOR_INSTALL_DIR Change-Id: I4cc7b6936cad119156f19474c57045296ff6704e Reviewed-by: Vitaly Fanaskov <vitaly.fanaskov@qt.io>
-rw-r--r--.gitmodules3
m---------3rdparty/extra-cmake-modules0
-rw-r--r--CMakeLists.txt63
-rw-r--r--src/CMakeLists.txt38
4 files changed, 104 insertions, 0 deletions
diff --git a/.gitmodules b/.gitmodules
index 0a464e5..8a90637 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,3 +1,6 @@
[submodule "3rdparty/kuserfeedback"]
path = 3rdparty/kuserfeedback
url = https://git.qt.io/aportale/kuserfeedback.git
+[submodule "3rdparty/extra-cmake-modules"]
+ path = 3rdparty/extra-cmake-modules
+ url = https://github.com/KDE/extra-cmake-modules.git
diff --git a/3rdparty/extra-cmake-modules b/3rdparty/extra-cmake-modules
new file mode 160000
+Subproject fd6e98ba6de89a7f08364bb2ec096a5310c1cde
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..895425d
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,63 @@
+cmake_minimum_required(VERSION 3.9)
+
+project(plugin-telemetry)
+
+include(ExternalProject)
+
+# Set common CMAKE_PREFIX_PATH/ CMAKE_PREFIX_PATH_ALT_SEP
+# that can be forwarded to external projects
+list(APPEND CMAKE_PREFIX_PATH
+ ${CMAKE_CURRENT_BINARY_DIR}/extra-cmake-modules
+ ${CMAKE_CURRENT_BINARY_DIR}/kuserfeedback)
+string(REPLACE ";" "|" CMAKE_PREFIX_PATH_ALT_SEP "${CMAKE_PREFIX_PATH}")
+
+ExternalProject_Add(extra-cmake-modules
+ PREFIX extra-cmake-modules
+ SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/extra-cmake-modules"
+ CMAKE_ARGS
+ -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/extra-cmake-modules
+)
+
+set(KUSERFEEDBACK_COMPONENTS
+ -DBUILD_SHARED_LIBS=OFF
+ -DENABLE_SURVEY_TARGET_EXPRESSIONS=OFF
+ -DENABLE_PHP=OFF
+ -DENABLE_PHP_UNIT=OFF
+ -DENABLE_TESTING=OFF
+ -DENABLE_DOCS=OFF
+ -DENABLE_CONSOLE=OFF
+ -DENABLE_CLI=OFF
+ -DBUILD_SHARED_LIBS=OFF
+)
+
+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_ALT_SEP}
+ -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/kuserfeedback
+ DEPENDS extra-cmake-modules
+)
+
+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()
+
+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_ALT_SEP}
+ -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
+ DEPENDS kuserfeedback
+)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
new file mode 100644
index 0000000..fb099bd
--- /dev/null
+++ b/src/CMakeLists.txt
@@ -0,0 +1,38 @@
+cmake_minimum_required(VERSION 3.9)
+
+project(UsageStatistic)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+set(CMAKE_CXX_STANDARD 14)
+
+find_package(QtCreator COMPONENTS Core TextEditor ProjectExplorer VcsBase REQUIRED)
+find_package(Qt5 COMPONENTS Widgets REQUIRED)
+find_package(KUserFeedback REQUIRED)
+
+add_qtc_plugin(UsageStatistic
+ PLUGIN_DEPENDS
+ QtCreator::Core QtCreator::Debugger QtCreator::ProjectExplorer QtCreator::QtSupport
+ DEPENDS Qt5::Widgets QtCreator::ExtensionSystem QtCreator::Utils KUserFeedbackCore KUserFeedbackWidgets
+ SOURCES
+ usagestatisticplugin.cpp
+ datasources/qtclicensesource.cpp
+ datasources/buildcountsource.cpp
+ common/scopedsettingsgroupsetter.cpp
+ datasources/buildsystemsource.cpp
+ datasources/timeusagesourcebase.cpp
+ datasources/modeusagetimesource.cpp
+ datasources/examplesdatasource.cpp
+ datasources/kitsource.cpp
+ datasources/qmldesignerusagetimesource.cpp
+ ui/usagestatisticpage.cpp
+ ui/usagestatisticwidget.cpp
+ ui/outputpane.cpp
+ ui/encouragementwidget.cpp
+ services/datasubmitter.cpp
+ usagestatistic.qrc
+ DEFINES
+ USP_AUTH_KEY="${USP_AUTH_KEY}"
+ USP_SERVER_URL="${USP_SERVER_URL}"
+)