Test that the CMake files create appropriate version variables.
Change-Id: I1d8061302fbb8494b5ae31e20a644745fe969f10 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Brad King <brad.king@kitware.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>bb10
parent
6c879b9b7c
commit
30d01db3a5
|
|
@ -56,9 +56,27 @@ isEmpty(CMAKE_VERSION) {
|
|||
SET = set
|
||||
equals(QMAKE_DIR_SEP, "/"):SET = export
|
||||
|
||||
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 && $$SET VERBOSE=1 && \
|
||||
cmake $$_PRO_FILE_PWD_ $$CMAKE_GENERATOR $$CMAKE_MODULE_DEFINES -DCMAKE_BUILD_TYPE=$${CMAKE_BUILD_TYPE} -DCMAKE_PREFIX_PATH=$$CMAKE_PREFIX_PATH -DQt5_MODULE_TEST_DEPENDS=\"$${dependentmodules}\" && \
|
||||
cmake $$_PRO_FILE_PWD_ $$CMAKE_GENERATOR \
|
||||
$$CMAKE_MODULE_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
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,6 +26,14 @@ if (NO_DBUS)
|
|||
list(APPEND BUILD_OPTIONS_LIST "-DNO_DBUS=True")
|
||||
endif()
|
||||
|
||||
foreach(module ${CMAKE_MODULES_UNDER_TEST})
|
||||
list(APPEND BUILD_OPTIONS_LIST
|
||||
"-DCMAKE_${module}_MODULE_MAJOR_VERSION=${CMAKE_${module}_MODULE_MAJOR_VERSION}"
|
||||
"-DCMAKE_${module}_MODULE_MINOR_VERSION=${CMAKE_${module}_MODULE_MINOR_VERSION}"
|
||||
"-DCMAKE_${module}_MODULE_PATCH_VERSION=${CMAKE_${module}_MODULE_PATCH_VERSION}"
|
||||
)
|
||||
endforeach()
|
||||
|
||||
macro(expect_pass _dir)
|
||||
string(REPLACE "(" "_" testname "${_dir}")
|
||||
string(REPLACE ")" "_" testname "${testname}")
|
||||
|
|
@ -95,11 +103,30 @@ function(test_module_includes)
|
|||
while(all_args)
|
||||
list(GET all_args 0 qtmodule)
|
||||
list(REMOVE_AT all_args 0 1)
|
||||
|
||||
set(CMAKE_MODULE_VERSION ${CMAKE_${qtmodule}_MODULE_MAJOR_VERSION}.${CMAKE_${qtmodule}_MODULE_MINOR_VERSION}.${CMAKE_${qtmodule}_MODULE_PATCH_VERSION} )
|
||||
|
||||
set(packages_string
|
||||
"${packages_string}
|
||||
find_package(Qt5${qtmodule} 5.0.0 REQUIRED)
|
||||
include_directories(\${Qt5${qtmodule}_INCLUDE_DIRS})
|
||||
add_definitions(\${Qt5${qtmodule}_DEFINITIONS})\n"
|
||||
add_definitions(\${Qt5${qtmodule}_DEFINITIONS})
|
||||
|
||||
if(NOT \"\${Qt5${qtmodule}_VERSION}\" VERSION_EQUAL ${CMAKE_MODULE_VERSION})
|
||||
message(SEND_ERROR \"Qt5${qtmodule}_VERSION variable was not ${CMAKE_MODULE_VERSION}. Got \${Qt5${qtmodule}_VERSION} instead.\")
|
||||
endif()
|
||||
if(NOT \"\${Qt5${qtmodule}_VERSION_MAJOR}\" VERSION_EQUAL ${CMAKE_${qtmodule}_MODULE_MAJOR_VERSION})
|
||||
message(SEND_ERROR \"Qt5${qtmodule}_VERSION_MAJOR variable was not ${CMAKE_${qtmodule}_MODULE_MAJOR_VERSION}. Got \${Qt5${qtmodule}_VERSION_MAJOR} instead.\")
|
||||
endif()
|
||||
if(NOT \"\${Qt5${qtmodule}_VERSION_MINOR}\" VERSION_EQUAL ${CMAKE_${qtmodule}_MODULE_MINOR_VERSION})
|
||||
message(SEND_ERROR \"Qt5${qtmodule}_VERSION_MINOR variable was not ${CMAKE_${qtmodule}_MODULE_MINOR_VERSION}. Got \${Qt5${qtmodule}_VERSION_MINOR} instead.\")
|
||||
endif()
|
||||
if(NOT \"\${Qt5${qtmodule}_VERSION_PATCH}\" VERSION_EQUAL ${CMAKE_${qtmodule}_MODULE_PATCH_VERSION})
|
||||
message(SEND_ERROR \"Qt5${qtmodule}_VERSION_PATCH variable was not ${CMAKE_${qtmodule}_MODULE_PATCH_VERSION}. Got \${Qt5${qtmodule}_VERSION_PATCH} instead.\")
|
||||
endif()
|
||||
if(NOT \"\${Qt5${qtmodule}_VERSION_STRING}\" VERSION_EQUAL ${CMAKE_MODULE_VERSION})
|
||||
message(SEND_ERROR \"Qt5${qtmodule}_VERSION_STRING variable was not ${CMAKE_MODULE_VERSION}. Got \${Qt5${qtmodule}_VERSION_STRING} instead.\")
|
||||
endif()\n"
|
||||
)
|
||||
set(libraries_string "${libraries_string} Qt5::${qtmodule}")
|
||||
endwhile()
|
||||
|
|
|
|||
|
|
@ -2,4 +2,14 @@
|
|||
# Cause make to do nothing.
|
||||
TEMPLATE = subdirs
|
||||
|
||||
CMAKE_QT_MODULES_UNDER_TEST = core network xml sql testlib
|
||||
|
||||
qtHaveModule(dbus): CMAKE_QT_MODULES_UNDER_TEST += dbus
|
||||
qtHaveModule(gui): CMAKE_QT_MODULES_UNDER_TEST += gui
|
||||
qtHaveModule(openglextensions): CMAKE_QT_MODULES_UNDER_TEST += openglextensions
|
||||
qtHaveModule(widgets): CMAKE_QT_MODULES_UNDER_TEST += widgets
|
||||
qtHaveModule(printsupport): CMAKE_QT_MODULES_UNDER_TEST += printsupport
|
||||
qtHaveModule(opengl): CMAKE_QT_MODULES_UNDER_TEST += opengl
|
||||
qtHaveModule(concurrent): CMAKE_QT_MODULES_UNDER_TEST += concurrent
|
||||
|
||||
CONFIG += ctest_testcase
|
||||
|
|
|
|||
Loading…
Reference in New Issue