aboutsummaryrefslogtreecommitdiffstats
path: root/usagestatistic.pro
diff options
context:
space:
mode:
authorVitaly Fanaskov <vitaly.fanaskov@qt.io>2019-08-14 11:33:01 +0200
committerVitaly Fanaskov <vitaly.fanaskov@qt.io>2019-08-21 08:37:25 +0000
commit7fac843b497a5cab3c6791e7a6a97111e688f6fd (patch)
tree6b05ac67433b150bf99aa2ef3981cb4c501068ed /usagestatistic.pro
parentfd9b1ad43f4c056b976f609a6391b9bf399a65b7 (diff)
KUserFeedback framework builds as a separate target
Change-Id: Icc1954c54bb122404f07a3c4e193d9256b306e26 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Diffstat (limited to 'usagestatistic.pro')
-rw-r--r--usagestatistic.pro48
1 files changed, 45 insertions, 3 deletions
diff --git a/usagestatistic.pro b/usagestatistic.pro
index 47216f5..d0061c9 100644
--- a/usagestatistic.pro
+++ b/usagestatistic.pro
@@ -1,9 +1,11 @@
DEFINES += USAGESTATISTIC_LIBRARY
-KUSERFEEDBACK_PATH = "$${PWD}/3rdparty/kuserfeedback"
+KUSERFEEDBACK_SOURCE_PATH = "$${PWD}/3rdparty/kuserfeedback"
+KUSERFEEDBACK_BUILD_PATH = "$${OUT_PWD}/kuserfeedback/build"
+KUSERFEEDBACK_INSTALL_PATH = "$${OUT_PWD}/kuserfeedback"
-INCLUDEPATH *= "$${KUSERFEEDBACK_PATH}/include" "$${PWD}"
-LIBS *= -L"$${KUSERFEEDBACK_PATH}/lib" -lKUserFeedbackCore -lKUserFeedbackWidgets -lKUserFeedbackCommon
+INCLUDEPATH *= "$${KUSERFEEDBACK_INSTALL_PATH}/include" "$${PWD}"
+LIBS *= -L"$${KUSERFEEDBACK_INSTALL_PATH}/lib" -lKUserFeedbackCore -lKUserFeedbackWidgets -lKUserFeedbackCommon
CONFIG += c++1z
QMAKE_CXXFLAGS *= -Wall -Wextra -pedantic
@@ -86,6 +88,46 @@ QTC_PLUGIN_RECOMMENDS += \
###### End _dependencies.pri contents ######
+!build_pass {
+ EXTRA_CMAKE_MODULES_BUILD_PATH = "$${OUT_PWD}/extra-cmake-modules/build"
+ EXTRA_CMAKE_MODULES_SOURCE_PATH = "$${PWD}/3rdparty/extra-cmake-modules"
+ EXTRA_CMAKE_MODULES_INSTALL_PATH = "$${OUT_PWD}/extra-cmake-modules"
+
+ # Configure extra-cmake-modules
+ system("cmake -S $$shell_path($${EXTRA_CMAKE_MODULES_SOURCE_PATH}) \
+ -B $$shell_path($${EXTRA_CMAKE_MODULES_BUILD_PATH}) \
+ -DCMAKE_INSTALL_PREFIX:PATH=\"$$shell_path($${EXTRA_CMAKE_MODULES_INSTALL_PATH})\"")
+
+ # "Build" extra-cmake-modules first time. This step is required to configure KUserFeedback
+ EXTRA_CMAKE_MODULES_BUILD_CMD = "cmake --build $$shell_path($${EXTRA_CMAKE_MODULES_BUILD_PATH}) --parallel --target install"
+ system("$${EXTRA_CMAKE_MODULES_BUILD_CMD}")
+
+ # Configure KUserFeedback
+ CMAKE_PREFIX_PATHS = "$$shell_path($$[QT_INSTALL_LIBS]/cmake);$$shell_path($${EXTRA_CMAKE_MODULES_INSTALL_PATH}/share/ECM/cmake)"
+ BUILD_TYPE = Debug
+ CONFIG(release, debug|release): BUILD_TYPE = Release
+ system("cmake -S $$shell_path($${KUSERFEEDBACK_SOURCE_PATH}) \
+ -B $$shell_path($${KUSERFEEDBACK_BUILD_PATH}) \
+ -DBUILD_SHARED_LIBS=OFF \
+ -DCMAKE_BUILD_TYPE=$${BUILD_TYPE} \
+ -DCMAKE_INSTALL_PREFIX:PATH=\"$$shell_path($${KUSERFEEDBACK_INSTALL_PATH})\" \
+ -DCMAKE_PREFIX_PATH=\"$${CMAKE_PREFIX_PATHS}\" \
+ -DKDE_INSTALL_LIBDIR=lib")
+
+ buildextracmakemodules.commands = "$${EXTRA_CMAKE_MODULES_BUILD_CMD}"
+
+ buildkuserfeedback.commands = "cmake --build $$shell_path($${KUSERFEEDBACK_BUILD_PATH}) --parallel --target install"
+ buildkuserfeedback.depends = buildextracmakemodules
+
+ # Force build order. Without this flag Make tries building targets
+ # in a random order when -jN specified.
+ # All targets themselves (but not the plugin itself) will be built in parallel
+ notParallel.target = .NOTPARALLEL
+
+ QMAKE_EXTRA_TARGETS += buildextracmakemodules buildkuserfeedback notParallel
+ PRE_TARGETDEPS += buildkuserfeedback
+}
+
include($$IDE_SOURCE_TREE/src/qtcreatorplugin.pri)
FORMS += \