cmake_minimum_required(VERSION 3.20)
project(cuframes_spike_v2 LANGUAGES CXX CUDA)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CUDA_STANDARD 17)

if(NOT DEFINED CMAKE_CUDA_ARCHITECTURES)
    set(CMAKE_CUDA_ARCHITECTURES "120")  # sm_120 для RTX 5090; добавьте 86/89/90 при необходимости
endif()

add_executable(spike2_producer producer.cu)
add_executable(spike2_consumer consumer.cu)

foreach(target spike2_producer spike2_consumer)
    target_compile_options(${target} PRIVATE
        $<$<COMPILE_LANGUAGE:CXX>:-Wall -Wextra -O2 -g>
        $<$<COMPILE_LANGUAGE:CUDA>:-O2 -g -lineinfo>
    )
    target_link_libraries(${target} PRIVATE cuda)
endforeach()
