Add support for -nomake-tests and -nomake-examples equivalents
A developer can pass either -DQT_NO_MAKE_TESTS=ON or -DQT_NO_MAKE_EXAMPLES=ON to exclude tests or examples from being built as part the default make target (when you write just make or ninja). With ninja, tests and examples can be built separately one by one, by typing $ ninja tst_foo or $ ninja example_bar Same can be done with the Makefile generator. $ make tst_foo All tests / examples can be built in one go by typing $ ninja tests/all or $ ninja examples/all With the Makefile generator unfortunately it's not as nice and is most likely an implementation detail, but it can still be done by running something like $ make -f CMakeFiles/Makefile2 tests/all or $ make -f CMakeFiles/Makefile2 examples/all Change-Id: I34f168b3ab41e952a21d3ace5634e25a9f41922e Reviewed-by: Qt CMake Build Bot Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
This commit is contained in:
parent
de3a806def
commit
021c17c62f
@ -62,6 +62,9 @@ endif()
|
||||
|
||||
if(BUILD_TESTING)
|
||||
add_subdirectory(tests)
|
||||
if(QT_NO_MAKE_TESTS)
|
||||
set_property(DIRECTORY tests PROPERTY EXCLUDE_FROM_ALL TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT QT_BUILD_STANDALONE_TESTS)
|
||||
@ -81,4 +84,7 @@ qt_build_repo_end()
|
||||
|
||||
if(NOT QT_BUILD_STANDALONE_TESTS AND BUILD_EXAMPLES)
|
||||
add_subdirectory(examples)
|
||||
if(QT_NO_MAKE_EXAMPLES)
|
||||
set_property(DIRECTORY examples PROPERTY EXCLUDE_FROM_ALL TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
@ -139,6 +139,9 @@ macro(qt_build_repo)
|
||||
|
||||
if (BUILD_TESTING AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/tests/CMakeLists.txt")
|
||||
add_subdirectory(tests)
|
||||
if(QT_NO_MAKE_TESTS)
|
||||
set_property(DIRECTORY tests PROPERTY EXCLUDE_FROM_ALL TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
qt_build_repo_end()
|
||||
@ -147,6 +150,9 @@ macro(qt_build_repo)
|
||||
AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/examples/CMakeLists.txt"
|
||||
AND NOT QT_BUILD_STANDALONE_TESTS)
|
||||
add_subdirectory(examples)
|
||||
if(QT_NO_MAKE_EXAMPLES)
|
||||
set_property(DIRECTORY examples PROPERTY EXCLUDE_FROM_ALL TRUE)
|
||||
endif()
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
|
@ -26,6 +26,10 @@ set(QT_SOURCE_TREE "@QT_SOURCE_TREE@" CACHE PATH
|
||||
# Propagate decision of building tests and examples to other repositories.
|
||||
set(BUILD_TESTING @BUILD_TESTING@ CACHE BOOL "Build the testing tree.")
|
||||
set(BUILD_EXAMPLES @BUILD_EXAMPLES@ CACHE BOOL "Build Qt examples")
|
||||
set(QT_NO_MAKE_TESTS @QT_NO_MAKE_TESTS@ CACHE BOOL
|
||||
"Should tests be built as part of the default 'all' target.")
|
||||
set(QT_NO_MAKE_EXAMPLES @QT_NO_MAKE_EXAMPLES@ CACHE BOOL
|
||||
"Should examples be built as part of the default 'all' target.")
|
||||
|
||||
# Extra set of exported variables
|
||||
@QT_EXTRA_BUILD_INTERNALS_VARS@
|
||||
|
@ -94,12 +94,14 @@ if(QT_BUILD_STANDALONE_TESTS)
|
||||
# building standalone tests.
|
||||
set(BUILD_TESTING ON CACHE BOOL "Build the testing tree." FORCE)
|
||||
endif()
|
||||
option(QT_NO_MAKE_TESTS "Should tests be built as part of the default 'all' target." OFF)
|
||||
|
||||
include(CTest)
|
||||
enable_testing()
|
||||
|
||||
# Set up building of examples.
|
||||
option(BUILD_EXAMPLES "Build Qt examples" ON)
|
||||
option(QT_NO_MAKE_EXAMPLES "Should examples be built as part of the default 'all' target." OFF)
|
||||
|
||||
# Build Benchmarks
|
||||
option(QT_BUILD_BENCHMARKS "Build Qt Benchmarks" ${__build_benchmarks})
|
||||
|
Loading…
x
Reference in New Issue
Block a user