cmake_minimum_required(VERSION 3.20)
cmake_policy(SET CMP0091 NEW)
project(opencv5c LANGUAGES C CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# /MT — match OpenCV's BUILD_WITH_STATIC_CRT so the DLL is fully self-contained
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded")

find_package(OpenCV REQUIRED COMPONENTS core imgproc imgcodecs videoio features dnn objdetect)

add_library(opencv5c SHARED opencv5c.cpp opencv5c.h)
target_link_libraries(opencv5c PRIVATE ${OpenCV_LIBS})
target_include_directories(opencv5c PRIVATE ${OpenCV_INCLUDE_DIRS})

add_executable(test_shim test_shim.c)
target_link_libraries(test_shim PRIVATE opencv5c)

# drop opencv5c.dll + test_shim.exe at the project root, next to the Red executables
set_target_properties(opencv5c test_shim PROPERTIES
    RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/..
)
