if (HAVE_TESTS)
  add_executable(workrave-core-timer-test
    SimulatedTime.cc
    TimerTests.cc)
  target_code_coverage(workrave-core-timer-test AUTO)

  target_link_libraries(workrave-core-timer-test PRIVATE workrave-libs-core)
  target_link_libraries(workrave-core-timer-test PRIVATE GTest::gtest_main)
  target_link_libraries(workrave-core-timer-test PRIVATE ${EXTRA_LIBRARIES})
  set_target_properties(workrave-core-timer-test PROPERTIES USE_STUBS ON)

  target_include_directories(workrave-core-timer-test PRIVATE ${CMAKE_SOURCE_DIR}/libs/core/src)

  add_executable(workrave-core-integration-test
    ActivityMonitorStub.cc
    IntegrationTests.cc
    SimulatedTime.cc
    )
  target_code_coverage(workrave-core-integration-test AUTO)

  set_target_properties(workrave-core-integration-test PROPERTIES USE_STUBS ON)

  if (HAVE_APP_GTK)
    target_link_directories(workrave-core-integration-test PRIVATE ${GLIB_LIBRARY_DIRS})
  endif()

  target_link_libraries(workrave-core-integration-test PRIVATE workrave-libs-core)
  if (HAVE_GRPC AND NOT HAVE_CORE_SHADOW)
    target_link_libraries(workrave-core-integration-test PRIVATE workrave-libs-core-rpc)
    target_include_directories(workrave-core-integration-test PRIVATE ${CMAKE_SOURCE_DIR}/libs/rpc/include)
  endif()
  target_link_libraries(workrave-core-integration-test PRIVATE workrave-libs-config)
  target_link_libraries(workrave-core-integration-test PRIVATE workrave-libs-utils)
  target_link_libraries(workrave-core-integration-test PRIVATE GTest::gtest_main)
  target_link_libraries(workrave-core-integration-test PRIVATE ${EXTRA_LIBRARIES})

  target_include_directories(workrave-core-integration-test PRIVATE ${CMAKE_SOURCE_DIR}/libs/core/src)
  target_include_directories(workrave-core-integration-test PRIVATE ${CMAKE_SOURCE_DIR}/libs/stats/src)

  if (HAVE_APP_QT)
    target_link_libraries(workrave-core-integration-test PRIVATE ${Qt6DBus_LIBRARIES})
    target_link_libraries(workrave-core-integration-test PRIVATE ${Qt6Widgets_LIBRARIES})
  endif()
  if (HAVE_APP_GTK OR HAVE_GLIB)
    target_link_libraries(workrave-core-integration-test PRIVATE ${GLIB_LIBRARIES})
    target_link_directories(workrave-core-integration-test PRIVATE ${GLIB_LIBRARY_DIRS})
  endif()

  if (PLATFORM_OS_UNIX)
    target_link_libraries(workrave-core-integration-test PRIVATE ${X11_X11_LIB} ${X11_XTest_LIB} ${X11_Xscreensaver_LIB})
  endif()

  if (SSP_LIBRARY)
    target_link_libraries(workrave-core-integration-test PRIVATE ${SSP_LIBRARY})
    target_link_libraries(workrave-core-timer-test PRIVATE ${SSP_LIBRARY})
  endif()

  workrave_add_test(workrave-core-integration-test)
  workrave_add_test(workrave-core-timer-test)

endif()
