Fix unit tests when CMAKE_PREFIX_PATH env var is not set.
[profile/ivi/qtbase.git] / src / corelib / Qt5CTestMacros.cmake
1
2 macro(expect_pass _dir)
3   string(REPLACE "(" "_" testname "${_dir}")
4   string(REPLACE ")" "_" testname "${testname}")
5   add_test(${testname} ${CMAKE_CTEST_COMMAND}
6     --build-and-test
7     "${CMAKE_CURRENT_SOURCE_DIR}/${_dir}"
8     "${CMAKE_CURRENT_BINARY_DIR}/${_dir}"
9     --build-generator ${CMAKE_GENERATOR}
10     --build-makeprogram ${CMAKE_MAKE_PROGRAM}
11     --build-options "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}" "-DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}"
12   )
13 endmacro()
14
15 macro(expect_fail _dir)
16   string(REPLACE "(" "_" testname "${_dir}")
17   string(REPLACE ")" "_" testname "${testname}")
18   file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/failbuild/${_dir}")
19   file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/${_dir}" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/failbuild/${_dir}")
20
21   file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/failbuild/${_dir}/${_dir}/FindPackageHints.cmake" "set(Qt5Tests_PREFIX_PATH \"${CMAKE_PREFIX_PATH}\")")
22
23   file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/failbuild/${_dir}/CMakeLists.txt"
24     "
25       cmake_minimum_required(VERSION 2.8)
26       project(${_dir}_build)
27
28       try_compile(Result \${CMAKE_CURRENT_BINARY_DIR}/${_dir}
29           \${CMAKE_CURRENT_SOURCE_DIR}/${_dir}
30           ${_dir}
31           OUTPUT_VARIABLE Out
32       )
33       message(\"\${Out}\")
34       if (Result)
35         message(SEND_ERROR \"Succeeded build which should fail\")
36       endif()
37       "
38   )
39   add_test(${testname} ${CMAKE_CTEST_COMMAND}
40     --build-and-test
41     "${CMAKE_CURRENT_BINARY_DIR}/failbuild/${_dir}"
42     "${CMAKE_CURRENT_BINARY_DIR}/failbuild/${_dir}/build"
43     --build-generator ${CMAKE_GENERATOR}
44     --build-makeprogram ${CMAKE_MAKE_PROGRAM}
45     --build-options "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}" "-DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}"
46   )
47 endmacro()