diff options
author | Kai Koehne <kai.koehne@qt.io> | 2019-10-29 09:03:51 +0100 |
---|---|---|
committer | Kai Koehne <kai.koehne@qt.io> | 2019-11-26 08:09:11 +0000 |
commit | b88faae99e37d68aea4b1fd0956ad9e669d60d32 (patch) | |
tree | 5208f2f789fd5ee13bdb6947c50ef73e3fc2c218 | |
parent | 03f2d7ae72b71f7320eedcdf3c2611de82be4f83 (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-- | .gitmodules | 3 | ||||
m--------- | 3rdparty/extra-cmake-modules | 0 | ||||
-rw-r--r-- | CMakeLists.txt | 63 | ||||
-rw-r--r-- | src/CMakeLists.txt | 38 |
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}" +) |