cmake_minimum_required(VERSION 3.16)
project(garmin2osmand VERSION 0.2.0 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(PNG REQUIRED)
find_package(SQLite3 REQUIRED)
add_executable(garmin2osmand src/main.cpp)
add_executable(garmin2osm src/vector.cpp)
target_link_libraries(garmin2osm PRIVATE PNG::PNG SQLite::SQLite3)
target_link_libraries(garmin2osmand PRIVATE PNG::PNG SQLite::SQLite3)
if(MSVC)
 target_compile_options(garmin2osmand PRIVATE /W4 /EHsc)
else()
 target_compile_options(garmin2osmand PRIVATE -Wall -Wextra -Wpedantic -O2)
endif()
enable_testing()
add_test(NAME help COMMAND garmin2osmand --help)

find_package(Python3 COMPONENTS Interpreter QUIET)
if(Python3_Interpreter_FOUND)
  add_test(NAME classic_and_gmp_end_to_end COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/tests/test_smoke.py $<TARGET_FILE:garmin2osmand>)
  add_test(NAME native_vector_export COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/tests/test_vector.py $<TARGET_FILE:garmin2osm>)
endif()
