2019-06-12 14:49:47 +02:00
|
|
|
cmake_minimum_required(VERSION 3.5)
|
2017-03-21 14:07:34 +01:00
|
|
|
|
2019-06-12 14:49:47 +02:00
|
|
|
project(%{TestCaseName} LANGUAGES CXX)
|
2017-03-21 14:07:34 +01:00
|
|
|
|
|
|
|
|
@if "%{TestFrameWork}" == "QtTest"
|
|
|
|
|
|
|
|
|
|
find_package(Qt5Test REQUIRED)
|
|
|
|
|
@if "%{RequireGUI}" == "true"
|
|
|
|
|
find_package(Qt5Gui REQUIRED)
|
|
|
|
|
@endif
|
|
|
|
|
|
2019-06-12 14:49:47 +02:00
|
|
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
2017-03-21 14:07:34 +01:00
|
|
|
|
2019-06-12 14:49:47 +02:00
|
|
|
set(CMAKE_AUTOUIC ON)
|
|
|
|
|
set(CMAKE_AUTOMOC ON)
|
|
|
|
|
set(CMAKE_AUTORCC ON)
|
|
|
|
|
|
|
|
|
|
set(CMAKE_CXX_STANDARD 11)
|
|
|
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
|
enable_testing()
|
|
|
|
|
|
|
|
|
|
add_executable(%{TestCaseName} %{TestCaseFileWithCppSuffix})
|
2019-12-05 08:36:08 +01:00
|
|
|
add_test(NAME %{TestCaseName} COMMAND %{TestCaseName})
|
2017-03-21 14:07:34 +01:00
|
|
|
|
|
|
|
|
@if "%{RequireGUI}" == "true"
|
2019-06-12 14:49:47 +02:00
|
|
|
target_link_libraries(%{TestCaseName} PRIVATE Qt5::Gui Qt5::Test)
|
2017-03-21 14:07:34 +01:00
|
|
|
@else
|
2019-06-12 14:49:47 +02:00
|
|
|
target_link_libraries(%{TestCaseName} PRIVATE Qt5::Test)
|
2017-03-21 14:07:34 +01:00
|
|
|
@endif
|
|
|
|
|
|
2018-01-12 14:10:27 +01:00
|
|
|
@endif
|
|
|
|
|
@if "%{TestFrameWork}" == "QtQuickTest"
|
|
|
|
|
find_package(Qt5QuickTest REQUIRED)
|
|
|
|
|
|
2019-06-12 14:49:47 +02:00
|
|
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
|
|
|
|
|
|
|
|
|
set(CMAKE_AUTOUIC ON)
|
|
|
|
|
set(CMAKE_AUTOMOC ON)
|
|
|
|
|
set(CMAKE_AUTORCC ON)
|
|
|
|
|
|
|
|
|
|
set(CMAKE_CXX_STANDARD 11)
|
|
|
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
|
enable_testing()
|
2018-01-12 14:10:27 +01:00
|
|
|
|
|
|
|
|
# no need to copy around qml test files for shadow builds - just set the respective define
|
|
|
|
|
add_definitions(-DQUICK_TEST_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}")
|
|
|
|
|
|
2019-06-12 14:49:47 +02:00
|
|
|
add_executable(%{TestCaseName} %{MainCppName})
|
2019-12-05 08:36:08 +01:00
|
|
|
add_test(NAME %{TestCaseName} COMMAND %{TestCaseName})
|
2018-01-12 14:10:27 +01:00
|
|
|
|
2019-06-12 14:49:47 +02:00
|
|
|
target_link_libraries(%{TestCaseName} PRIVATE Qt5::QuickTest)
|
2018-01-12 14:10:27 +01:00
|
|
|
|
|
|
|
|
@endif
|
|
|
|
|
@if "%{TestFrameWork}" == "GTest"
|
2017-03-21 14:07:34 +01:00
|
|
|
|
|
|
|
|
@if "%{GTestCXX11}" == "true"
|
|
|
|
|
add_definitions(-DGTEST_LANGUAGE_CXX11)
|
|
|
|
|
@endif
|
|
|
|
|
|
|
|
|
|
find_package(Threads REQUIRED)
|
|
|
|
|
|
|
|
|
|
if ($ENV{GOOGLETEST_DIR})
|
2019-06-12 14:49:47 +02:00
|
|
|
set(GOOGLETEST_DIR $ENV{GOOGLETEST_DIR})
|
2017-03-21 14:07:34 +01:00
|
|
|
else ()
|
2019-08-21 13:54:19 +02:00
|
|
|
if (NOT "%{GTestRepository}" STREQUAL "")
|
|
|
|
|
message(WARNING "Using googletest src dir specified at Qt Creator wizard")
|
|
|
|
|
endif ()
|
2019-06-12 14:49:47 +02:00
|
|
|
set(GOOGLETEST_DIR "%{GTestRepository}")
|
2017-03-21 14:07:34 +01:00
|
|
|
endif ()
|
|
|
|
|
if (EXISTS ${GOOGLETEST_DIR})
|
2019-06-12 14:49:47 +02:00
|
|
|
set(GTestSrc ${GOOGLETEST_DIR}/googletest)
|
|
|
|
|
set(GMockSrc ${GOOGLETEST_DIR}/googlemock)
|
2019-08-21 13:54:19 +02:00
|
|
|
elseif (UNIX AND EXISTS /usr/src/gtest)
|
|
|
|
|
set(GTestSrc /usr/src/gtest)
|
|
|
|
|
message(WARNING "Using gtest from system")
|
|
|
|
|
if (EXISTS /usr/src/gmock)
|
|
|
|
|
set(GMockSrc /usr/src/gmock)
|
|
|
|
|
endif ()
|
2017-03-21 14:07:34 +01:00
|
|
|
else ()
|
|
|
|
|
message( FATAL_ERROR "No googletest src dir found - set GOOGLETEST_DIR to enable!")
|
|
|
|
|
endif ()
|
|
|
|
|
|
2019-08-21 13:54:19 +02:00
|
|
|
set(GTestFiles ${GTestSrc}/src/gtest-all.cc)
|
|
|
|
|
set(GTestIncludes ${GTestSrc} ${GTestSrc}/include)
|
|
|
|
|
if (NOT ${GMockSrc} STREQUAL "")
|
|
|
|
|
list(APPEND GTestFiles ${GMockSrc}/src/gmock-all.cc)
|
|
|
|
|
list(APPEND GTestIncludes ${GMockSrc} ${GMockSrc}/include)
|
|
|
|
|
endif ()
|
2017-03-21 14:07:34 +01:00
|
|
|
|
2019-08-21 13:54:19 +02:00
|
|
|
include_directories(${GTestIncludes})
|
2017-03-21 14:07:34 +01:00
|
|
|
|
2019-06-12 14:49:47 +02:00
|
|
|
add_executable(%{TestCaseName} %{MainCppName} %{TestCaseFileWithHeaderSuffix}
|
2019-08-21 13:54:19 +02:00
|
|
|
${GTestFiles})
|
2019-12-05 08:36:08 +01:00
|
|
|
add_test(NAME %{TestCaseName} COMMAND %{TestCaseName})
|
2019-06-12 14:49:47 +02:00
|
|
|
target_link_libraries(%{TestCaseName} PRIVATE Threads::Threads)
|
2017-03-21 14:07:34 +01:00
|
|
|
|
|
|
|
|
@endif
|
2019-05-20 10:31:53 +02:00
|
|
|
@if "%{TestFrameWork}" == "BoostTest"
|
2019-06-12 14:49:47 +02:00
|
|
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
|
|
|
|
|
|
|
|
|
set(CMAKE_CXX_STANDARD 11)
|
|
|
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
|
enable_testing()
|
2019-05-20 10:31:53 +02:00
|
|
|
|
2019-06-12 14:49:47 +02:00
|
|
|
add_executable(%{TestCaseName} %{MainCppName})
|
2019-12-05 08:36:08 +01:00
|
|
|
add_test(NAME %{TestCaseName} COMMAND %{TestCaseName})
|
2019-05-20 10:31:53 +02:00
|
|
|
|
2019-05-24 08:49:34 +02:00
|
|
|
if (DEFINED ENV{BOOST_INCLUDE_DIR})
|
|
|
|
|
set(BOOST_INCLUDE_DIR $ENV{BOOST_INCLUDE_DIR})
|
2019-05-20 10:31:53 +02:00
|
|
|
else ()
|
2019-05-24 08:49:34 +02:00
|
|
|
set(BOOST_INCLUDE_DIR "%{BoostIncDir}") # set by Qt Creator wizard
|
2019-05-20 10:31:53 +02:00
|
|
|
endif ()
|
2019-05-24 08:49:34 +02:00
|
|
|
if (BOOST_INCLUDE_DIR STREQUAL "")
|
|
|
|
|
message("BOOST_INCLUDE_DIR is not set, assuming Boost can be found automatically in your system")
|
|
|
|
|
elseif (EXISTS ${BOOST_INCLUDE_DIR})
|
|
|
|
|
include_directories(${BOOST_INCLUDE_DIR})
|
2019-05-20 10:31:53 +02:00
|
|
|
endif ()
|
|
|
|
|
@endif
|