# CUDA kernel samples - independent build
cmake_minimum_required(VERSION 3.15)
project(cuda_kernel_samples CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# Check SDK environment
if(NOT DEFINED ENV{DLICC_PATH})
    message(FATAL_ERROR "Please source sdk/env.sh first")
endif()
get_filename_component(SDK_PATH "$ENV{DLICC_PATH}/.." ABSOLUTE)

# Include paths
include_directories(${SDK_PATH}/include)
include_directories(${SDK_PATH}/include/dldt)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../common)
link_directories(${SDK_PATH}/lib)

find_package(Threads REQUIRED)

if(WIN32)
    set(PLATFORM_LIBS "")
else()
    set(PLATFORM_LIBS dl)
endif()

set(SDK_CORE_LIBS curt dljpeg dlvid dlnne)
set(COMMON ${CMAKE_CURRENT_SOURCE_DIR}/../common)

# OSD (On-Screen Display) sample
add_executable(osd
    osd/osd.cc
    ${COMMON}/image_util.cc
)
target_link_libraries(osd PRIVATE dldt_cuda_kernel ${SDK_CORE_LIBS} Threads::Threads ${PLATFORM_LIBS})

# Image processing sample
add_executable(image_proc image_proc/image_proc.cc)
target_link_libraries(image_proc PRIVATE dldt_cuda_kernel ${SDK_CORE_LIBS} Threads::Threads ${PLATFORM_LIBS})
