diff options
author | Tobias Hunger <tobias.hunger@qt.io> | 2018-11-14 13:37:52 +0100 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@qt.io> | 2018-11-22 08:39:12 +0000 |
commit | f37ce9ab84400a45752787b9e015a7919c8771bd (patch) | |
tree | f8ea6bedc1dd39c36deaea764922f7cb11ff9250 /cmake | |
parent | 3acebfe6eb9ff0c97ab0e79f9f0b35835a4df57a (diff) |
CMake: Add option to run cmake build tests
Use "cmake -DBUILD_CMAKE_TESTING=ON" to enable running cmake build system
tests with ctest.
Change-Id: I0a32e2d1771c9bbb0df013d0d955a9b58b1d4b79
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/QtBaseCMakeTesting.cmake | 9 | ||||
-rw-r--r-- | cmake/tests/CMakeLists.txt | 25 | ||||
-rw-r--r-- | cmake/tests/features/CMakeLists.txt | 2 | ||||
-rw-r--r-- | cmake/tests/main.cpp | 1 |
4 files changed, 37 insertions, 0 deletions
diff --git a/cmake/QtBaseCMakeTesting.cmake b/cmake/QtBaseCMakeTesting.cmake new file mode 100644 index 0000000000..662ac8f498 --- /dev/null +++ b/cmake/QtBaseCMakeTesting.cmake @@ -0,0 +1,9 @@ +## Test the cmake build system: +option(BUILD_CMAKE_TESTING "Build tests for the Qt build system" OFF) +mark_as_advanced(BUILD_CMAKE_TESTING) + +if(BUILD_CMAKE_TESTING) + add_subdirectory("${PROJECT_SOURCE_DIR}/cmake/tests") +endif() + + diff --git a/cmake/tests/CMakeLists.txt b/cmake/tests/CMakeLists.txt new file mode 100644 index 0000000000..28568ce46f --- /dev/null +++ b/cmake/tests/CMakeLists.txt @@ -0,0 +1,25 @@ +# These macros are taken from the ECM: + +# a macro for tests that have a simple format where the name matches the +# directory and project +macro(add_test_variant NAME BASE COMMAND) + string(REPLACE "." "/" src_dir "${BASE}") + string(REPLACE "." "/" build_dir "${NAME}") + string(REGEX REPLACE "[^.]*\\." "" proj "${NAME}") + add_test("cmake_${NAME}" ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMAKE_CURRENT_SOURCE_DIR}/${src_dir}" + "${CMAKE_CURRENT_BINARY_DIR}/${build_dir}" + --build-two-config + --build-generator ${CMAKE_GENERATOR} + --build-makeprogram ${CMAKE_MAKE_PROGRAM} + --build-project ${proj} + ${${NAME}_EXTRA_OPTIONS} + --test-command ${COMMAND} ${ARGN}) +endmacro() + +macro(add_test_macro NAME) + add_test_variant("${NAME}" "${NAME}" ${ARGN}) +endmacro() + +add_test_macro(features features) diff --git a/cmake/tests/features/CMakeLists.txt b/cmake/tests/features/CMakeLists.txt index 0208e3d890..7b76a4529f 100644 --- a/cmake/tests/features/CMakeLists.txt +++ b/cmake/tests/features/CMakeLists.txt @@ -40,3 +40,5 @@ include(QtPostProcess) ## Print a feature summary: feature_summary(WHAT PACKAGES_FOUND PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES) + +add_executable(features ../main.cpp) diff --git a/cmake/tests/main.cpp b/cmake/tests/main.cpp new file mode 100644 index 0000000000..a9b8738990 --- /dev/null +++ b/cmake/tests/main.cpp @@ -0,0 +1 @@ +int main(int argc, char** argv) { return 0; } |