summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/corelib/Qt5CTestMacros.cmake44
-rw-r--r--src/corelib/Qt5CoreConfigExtras.cmake.in4
-rw-r--r--src/corelib/corelib.pro12
-rw-r--r--tests/auto/cmake/CMakeLists.txt44
4 files changed, 62 insertions, 42 deletions
diff --git a/src/corelib/Qt5CTestMacros.cmake b/src/corelib/Qt5CTestMacros.cmake
new file mode 100644
index 0000000000..c2772bb702
--- /dev/null
+++ b/src/corelib/Qt5CTestMacros.cmake
@@ -0,0 +1,44 @@
+
+macro(expect_pass _dir)
+ string(REPLACE "(" "_" testname "${_dir}")
+ string(REPLACE ")" "_" testname "${testname}")
+ add_test(${testname} ${CMAKE_CTEST_COMMAND}
+ --build-and-test
+ "${CMAKE_CURRENT_SOURCE_DIR}/${_dir}"
+ "${CMAKE_CURRENT_BINARY_DIR}/${_dir}"
+ --build-generator ${CMAKE_GENERATOR}
+ --build-makeprogram ${CMAKE_MAKE_PROGRAM}
+ --build-options -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+ )
+endmacro()
+
+macro(expect_fail _dir)
+ string(REPLACE "(" "_" testname "${_dir}")
+ string(REPLACE ")" "_" testname "${testname}")
+ file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/failbuild/${_dir}")
+ file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/${_dir}" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/failbuild/${_dir}")
+ file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/failbuild/${_dir}/CMakeLists.txt"
+ "
+ cmake_minimum_required(VERSION 2.8)
+ project(${_dir}_build)
+
+ try_compile(Result \${CMAKE_CURRENT_BINARY_DIR}/${_dir}
+ \${CMAKE_CURRENT_SOURCE_DIR}/${_dir}
+ ${_dir}
+ OUTPUT_VARIABLE Out
+ )
+ message(\"\${Out}\")
+ if (Result)
+ message(SEND_ERROR \"Succeeded build which should fail\")
+ endif()
+ "
+ )
+ add_test(${testname} ${CMAKE_CTEST_COMMAND}
+ --build-and-test
+ "${CMAKE_CURRENT_BINARY_DIR}/failbuild/${_dir}"
+ "${CMAKE_CURRENT_BINARY_DIR}/failbuild/${_dir}/build"
+ --build-generator ${CMAKE_GENERATOR}
+ --build-makeprogram ${CMAKE_MAKE_PROGRAM}
+ --build-options -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+ )
+endmacro()
diff --git a/src/corelib/Qt5CoreConfigExtras.cmake.in b/src/corelib/Qt5CoreConfigExtras.cmake.in
index 246aa8376e..fd8c4aa30b 100644
--- a/src/corelib/Qt5CoreConfigExtras.cmake.in
+++ b/src/corelib/Qt5CoreConfigExtras.cmake.in
@@ -65,3 +65,7 @@ set_target_properties(Qt5::WinMain PROPERTIES
)
!!ENDIF
!!ENDIF
+
+get_filename_component(_Qt5CoreConfigDir ${CMAKE_CURRENT_LIST_FILE} PATH)
+
+set(_Qt5CTestMacros \"${_Qt5CoreConfigDir}/Qt5CTestMacros.cmake\")
diff --git a/src/corelib/corelib.pro b/src/corelib/corelib.pro
index 673d34b548..101cc4dce9 100644
--- a/src/corelib/corelib.pro
+++ b/src/corelib/corelib.pro
@@ -71,3 +71,15 @@ lrelease_dir.name = lrelease_location
lrelease_dir.variable = QMAKE_LRELEASE
QMAKE_PKGCONFIG_VARIABLES += lupdate_dir lrelease_dir
+
+ctest_macros_file.input = $$PWD/Qt5CTestMacros.cmake
+ctest_macros_file.output = $$DESTDIR/cmake/Qt5Core/Qt5CTestMacros.cmake
+ctest_macros_file.config = verbatim
+
+QMAKE_SUBSTITUTES += ctest_macros_file
+
+ctest_qt5_module_files.files += $$ctest_macros_file.output
+
+ctest_qt5_module_files.path = $$[QT_INSTALL_LIBS]/cmake/Qt5Core
+
+INSTALLS += ctest_qt5_module_files
diff --git a/tests/auto/cmake/CMakeLists.txt b/tests/auto/cmake/CMakeLists.txt
index 0f7297dd3d..6ee8ee2126 100644
--- a/tests/auto/cmake/CMakeLists.txt
+++ b/tests/auto/cmake/CMakeLists.txt
@@ -43,49 +43,9 @@ project(qmake_cmake_files)
enable_testing()
-macro(expect_pass _dir)
- string(REPLACE "(" "_" testname "${_dir}")
- string(REPLACE ")" "_" testname "${testname}")
- add_test(${testname} ${CMAKE_CTEST_COMMAND}
- --build-and-test
- "${CMAKE_CURRENT_SOURCE_DIR}/${_dir}"
- "${CMAKE_CURRENT_BINARY_DIR}/${_dir}"
- --build-generator ${CMAKE_GENERATOR}
- --build-makeprogram ${CMAKE_MAKE_PROGRAM}
- --build-options -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
- )
-endmacro()
+find_package(Qt5Core REQUIRED)
-macro(expect_fail _dir)
- string(REPLACE "(" "_" testname "${_dir}")
- string(REPLACE ")" "_" testname "${testname}")
- file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/failbuild/${_dir}")
- file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/${_dir}" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/failbuild/${_dir}")
- file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/failbuild/${_dir}/CMakeLists.txt"
- "
- cmake_minimum_required(VERSION 2.8)
- project(${_dir}_build)
-
- try_compile(Result \${CMAKE_CURRENT_BINARY_DIR}/${_dir}
- \${CMAKE_CURRENT_SOURCE_DIR}/${_dir}
- ${_dir}
- OUTPUT_VARIABLE Out
- )
- message(\"\${Out}\")
- if (Result)
- message(SEND_ERROR \"Succeeded build which should fail\")
- endif()
- "
- )
- add_test(${testname} ${CMAKE_CTEST_COMMAND}
- --build-and-test
- "${CMAKE_CURRENT_BINARY_DIR}/failbuild/${_dir}"
- "${CMAKE_CURRENT_BINARY_DIR}/failbuild/${_dir}/build"
- --build-generator ${CMAKE_GENERATOR}
- --build-makeprogram ${CMAKE_MAKE_PROGRAM}
- --build-options -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
- )
-endmacro()
+include("${_Qt5CTestMacros}")
if(NOT ${CMAKE_VERSION} VERSION_LESS 2.8.8)
# Requires INCLUDE_DIRECTORIES target property in CMake 2.8.8