cmake_minimum_required(VERSION 3.21)
#set(CMAKE_TOOLCHAIN_FILE "${CMAKE_CURRENT_SOURCE_DIR}/externals/vcpkg/scripts/buildsystems/vcpkg.cmake" CACHE STRING "Vcpkg toolchain file")
project(OC_SORT_CPP VERSION 1.0)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True)

# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /O2") 
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_RELEASE} /O2") 
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS_RELEASE} /O2")

find_package(Eigen3 REQUIRED)
find_package(OpenCV REQUIRED)


set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
file(GLOB SRC_LIST src/*.cpp)

add_library(OCLib SHARED ${SRC_LIST})
target_include_directories(OCLib PUBLIC include)
target_link_libraries(OCLib Eigen3::Eigen)

add_executable(test_MOT read_MOTtxt.cpp)
target_link_libraries(test_MOT PUBLIC Eigen3::Eigen OCLib)

add_executable(detection detection_only.cpp)
target_link_libraries(detection PUBLIC Eigen3::Eigen OCLib ${OpenCV_LIBS})

add_executable(test test.cpp)
target_link_libraries(test PUBLIC Eigen3::Eigen OCLib ${OpenCV_LIBS})
