summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mkspecs/features/ctest_testcase.prf97
-rw-r--r--mkspecs/features/ctest_testcase_common.prf91
-rw-r--r--mkspecs/features/ctest_testcase_installed.prf8
-rw-r--r--tests/auto/auto.pro3
-rw-r--r--tests/auto/installed_cmake/installed_cmake.pro5
5 files changed, 111 insertions, 93 deletions
diff --git a/mkspecs/features/ctest_testcase.prf b/mkspecs/features/ctest_testcase.prf
index 8eb6f3263e..2011b57cbd 100644
--- a/mkspecs/features/ctest_testcase.prf
+++ b/mkspecs/features/ctest_testcase.prf
@@ -1,96 +1,9 @@
-win32 {
- CMAKE_VERSION = $$system(cmake --version 2>NUL)
-} else {
- CMAKE_VERSION = $$system(cmake --version 2>/dev/null)
-}
-
-
-check.commands =
-isEmpty(CMAKE_VERSION) {
- message("cmake executable not found. Not running CMake unit tests")
-} else {
- CTEST_VERSION = $$system(ctest --version)
- isEmpty(CTEST_VERSION) {
- message("ctest executable not found. Not running CMake unit tests")
- } else {
- CMAKE_VERSION = $$last(CMAKE_VERSION)
- CMAKE_VERSION_MAJOR = $$section(CMAKE_VERSION, ., 0, 0)
- CMAKE_VERSION_MINOR = $$section(CMAKE_VERSION, ., 1, 1)
- CMAKE_VERSION_PATCH = $$section(CMAKE_VERSION, ., 2, 2)
- # CMake can report versions like 2.8.11-rc1, so strip off the rc part.
- CMAKE_VERSION_PATCH ~= s,-.*,,
-
- VERSION_OK =
- greaterThan(CMAKE_VERSION_MAJOR, 2) {
- VERSION_OK = 1
- } else:greaterThan(CMAKE_VERSION_MAJOR, 1):greaterThan(CMAKE_VERSION_MINOR, 8) {
- VERSION_OK = 1
- } else:greaterThan(CMAKE_VERSION_MAJOR, 1):greaterThan(CMAKE_VERSION_MINOR, 7):greaterThan(CMAKE_VERSION_PATCH, 2) {
- VERSION_OK = 1
- }
-
- isEmpty(VERSION_OK) {
- message("cmake $$CMAKE_VERSION is too old for this test.")
- } else {
- load(cmake_functions)
-
- CMAKE_BUILD_TYPE = Debug
- CONFIG(release, debug|release):CMAKE_BUILD_TYPE = Release
- win32-g++*:isEmpty(CROSS_COMPILE):CMAKE_GENERATOR = -G \"MinGW Makefiles\"
- win32:equals(QT_ARCH, x86_64) {
- win32-msvc2010:CMAKE_GENERATOR = -G \"Visual Studio 10 Win64\"
- win32-msvc2012:CMAKE_GENERATOR = -G \"Visual Studio 11 Win64\"
- }
-
- BUILD_DIR = $$replace($$list($$OUT_PWD/build), /, $$QMAKE_DIR_SEP)
-
- for(d, $$list($$split($$list($$[QMAKE_MKSPECS]), $$DIRLIST_SEPARATOR))) {
- CMAKE_PREFIX_PATH *= $$dirname(d)
- }
- CMAKE_PREFIX_PATH=\"$$join(CMAKE_PREFIX_PATH, ;)\"
-
- !qtHaveModule(widgets): CMAKE_MODULE_DEFINES += -DNO_WIDGETS=True
- !qtHaveModule(dbus): CMAKE_MODULE_DEFINES += -DNO_DBUS=True
-
- dependentmodules = $$resolve_depends(CMAKE_QT_MODULES_UNDER_TEST, "QT.")
- dependentmodules -= $$CMAKE_QT_MODULES_UNDER_TEST
- dependentmodules = $$cmakeModuleList($$dependentmodules)
-
- contains(QT_CONFIG, angle): CMAKE_GL_DEFINES = -DQT_WITH_ANGLE=True
- !contains(QT_CONFIG, egl): CMAKE_GL_DEFINES += -DNO_EGL=True
-
- CMAKE_MODULE_VERSIONS =
- CMAKE_MODULES_UNDER_TEST =
- for (MODULE_UNDER_TEST, CMAKE_QT_MODULES_UNDER_TEST) {
- CMAKE_NAME = $$cmakeModuleName($$MODULE_UNDER_TEST)
- CMAKE_MODULE_VERSIONS += \
- -DCMAKE_$${CMAKE_NAME}_MODULE_MAJOR_VERSION=$$eval(QT.$${MODULE_UNDER_TEST}.MAJOR_VERSION) \
- -DCMAKE_$${CMAKE_NAME}_MODULE_MINOR_VERSION=$$eval(QT.$${MODULE_UNDER_TEST}.MINOR_VERSION) \
- -DCMAKE_$${CMAKE_NAME}_MODULE_PATCH_VERSION=$$eval(QT.$${MODULE_UNDER_TEST}.PATCH_VERSION)
- CMAKE_MODULES_UNDER_TEST += $$CMAKE_NAME
- }
- CMAKE_MODULES_UNDER_TEST = $$join(CMAKE_MODULES_UNDER_TEST, ;)
-
- check.commands = \
- $(MKDIR) $$BUILD_DIR && cd $$BUILD_DIR && \
- cmake $$_PRO_FILE_PWD_ $$CMAKE_GENERATOR \
- -DCMAKE_VERBOSE_MAKEFILE=1 \
- $$CMAKE_MODULE_DEFINES \
- $$CMAKE_GL_DEFINES \
- -DCMAKE_BUILD_TYPE=$${CMAKE_BUILD_TYPE} \
- -DCMAKE_PREFIX_PATH=$$CMAKE_PREFIX_PATH \
- -DQt5_MODULE_TEST_DEPENDS=\"$${dependentmodules}\" \
- $${CMAKE_MODULE_VERSIONS} \
- -DCMAKE_MODULES_UNDER_TEST=\"$$CMAKE_MODULES_UNDER_TEST\" && \
- $(TESTRUNNER) ctest --output-on-failure
-
- }
- }
-}
+CMAKE_TEST_LOCATION = $$_PRO_FILE_PWD_
-insignificant_test:!isEmpty(check.commands) {
- check.commands = -$${check.commands}
+for(d, $$list($$split($$list($$[QMAKE_MKSPECS]), $$DIRLIST_SEPARATOR))) {
+ CMAKE_PREFIX_PATH *= $$dirname(d)
}
+CMAKE_PREFIX_PATH=\"$$join(CMAKE_PREFIX_PATH, ;)\"
-QMAKE_EXTRA_TARGETS *= check
+include(ctest_testcase_common.prf)
diff --git a/mkspecs/features/ctest_testcase_common.prf b/mkspecs/features/ctest_testcase_common.prf
new file mode 100644
index 0000000000..efe9b80bd0
--- /dev/null
+++ b/mkspecs/features/ctest_testcase_common.prf
@@ -0,0 +1,91 @@
+
+win32 {
+ CMAKE_VERSION = $$system(cmake --version 2>NUL)
+} else {
+ CMAKE_VERSION = $$system(cmake --version 2>/dev/null)
+}
+
+
+check.commands =
+isEmpty(CMAKE_VERSION) {
+ message("cmake executable not found. Not running CMake unit tests")
+} else {
+ CTEST_VERSION = $$system(ctest --version)
+ isEmpty(CTEST_VERSION) {
+ message("ctest executable not found. Not running CMake unit tests")
+ } else {
+ CMAKE_VERSION = $$last(CMAKE_VERSION)
+ CMAKE_VERSION_MAJOR = $$section(CMAKE_VERSION, ., 0, 0)
+ CMAKE_VERSION_MINOR = $$section(CMAKE_VERSION, ., 1, 1)
+ CMAKE_VERSION_PATCH = $$section(CMAKE_VERSION, ., 2, 2)
+ # CMake can report versions like 2.8.11-rc1, so strip off the rc part.
+ CMAKE_VERSION_PATCH ~= s,-.*,,
+
+ VERSION_OK =
+ greaterThan(CMAKE_VERSION_MAJOR, 2) {
+ VERSION_OK = 1
+ } else:greaterThan(CMAKE_VERSION_MAJOR, 1):greaterThan(CMAKE_VERSION_MINOR, 8) {
+ VERSION_OK = 1
+ } else:greaterThan(CMAKE_VERSION_MAJOR, 1):greaterThan(CMAKE_VERSION_MINOR, 7):greaterThan(CMAKE_VERSION_PATCH, 2) {
+ VERSION_OK = 1
+ }
+
+ isEmpty(VERSION_OK) {
+ message("cmake $$CMAKE_VERSION is too old for this test.")
+ } else {
+ load(cmake_functions)
+
+ CMAKE_BUILD_TYPE = Debug
+ CONFIG(release, debug|release):CMAKE_BUILD_TYPE = Release
+ win32-g++*:isEmpty(CROSS_COMPILE):CMAKE_GENERATOR = -G \"MinGW Makefiles\"
+ win32:equals(QT_ARCH, x86_64) {
+ win32-msvc2010:CMAKE_GENERATOR = -G \"Visual Studio 10 Win64\"
+ win32-msvc2012:CMAKE_GENERATOR = -G \"Visual Studio 11 Win64\"
+ }
+
+ BUILD_DIR = $$replace($$list($$OUT_PWD/build), /, $$QMAKE_DIR_SEP)
+
+ !qtHaveModule(widgets): CMAKE_MODULE_DEFINES += -DNO_WIDGETS=True
+ !qtHaveModule(dbus): CMAKE_MODULE_DEFINES += -DNO_DBUS=True
+
+ dependentmodules = $$resolve_depends(CMAKE_QT_MODULES_UNDER_TEST, "QT.")
+ dependentmodules -= $$CMAKE_QT_MODULES_UNDER_TEST
+ dependentmodules = $$cmakeModuleList($$dependentmodules)
+
+ contains(QT_CONFIG, angle): CMAKE_GL_DEFINES = -DQT_WITH_ANGLE=True
+ !contains(QT_CONFIG, egl): CMAKE_GL_DEFINES += -DNO_EGL=True
+
+ CMAKE_MODULE_VERSIONS =
+ CMAKE_MODULES_UNDER_TEST =
+ for (MODULE_UNDER_TEST, CMAKE_QT_MODULES_UNDER_TEST) {
+ CMAKE_NAME = $$cmakeModuleName($$MODULE_UNDER_TEST)
+ CMAKE_MODULE_VERSIONS += \
+ -DCMAKE_$${CMAKE_NAME}_MODULE_MAJOR_VERSION=$$eval(QT.$${MODULE_UNDER_TEST}.MAJOR_VERSION) \
+ -DCMAKE_$${CMAKE_NAME}_MODULE_MINOR_VERSION=$$eval(QT.$${MODULE_UNDER_TEST}.MINOR_VERSION) \
+ -DCMAKE_$${CMAKE_NAME}_MODULE_PATCH_VERSION=$$eval(QT.$${MODULE_UNDER_TEST}.PATCH_VERSION)
+ CMAKE_MODULES_UNDER_TEST += $$CMAKE_NAME
+ }
+ CMAKE_MODULES_UNDER_TEST = $$join(CMAKE_MODULES_UNDER_TEST, ;)
+
+ check.commands = \
+ $(MKDIR) $$BUILD_DIR && cd $$BUILD_DIR && \
+ cmake $$CMAKE_TEST_LOCATION $$CMAKE_GENERATOR \
+ -DCMAKE_VERBOSE_MAKEFILE=1 \
+ $$CMAKE_MODULE_DEFINES \
+ $$CMAKE_GL_DEFINES \
+ -DCMAKE_BUILD_TYPE=$${CMAKE_BUILD_TYPE} \
+ -DCMAKE_PREFIX_PATH=$$CMAKE_PREFIX_PATH \
+ -DQt5_MODULE_TEST_DEPENDS=\"$${dependentmodules}\" \
+ $${CMAKE_MODULE_VERSIONS} \
+ -DCMAKE_MODULES_UNDER_TEST=\"$$CMAKE_MODULES_UNDER_TEST\" && \
+ $(TESTRUNNER) ctest --output-on-failure
+
+ }
+ }
+}
+
+insignificant_test:!isEmpty(check.commands) {
+ check.commands = -$${check.commands}
+}
+
+QMAKE_EXTRA_TARGETS *= check
diff --git a/mkspecs/features/ctest_testcase_installed.prf b/mkspecs/features/ctest_testcase_installed.prf
new file mode 100644
index 0000000000..be741b4a0b
--- /dev/null
+++ b/mkspecs/features/ctest_testcase_installed.prf
@@ -0,0 +1,8 @@
+
+CMAKE_TEST_LOCATION = $$_PRO_FILE_PWD_/../cmake
+
+CMAKE_PREFIX_PATH = $$[QT_INSTALL_PREFIX]
+
+CONFIG += insignificant_test
+
+include(ctest_testcase_common.prf)
diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro
index 758d89ab72..5d424c0a19 100644
--- a/tests/auto/auto.pro
+++ b/tests/auto/auto.pro
@@ -14,7 +14,8 @@ SUBDIRS += \
other \
widgets \
printsupport \
- cmake
+ cmake \
+ installed_cmake
wince*: SUBDIRS -= printsupport
cross_compile: SUBDIRS -= tools
diff --git a/tests/auto/installed_cmake/installed_cmake.pro b/tests/auto/installed_cmake/installed_cmake.pro
new file mode 100644
index 0000000000..e0856a54a9
--- /dev/null
+++ b/tests/auto/installed_cmake/installed_cmake.pro
@@ -0,0 +1,5 @@
+
+include(../cmake/cmake.pro)
+
+CONFIG -= ctest_testcase
+CONFIG += ctest_testcase_installed