1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
|
# This is an automatic test for the CMake configuration files.
# To run it manually,
# 1) mkdir build # Create a build directory
# 2) cd build
# 3) cmake .. # Run cmake on this directory.
# 4) ctest # Run ctest
#
# The expected output is something like:
#
# Start 1: test_use_modules_function
# 1/11 Test #1: test_use_modules_function ........ Passed 3.36 sec
# Start 2: test_wrap_cpp_and_resources
# 2/11 Test #2: test_wrap_cpp_and_resources ...... Passed 1.41 sec
# Start 3: test_dependent_modules
# 3/11 Test #3: test_dependent_modules ........... Passed 2.22 sec
# Start 4: test_add_resource_options
# 4/11 Test #4: test_add_resource_options ........ Passed 0.16 sec
# Start 5: test_wrap_cpp_options
# 5/11 Test #5: test_wrap_cpp_options ............ Passed 0.36 sec
# Start 6: test_needsquoting_dirname
# 6/11 Test #6: test_needsquoting_dirname ........ Passed 2.20 sec
# Start 7: test_platform_defs_include
# 7/11 Test #7: test_platform_defs_include ....... Passed 0.28 sec
# Start 8: test_qtmainwin_library
# 8/11 Test #8: test_qtmainwin_library ........... Passed 1.27 sec
# Start 9: test_dbus_module
# 9/11 Test #9: test_dbus_module ................. Passed 3.46 sec
# Start 10: test_multiple_find_package
# 10/11 Test #10: test_multiple_find_package ....... Passed 0.07 sec
# Start 11: test_add_resources_delayed_file
# 11/11 Test #11: test_add_resources_delayed_file .. Passed 0.38 sec
#
#
# Note that if Qt is not installed, or if it is installed to a
# non-standard prefix, the environment variable CMAKE_PREFIX_PATH
# needs to be set to the installation prefix or build prefix of Qt
# before running these tests.
cmake_minimum_required(VERSION 2.8)
project(qmake_cmake_files)
enable_testing()
find_package(Qt5Core REQUIRED)
include("${_Qt5CTestMacros}")
if(NOT ${CMAKE_VERSION} VERSION_LESS 2.8.9)
# Requires INCLUDE_DIRECTORIES target property in CMake 2.8.8
# and POSITION_INDEPENDENT_CODE target property in 2.8.9
if (NOT NO_GUI)
expect_pass(test_use_modules_function)
endif()
expect_pass(test_umbrella_config)
else()
message("CMake version older than 2.8.9 (Found ${CMAKE_VERSION}). Not running test \"test_use_modules_function\" or \"test_umbrella_config\"")
endif()
expect_pass(test_wrap_cpp_and_resources)
if (NOT NO_WIDGETS)
expect_pass(test_dependent_modules)
expect_pass("test(needsquoting)dirname")
endif()
expect_fail(test_add_resource_options)
expect_fail(test_wrap_cpp_options)
expect_pass(test_platform_defs_include)
expect_pass(test_qtmainwin_library)
if (HAVE_NINJA)
make_directory("${CMAKE_CURRENT_SOURCE_DIR}/test_QFINDTESTDATA/build")
add_test(test_QFINDTESTDATA ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMAKE_CURRENT_SOURCE_DIR}/test_QFINDTESTDATA"
# Build in a subdir of the source dir.
# This causes Ninja to use relative paths.
"${CMAKE_CURRENT_SOURCE_DIR}/test_QFINDTESTDATA/build"
--build-generator Ninja
--build-options "-DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}"
)
add_test(NAME run_test_QFINDTESTDATA COMMAND sh -c "cd \"${CMAKE_SOURCE_DIR}/test_QFINDTESTDATA/build/tests\" && ./test_QFINDTESTDATA -v2")
set_property(TEST run_test_QFINDTESTDATA
PROPERTY DEPENDS test_QFINDTESTDATA
)
endif()
if (NOT NO_DBUS)
expect_pass(test_dbus_module)
endif()
expect_pass(test_multiple_find_package)
if (NOT WIN32 OR (WIN32 AND NOT CMAKE_VERSION VERSION_LESS 2.8.11))
# Broken on windows on earlier CMake versions.
# http://public.kitware.com/Bug/view.php?id=13392
expect_pass(test_add_resources_delayed_file)
expect_pass(test_add_binary_resources_delayed_file BINARY test_add_binary_resources_delayed_file)
endif()
expect_pass(test_private_includes)
expect_pass(test_testlib_definitions)
expect_pass(test_json_plugin_includes)
expect_fail(test_testlib_no_link_gui)
execute_process(COMMAND ${CMAKE_COMMAND} -E copy
"${CMAKE_CURRENT_SOURCE_DIR}/test_testlib_definitions/main.cpp"
"${CMAKE_CURRENT_BINARY_DIR}/failbuild/test_testlib_no_link_gui/test_testlib_no_link_gui/"
)
if (NOT NO_WIDGETS)
expect_fail(test_testlib_no_link_widgets)
execute_process(COMMAND ${CMAKE_COMMAND} -E copy
"${CMAKE_CURRENT_SOURCE_DIR}/test_testlib_definitions/main.cpp"
"${CMAKE_CURRENT_BINARY_DIR}/failbuild/test_testlib_no_link_widgets/test_testlib_no_link_widgets/"
)
endif()
set(qt_module_includes
Core QObject
Network QHostInfo
Sql QSqlError
Test QTestEventList
Xml QDomDocument
)
if (NOT NO_GUI)
list(APPEND qt_module_includes
Gui QImage
)
endif()
if (NOT NO_WIDGETS)
list(APPEND qt_module_includes
Widgets QWidget
OpenGL QGLBuffer
PrintSupport QPrinter
)
endif()
if (NOT NO_DBUS)
list(APPEND qt_module_includes
DBus QDBusMessage
)
endif()
test_module_includes(
${qt_module_includes}
)
expect_pass(test_concurrent_module)
expect_pass(test_openglextensions_module)
if (QT_WITH_ANGLE OR (NOT WIN32 AND NOT APPLE AND NOT NO_EGL))
expect_pass(test_egl_lib)
endif()
expect_pass(test_opengl_lib)
if (NOT CMAKE_VERSION VERSION_LESS 2.8.11 AND NOT NO_WIDGETS)
expect_pass(test_interface)
endif()
if (NOT CMAKE_VERSION VERSION_LESS 2.8.12)
expect_pass(test_interface_link_libraries)
expect_pass(test_moc_macro_target)
endif()
|