From acfe198d08a45854e8edf1b1fadacec58ce6e075 Mon Sep 17 00:00:00 2001 From: Alexey Edelev Date: Thu, 3 Dec 2020 19:13:08 +0100 Subject: 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 (cherry picked from commit 61d5b019727dd1c06366205cb307a2a928a2a29c) Reviewed-by: Qt Cherry-pick Bot --- cmake/QtTestHelpers.cmake | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'cmake/QtTestHelpers.cmake') 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 "$" + ) + 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 -- cgit v1.2.3