[Development] How to build unit tests & examples on demand with Qt6/CMake?

Alexandru Croitor alexandru.croitor at qt.io
Mon Nov 16 20:19:11 CET 2020


With the configure line you posted, all tests will be configured and built as part of the default 'all' target.

If you wish the default all target not to build all tests (but still configure the tests and build them manually / explicitly), you can configure with -DQT_NO_MAKE_TESTS=ON.
Note the option might be renamed soon https://codereview.qt-project.org/c/qt/qtbase/+/318032

Ninja has special targets to build all targets under a directory.

e.g. ninja tests/auto/gui/all

You can also build a specific test by name
ninja tst_qmake
ninja tst_qmake_check (builds and runs the test)

If you want to build tests out-of-tree aka not part of the Qt build (standalone tests), there's the script in $prefix/bin/qt-cmake-standalone-test

Note it might not work in all cases (long story).

From: Development <development-bounces at qt-project.org> on behalf of Thiago Macieira <thiago.macieira at intel.com>
Sent: Monday, November 16, 2020 8:08 PM
To: development at qt-project.org
Subject: [Development] How to build unit tests & examples on demand with        Qt6/CMake?

With Qt5, I just did:
./configure -nomake tests -nomake examples [...]

And for each one I needed, I just ran qmake directly. For example:

 mkdir -p tests/auto/corelib
 cd tests/auto/corelib
 qmake $srcdir
 make qmake_all
 cd serialization/qcborvalue
 make check

 mkdir -p examples/corelib/serialization/cbordump
 cd examples/corelib/serialization/cbordump
 qmake $srcdir

How do I do that with CMake? Configure line:

cmake -G Ninja $srcdir '-DBUILD_WITH_PCH=OFF' \
'-DCMAKE_INSTALL_PREFIX=/home/tjmaciei/obj/qt/qt6/qtbase' \
'-DQT_QMAKE_TARGET_MKSPEC=linux-g++-optimised' \
'-DFEATURE_optimize_debug=OFF' '-DFEATURE_developer_build=ON' \
'-DFEATURE_reduce_relocations=ON' '-DFEATURE_journald=ON' \
'-DFEATURE_sctp=ON' -DINPUT_qt_libinfix=.t -DFEATURE_openssl_linked=ON \

The last line is likely significant. I want to be able to build only the tests
and examples I specify. Never all.

Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel DPG Cloud Engineering

Development mailing list
Development at qt-project.org

More information about the Development mailing list