cmake_minimum_required (VERSION 3.9 FATAL_ERROR)

SET(name "CudaSamples")
project(${name} LANGUAGES CXX CUDA)


ADD_EXECUTABLE(dotprod
    dotprod.cu)
ADD_EXECUTABLE(helloworld
    helloworld.cu)
ADD_EXECUTABLE(vectoradd
    vectoradd.cu)
ADD_EXECUTABLE(vectoradd_2d
    vectoradd_2d.cu)

#Add the compute capability for your card here!
if(CMAKE_CUDA_COMPILER_VERSION VERSION_LESS "13.0")
    set_property(TARGET dotprod PROPERTY CUDA_ARCHITECTURES 50 61 72 75)
    set_property(TARGET helloworld PROPERTY CUDA_ARCHITECTURES 50 61 72 75)
    set_property(TARGET vectoradd PROPERTY CUDA_ARCHITECTURES 50 61 72 75)
    set_property(TARGET vectoradd_2d PROPERTY CUDA_ARCHITECTURES 50 61 72 75)
else()
    set_property(TARGET dotprod PROPERTY CUDA_ARCHITECTURES 75)
    set_property(TARGET helloworld PROPERTY CUDA_ARCHITECTURES 75)
    set_property(TARGET vectoradd PROPERTY CUDA_ARCHITECTURES 75)
    set_property(TARGET vectoradd_2d PROPERTY CUDA_ARCHITECTURES 75)
endif()


#target_compile_features(${name} PUBLIC cxx_std_11)

if(WIN32)
    # Replace default warning level W3 with W4, this is like -Wall for GCC
    string(REPLACE "W3" "W4" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
endif()

if(UNIX)
    # warnings
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
endif()
