set(GTEST_INCDIR /usr/include/gtest)
set(GTEST_SRCDIR /usr/src/gtest)

if(EXISTS "${GTEST_SRCDIR}/src/gtest-all.cc")
  if(Qt5Widgets_FOUND)
    add_library(gtests-lib STATIC EXCLUDE_FROM_ALL ${GTEST_SRCDIR}/src/gtest-all.cc )
    target_include_directories(gtests-lib PUBLIC ${GTEST_INCDIR} PUBLIC ${GTEST_SRCDIR})
    add_definitions(-DSIMU)
    set(TESTS_PATH ${RADIO_SRC_DIRECTORY})
    configure_file(${RADIO_SRC_DIRECTORY}/tests/location.h.in ${CMAKE_CURRENT_BINARY_DIR}/location.h @ONLY)
    include_directories(${CMAKE_CURRENT_BINARY_DIR})

    foreach(FILE ${SRC})
      set(RADIO_SRC ${RADIO_SRC} ../${FILE})
    endforeach()

    file(GLOB TEST_SRC_FILES ${RADIO_SRC_DIRECTORY}/tests/*.cpp)

    if (${CMAKE_VERSION} VERSION_LESS 3.1.0})
      set(COMMON_CPP_FLAGS "${COMMON_FLAGS} -std=gnu++11")
      message("USING -std=gnu++11")
    else()
      set(COMMON_CPP_FLAGS ${COMMON_FLAGS})
    endif()
    set(CMAKE_C_FLAGS_DEBUG  "${COMMON_FLAGS} -g -O0")
    set(CMAKE_CXX_FLAGS_DEBUG  "${COMMON_CPP_FLAGS} -g -O0")

    add_executable(gtests EXCLUDE_FROM_ALL ${TEST_SRC_FILES} ${CMAKE_CURRENT_SOURCE_DIR}/location.h ${RADIO_SRC} ../targets/simu/simpgmspace.cpp ../targets/simu/simueeprom.cpp)
    qt5_use_modules(gtests Core Widgets)
    add_dependencies(gtests ${FIRMWARE_DEPENDENCIES} gtests-lib)
    target_link_libraries(gtests gtests-lib pthread)
    message("Added optional gtests target")
  else()
    message("WARNING: Qt5 widgets not found, gtest target will not be available!")
  endif()
else()
  message("WARNING: can't find gtests source, gtest target will not be available!")
endif()