cmake_minimum_required(VERSION 3.15)
project(ParseLogCLI LANGUAGES CXX)

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# Define all project source files (excluding the version .cpp file)
add_executable(parselog_cli 
    main.cpp
    log_parsing/log_parsing.cpp
    ip_to_geo/ip_to_geo.cpp
    third_party/src/GeoLite2PP.cpp
    third_party/src/GeoLite2PP_error_category.cpp
)

enable_testing()
add_test(NAME LogParser COMMAND parselog_cli)

target_include_directories(parselog_cli PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}/log_parsing
    ${CMAKE_CURRENT_SOURCE_DIR}/ip_to_geo
    ${CMAKE_CURRENT_SOURCE_DIR}/third_party/include
)

target_link_libraries(parselog_cli PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/third_party/lib/libmaxminddb.a)
target_compile_definitions(parselog_cli PRIVATE GEOLITE2PP_VERSION="0.0.1")