cmake_minimum_required(VERSION 3.16)
project(CardDatabaseTests VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")

# ------------------------
# Definitions
# ------------------------
add_definitions("-DCARDDB_DATADIR=\"${CMAKE_CURRENT_SOURCE_DIR}/data/\"")

# ------------------------
# Card Database Test
# ------------------------
add_executable(carddatabase_test ${MOCKS_SOURCES} ${VERSION_STRING_CPP} carddatabase_test.cpp mocks.cpp)

target_link_libraries(
  carddatabase_test
  PRIVATE libcockatrice_card
  PRIVATE Threads::Threads
  PRIVATE ${GTEST_BOTH_LIBRARIES}
  PRIVATE ${TEST_QT_MODULES}
)

add_test(NAME carddatabase_test COMMAND carddatabase_test)

# ------------------------
# Filter String Test
# (guard must match the condition for libcockatrice_filters in the root CMakeLists.txt)
# ------------------------
if(WITH_ORACLE OR WITH_CLIENT)
  add_executable(filter_string_test ${MOCKS_SOURCES} ${VERSION_STRING_CPP} filter_string_test.cpp mocks.cpp)

  target_link_libraries(
    filter_string_test
    PRIVATE libcockatrice_filters
    PRIVATE Threads::Threads
    PRIVATE ${GTEST_BOTH_LIBRARIES}
    PRIVATE ${TEST_QT_MODULES}
  )

  add_test(NAME filter_string_test COMMAND filter_string_test)

  if(NOT GTEST_FOUND)
    add_dependencies(filter_string_test gtest)
  endif()
endif()

# ------------------------
# Dependencies on gtest
# ------------------------
if(NOT GTEST_FOUND)
  add_dependencies(carddatabase_test gtest)
endif()
