cmake_minimum_required(VERSION 3.10)


find_package(OpenCV QUIET)
if(OpenCV_FOUND)

    project(OpenCVBridge LANGUAGES CXX)
    if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/vmb_cmake_prefix_paths.cmake")
        # read hardcoded package location information, if the example is still located in the original install location
        include(${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/vmb_cmake_prefix_paths.cmake)
    endif()

    find_package(Vmb REQUIRED COMPONENTS CPP NAMES Vmb VmbC VmbCPP VmbImageTransform)

    add_executable(OpenCVBridge
        main.cpp
        AcquisitionHelper.cpp
        AcquisitionHelper.h
    )
    target_compile_definitions(OpenCVBridge PRIVATE
        CV_IGNORE_DEBUG_BUILD_GUARD=1
        $<$<CONFIG:Debug>:_DEBUG>
    )
    target_link_libraries(OpenCVBridge PRIVATE Vmb::CPP ${OpenCV_LIBS})

    set_target_properties(OpenCVBridge PROPERTIES
        CXX_STANDARD 11
        VS_DEBUGGER_ENVIRONMENT "PATH=${VMB_BINARY_DIRS};$ENV{PATH}"
    )

    if(NOT WIN32)
        set(THREADS_PREFER_PTHREAD_FLAG ON)
        find_package(Threads REQUIRED)
        target_link_libraries(OpenCVBridge PRIVATE Threads::Threads)
        if(NOT APPLE)
            set_target_properties(OpenCVBridge PROPERTIES
                INSTALL_RPATH "$ORIGIN"
                BUILD_WITH_INSTALL_RPATH TRUE
            )
        endif()
    endif()

else()
    message(STATUS "OpenCV not found. Skipping OpenCVBridge example.")
endif()
