include(FetchContent)

set(TARGET_APP "core_test")

FetchContent_Declare(
  googletest
  GIT_REPOSITORY https://github.com/google/googletest.git
  GIT_TAG        v1.17.0
)
FetchContent_MakeAvailable(googletest)
add_library(GTest::GTest INTERFACE IMPORTED)
target_link_libraries(GTest::GTest INTERFACE gtest_main)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(QT NAMES Qt6 REQUIRED COMPONENTS Core LinguistTools)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core LinguistTools)

add_executable(${TARGET_APP} core_test.cpp)

target_include_directories(${TARGET_APP} PRIVATE ${CORE_LIB_DIR}/include)

target_link_libraries(${TARGET_APP}
  PRIVATE
  GTest::GTest
  GenericCore)
target_link_libraries(${TARGET_APP} PUBLIC Qt${QT_VERSION_MAJOR}::Core)

add_test(core_gtests ${TARGET_APP})
