summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorStephen Kelly <stephen.kelly@kdab.com>2012-06-29 08:32:01 +0200
committerQt by Nokia <qt-info@nokia.com>2012-07-03 01:08:25 +0200
commit91720b5bc22410177512abcaea9716de5446162e (patch)
tree3bea489487e767f5f90a60e82d64412a32831339 /src
parent7327ae8c170cb4d6bd3ecde16b12f575268661b5 (diff)
Move the macros for invoking ctest to a shared location.
They are still internal, but all Qt5 modules will be able to use them then. Change-Id: I42ab656115b0976ca959293dfd664ec071f35dbf Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Diffstat (limited to 'src')
-rw-r--r--src/corelib/Qt5CTestMacros.cmake44
-rw-r--r--src/corelib/Qt5CoreConfigExtras.cmake.in4
-rw-r--r--src/corelib/corelib.pro12
3 files changed, 60 insertions, 0 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