summaryrefslogtreecommitdiffstats
path: root/cmake/QtTestHelpers.cmake
diff options
context:
space:
mode:
authorAlexey Edelev <alexey.edelev@qt.io>2020-12-03 19:13:08 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2020-12-07 19:27:05 +0000
commitacfe198d08a45854e8edf1b1fadacec58ce6e075 (patch)
tree2b4e8d81777db7296abdb15b1a6e4b077772d2d7 /cmake/QtTestHelpers.cmake
parent01474c31ba2a3ca225cbc2440bd0ee28458b2a26 (diff)
CMake: Add extra targets to run single benchmark using CMake generator
Add custom targets with '_benchmark' suffixes to make run of benchmarks using generators possible, e.g.: $ ninja tst_bench_qudpsocket_benchmark Extend '-[no]make' option to pass benchmark. Rework '-[no]make' processing to unify these options processing. Also looks like it doesn't make sense to enable benchmarks without having test enabled. So '-DQT_BUILD_BENCHMARKS' enables test as own dependency automatically. Task-number: QTBUG-89076 Change-Id: Ieee9eadaf6d75a1efec120242d6eb786ace1b071 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit 61d5b019727dd1c06366205cb307a2a928a2a29c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'cmake/QtTestHelpers.cmake')
-rw-r--r--cmake/QtTestHelpers.cmake11
1 files changed, 11 insertions, 0 deletions
diff --git a/cmake/QtTestHelpers.cmake b/cmake/QtTestHelpers.cmake
index 3405eee83a..756be0ad4b 100644
--- a/cmake/QtTestHelpers.cmake
+++ b/cmake/QtTestHelpers.cmake
@@ -33,6 +33,17 @@ function(qt_internal_add_benchmark target)
${exec_args}
)
+ # Add a ${target}_benchmark generator target, to run single benchmark more easily.
+ # TODO: Need to use test wrapper script with propagated environment variables to run benchmarks.
+ add_custom_target("${target}_benchmark"
+ VERBATIM
+ COMMENT "Running benchmark ${target}"
+ COMMAND "$<TARGET_FILE:${target}>"
+ )
+ add_dependencies("${target}_benchmark" "${target}")
+
+ #Add benchmark to meta target.
+ add_dependencies("benchmark" "${target}_benchmark")
endfunction()
# Simple wrapper around qt_internal_add_executable for manual tests which insure that