find_package(Qt5Core REQUIRED)
find_package(Qt5Quick REQUIRED)
find_package(Qt5DBus REQUIRED)

# Build with system gmock and embedded gtest
set (GMOCK_INCLUDE_DIR "/usr/include/gmock/include" CACHE PATH "gmock source include directory")
set (GMOCK_SOURCE_DIR "/usr/src/gmock" CACHE PATH "gmock source directory")
set (GTEST_INCLUDE_DIR "${GMOCK_SOURCE_DIR}/gtest/include" CACHE PATH "gtest source include directory")

add_subdirectory(${GMOCK_SOURCE_DIR} "${CMAKE_CURRENT_BINARY_DIR}/gmock")

#set (OLD_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
# Don't treat warnings as errors in 3rd_party/{gmock,cucumber-cpp}
#string (REPLACE " -Werror " " " CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
#find_package(Gtest REQUIRED)
#include_directories(${GMOCK_INCLUDE_DIR} ${GTEST_INCLUDE_DIR})
#set (CMAKE_CXX_FLAGS ${OLD_CMAKE_CXX_FLAGS})

include_directories(
  ${CMAKE_SOURCE_DIR}/src/modules
  ${GMOCK_INCLUDE_DIR}
  ${GTEST_INCLUDE_DIR}
  ${MIRSERVER_INCLUDE_DIRS}
  ${QT_TEST}
)

add_executable(
  application_manager_test
  application_manager_test.cpp
)

add_executable(
  taskcontroller_test
  taskcontroller_test.cpp
)

# We should not need this line according to the Qt5/CMake docs.
# However, when removing it, include paths are not set and linking to Qt5 fails.
qt5_use_modules(application_manager_test Core Quick DBus Test)
qt5_use_modules(taskcontroller_test Core Quick DBus)

target_link_libraries(
  application_manager_test

  unityapplicationplugin

  Qt5::Core
  Qt5::Quick
  Qt5::DBus

  gtest
  gtest_main
  gmock
)

target_link_libraries(
  taskcontroller_test

  unityapplicationplugin

  Qt5::Core
  Qt5::Quick
  Qt5::DBus

  gtest
  gtest_main
  gmock
)

add_test(taskcontroller_test ${CMAKE_CURRENT_BINARY_DIR}/taskcontroller_test)
add_test(application_manager_test ${CMAKE_CURRENT_BINARY_DIR}/application_manager_test)

add_subdirectory(auto)
